-
-
[原创]ollvm字符混淆修复
-
2019-1-22 14:47
9415
-
字符混淆可以有效的增加静态分析难度,比较常用的上海交大GoSSIP小组开源的“孤挺花”,基于ollvm。解密过程在initArray里,而且是直接解到原来的.data段区,所以要恢复起来也相对简单。
如下图.datadiv_decodexxx比函数全是孤挺花的解密函数
也就是说在so加载完后字字符串是会被恢复的,而且这里的加密是等长的,直接恢复到原来的表里,相当于直接恢复了这个字符串表,方便我们把这个表直接恢复到so文件里。
readelf -S libxxxxx.so
被加密过的字符表在文件中的位置和大小0x7f0000,0x1ca8
映射在内存里的地方
挂上gdb,把这段内存dump出来
dump后的数据,这里取0x1ca8个字节,直接放回文件的.data段,ida加起来,可以正常看到字符串了,引用也正常解析,发现还有一段偏移被初始化为实际虚拟地址了,要还原一下
可以看到这个偏移紧挨在字符表上面
用beyond比较恢复一下就好了
恢复后so静态分析效果对字符串识别正常,效果
当然,要正常运行还得去掉initArray
[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界
最后于 2019-1-22 15:56
被einsteinzl编辑
,原因: