-
-
[原创]脱SO类UPX壳
-
发表于:
2016-7-30 18:14
12770
-
脱SO类UPX壳简介
目前有多家收费so加密壳都是用的UPX变种壳(直接改的UPX3.92),具体怎么编译UPX 相关文章有
9ecK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0#2j5Y4g2C8L8#2)9J5k6h3y4G2L8g2)9J5c8X3W2F1k6X3!0V1k6i4c8S2K9h3I4Q4x3X3b7#2y4U0l9J5x3K6q4Q4x3X3g2Z5N6r3#2D9i4@1f1K6i4K6R3H3i4K6R3J5i4@1f1@1i4@1u0n7i4K6S2m8i4@1f1#2i4@1p5@1i4@1p5&6i4@1f1#2i4@1p5@1i4@1p5%4i4@1f1$3i4@1p5$3i4K6R3J5i4@1f1^5i4@1q4q4i4@1t1J5i4@1f1^5i4@1q4q4i4@1t1J5i4@1f1$3i4K6R3H3i4K6S2q4i4@1f1@1i4@1t1&6i4K6R3^5i4@1f1^5i4K6R3@1i4@1t1I4i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1^5i4@1q4r3i4@1p5$3i4@1f1%4i4@1u0n7i4K6R3$3i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1$3i4K6W2o6i4K6R3&6i4@1f1$3i4K6V1%4i4@1t1$3i4@1f1&6i4K6V1%4i4@1t1@1i4@1f1$3i4K6V1#2i4@1t1@1i4@1f1%4i4K6V1H3i4K6R3$3i4@1f1@1i4@1t1^5i4K6R3H3i4@1f1@1i4@1t1^5i4K6S2n7i4@1f1@1i4@1u0n7i4@1p5#2i4@1f1#2i4K6R3&6i4K6S2p5i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1%4i4@1q4o6i4K6V1@1i4@1f1^5i4@1q4q4i4@1t1H3i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1#2i4K6R3$3i4K6S2p5i4@1f1#2i4K6S2r3i4K6V1I4i4@1f1#2i4@1t1^5i4K6R3K6i4@1f1K6i4K6R3H3i4K6R3J5
早期的版本(大概2015年8月之前)大部分的类UPX壳都是可以通过修改关键字(如ijm? 改成UPX!),然后直接upx -d就可以脱掉。
现在的版本把-d功能作废了,有的还把压缩算法改了,还好没有把UPX作为压缩壳的本职功能改掉,也就是说它必然会解压到内存中,所以直接dump就可以。不过upx把section 头全部去掉了,所以要想IDA能把导出函数和导入函数对应上,就必须修复section头。
ThomasKing大神有一篇文章就是讲修复section头(http://bbs.pediy.com/showthread.php?t=192874)。原理上是根据dynamic段直接修复和利用节区的连续性(各个节区之间相邻关系)间接修复。个人觉得可能不需要去修复,也许可以通过写IDA脚本把ELF文件加载功能改一改就行(这个是猜测具体能不能我也不知)。
dump也不是一帆风顺的,很多so都做了反调试,防dump等保护措施,这些功能都可以通过Cydia hook掉(加UPX变种壳需要别人的ELF文件中有_init函数,其实这个也不是必须的,自己找一个函数把它的属性改成_init就行了,被改的函数最好是无参、一起来就运行不会对其他有影响)。
如果有人想做壳或者提升自己的逆向能力,研究阿里的这两届比赛题就够了,没必要去买别人的视频,入门免费的就够了,说实话那些拍视频的大部分都做不出阿里第二届比赛的第三题(用的是LLVM深度混淆,一般公司不会把混淆强度做的这么高,因为严重影响效率),希望这话没有触碰到大牛们的利益
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课