111124
(111124)
1
如题,第一次见这种。它又不完全是十六进制,尝试用OC的方法也打印不出来。
v9 = objc_msgSend(&OBJC_CLASS___NSString, "stringWithFormat:", CFSTR("\xA6#MF\x7F\xB4"), v5, v7);
objc_msgSend(v21, "setValue:forKey:", v13, CFSTR("\xE2\x136L\xF7\x4A\xDC\x58"));
objc_msgSend(v21, "setValue:forKey:", v14, CFSTR("\xF3\x0B\x1F\x0DZ"), v14);
这个要怎么还原呢
Zhang
8
CFString里面封装的就是个传统的C字符串,IDA里能看到下面那个C字符串的全局变量地址,这个函数跑起来的时候下断点看下这个C字符串的内容是不是等于静态看到的,如果不一致的话说明加密了,这个时候解密
1 个赞
111124
(111124)
9
确定是加密的。而且我根据hook的原字符串和CFSTR中的字符来硬推理,得出了加密算法是ASCII码按位异或一个固定uint8数组。但是没找到它的解密逻辑,而且也没想通怎么能做到传的是原始字符串,但ida解出来的是加密的
Zhang
13
看了一下,能找到解密处的XRef的。
可以从CFString的结构的入手
1 个赞
Zhang
15
是啊我知道啊,所以我说让他从CFString结构开始学习