首页
社区
课程
招聘
[原创]ollvm字符混淆修复
发表于: 2019-1-22 14:47 10381

[原创]ollvm字符混淆修复

2019-1-22 14:47
10381

字符混淆可以有效的增加静态分析难度,比较常用的上海交大GoSSIP小组开源的“孤挺花”,基于ollvm。解密过程在initArray里,而且是直接解到原来的.data段区,所以要恢复起来也相对简单。

如下图.datadiv_decodexxx比函数全是孤挺花的解密函数
图片描述
也就是说在so加载完后字字符串是会被恢复的,而且这里的加密是等长的,直接恢复到原来的表里,相当于直接恢复了这个字符串表,方便我们把这个表直接恢复到so文件里。

图片描述
被加密过的字符表在文件中的位置和大小0x7f0000,0x1ca8
图片描述
映射在内存里的地方
图片描述
挂上gdb,把这段内存dump出来
图片描述
dump后的数据,这里取0x1ca8个字节,直接放回文件的.data段,ida加起来,可以正常看到字符串了,引用也正常解析,发现还有一段偏移被初始化为实际虚拟地址了,要还原一下
图片描述
可以看到这个偏移紧挨在字符表上面
图片描述
用beyond比较恢复一下就好了
图片描述
恢复后so静态分析效果对字符串识别正常,效果
图片描述
当然,要正常运行还得去掉initArray


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-1-22 15:56 被einsteinzl编辑 ,原因:
收藏
免费 5
支持
分享
打赏 + 2.00雪花
打赏次数 1 雪花 + 2.00
 
赞赏  junkboy   +2.00 2019/01/22
最新回复 (10)
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持
2019-1-22 14:57
1
雪    币: 26588
活跃值: (63257)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
3
感谢分享!
2019-1-22 15:45
1
雪    币: 3907
活跃值: (5817)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
4
有源码了,逆着写出来还是挺顺手的。
2019-1-23 09:40
1
雪    币: 8277
活跃值: (642)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
5
感谢分享!
2019-1-23 10:35
1
雪    币: 403
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
手动赞
2019-1-24 09:19
1
雪    币: 360
活跃值: (84)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
7
.. 这码打得
2019-1-25 16:11
0
雪    币: 32
活跃值: (5244)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
wsc
8
感谢分享
2019-1-26 10:19
0
雪    币: 614
活跃值: (883)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
我也遇到过类似样本。我是把它运行起来,用ida挂接,字符串已经解密完成,ida里字符串都指向明文了。
2019-1-28 18:17
0
雪    币: 1365
活跃值: (3549)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
可以看到这个偏移紧挨在字符表上面
——
这个是怎么看的
2019-1-29 07:19
0
雪    币: 439
活跃值: (599)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
@渔夫不吃鱼 这句话下面的图里,绿色那块是字符串表,被我码掉了你可能没看出来哈,紧挨着就是说它们是地址连续的。
2019-2-26 21:29
0
游客
登录 | 注册 方可回帖
返回
//