-
-
[原创]简单反arm混淆脚本
-
发表于:
2017-10-19 01:54
5123
-
本帖仅仅作为一个学习记录,本脚本不具备通用性。
故事是这样的:样本源于一位意大利的小哥哥,几个月前他用邮件联系上我,然后我们就开始用小学生英语BB=。=交流时,他讲他的,我讲我的,诶,最后互问你说的是什么??他告诉我他喜欢中国的咏春拳,喜欢用Google翻译看雪的文章。说好的意大利礼物现在还没下落。。
libDxDrmDlcCore.so 这个SO在加载阶段各种乱七八糟的检测,我是不搞懂小哥哥到底想干什么,但是init_array 里面的代码是混淆过的。
格式大概如图,仔细观察:
流程是乱的,不能nop...... 有几万个节点,IDA图形模式直接崩。
所以自己乱写了一个脚本自娱自乐,送给意大利小哥哥方便调试。
提取后效果是这样的:
前面地址不是连续的,但是指令逻辑上是连续的,不连续的原因就是混淆的跳转指令拼接的。
吐槽Capstone反汇编引擎的arm语法,很丑,优化做得不够ida好。
编译环境:
Linux 系统、MAC,CMake,Capstone
Capstone 编译后要安装,貌似支持包管理器安装的。
附件因为有SO文件,比较大,只有传百度云了。((github又上不去))
链接:c6aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4m8S2L8W2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4K6u0r3M7#2)9J5c8U0q4H3d9#2u0z5g2W2t1I4i4K6t1$3L8X3u0K6M7q4)9K6b7R3`.`. 密码:8zpv
//看雪代码编辑框问题有点多,,,,所以代码不挂贴了。
===
后记,Italy小哥哥不停夸clever,我一直发where where。他才是真的厉害,一行一行的硬玩找出crc校验
[培训]科锐逆向工程师培训第53期2025年7月8日开班!