dex字符串解密_初试so文件解密

7d460d55a91e6e688a94a65a8eb63392.png

本文为看雪论坛优秀文章

看雪论坛作者ID:无造

本文为看雪安卓高研2w班(5月班)优秀学员作品。

下面先让我们来看看讲师对学员学习成果的点评,以及学员的学习心得吧! 讲师点评 

对于APK的逆向来说,第一步往往就是先完成对App中java代码的脱壳;接下来要做的就是静态的逆向分析或者是结合动态的hook等对运行逻辑进行分析;最后,难度大一些的App往往就会进入到so中的函数当中,安全强度大的App甚至是会再次对so进行加壳。

但不论是dex的脱壳,还是so的脱壳,时机都是非常关键的。时机不对,即使是正确的内存地址偏移,dump得到的smali指令流以及汇编代码都可能是不对的,依然是未解密的字节流。

这道题考察的是对elf文件的结构知识的掌握。

这个App对so中函数进行了保护,在被保护的函数的关键逻辑执行前进行解密,执行结束后会再次对关键逻辑进行加密。

这位学员有着扎实的基本功,才能够快速抓住重点,成功拿下flag。

学员感想  这里是2W班5月的习题。题目中对一个native函数进行了加密,导致IDA无法看到运行时的代码。 加密方式来自于论坛比较久的帖子ThomasKing大佬的简单粗暴的so加解密实现 。照搬了大佬的代码,然后修改了一下加密方式即可完成解密。 通过本题学习到了so文件的格式解析,基础的加解密思路。

现在,看雪《安卓高级研修班(网课)》9月班开始招生啦!点击查看详情报名吧~

解题过程 步骤1:尝试用Fart脱壳 5d88f387729cb4d69d6827a7144497cc.png 顺利完成,查找相关dex: sailfish:/data/data/com.kanxue.test # grep -ril "MainActivity" ./*.txt ./2203744_classlist.txt ./2203744_classlist_execute.txt 拷贝出2203744大小的dex。 步骤2:查看Java层代码 ce998ad3723af50bb49771c60cab7afc.png OnCreate去绑定事件,test函数进行的字符串比较。 步骤3:查看so文件中test的代码 addr_RegisterNatives: test addr_RegisterNatives: (Ljava/lang/Object;)Z addr_RegisterNatives func: 0x8dc5 test是动态注册的,注册地址是0x8dc5 6759384b551ff0f1344898be3b893e9d.png 反汇编代码比较奇怪。 查看下sub_8930:

925ba407cdc92c0f36bbdb767ff701d7.png

这里获取so地址,然后查找ooxx函数的偏移: 52a454441147fc7a74ab446c3a0e4077.png 查找libnative-lib.so 内存中地址: 0d711df0a29a7fb7aa09bd767e771c3d.png 看这段代码和so文件加密帖子( https://bbs.pediy.com/thread-191649.htm )给出的demo非常像,只是函数加密的方式不一样,具体思路可以直接去查看原帖。 步骤4:解密so文件 加密是找到函数偏移和长度,进行位运算,所以解密也就按照一样的方式还原即可。 下图是运行效果: f0a0443e84051412aea0d1f425fa5a80.png 解密后再次反编译,解密方法参考帖子给出的代码,代码在Windows下读取so文件会出现读取不准确,不知道为什么。最终在ubuntu下运行正常。 838a022e88e8ab020d75aa7a85a31037.png 直接比对的,没加密。使用frida查看1C04C就是kanxuetest。 输入效验正确。 90dc55734f9a62ae033e2253e2a7bd10.gif - End -

8e6caf1a020ac81a299ffffa1d171ecf.png

看雪ID:无造

https://bbs.pediy.com/user-571058.htm

  *本文由看雪论坛 无造 原创,转载请注明来自看雪社区。

d7f5a8b08c6a7491b4b4db1a0029da81.png

推荐文章++++

b94abe92d3c8a2172be89cf8510be00e.png

* XposedFridaBridge:使用Frida加载Xposed插件

* TSG CTF 2020 Reverse-ing

* 观赏某大佬分析病毒后的一次复现分析

* 分析钓鱼邮件搭载的Excel 4.0恶意宏

* ollvm算法还原案例分享

好书推荐38c87d7e2fc8006df35696d334a6f7b8.png

﹀ ﹀ ﹀ deb356f25a1f24bde70e9e0177fc689c.png 公众号ID:ikanxue 官方微博:看雪安全 商务合作:wsc@kanxue.com ps. 觉得对你有帮助的话,别忘点分享,点赞和在看,支持看雪哦~ 5efe08dc8b66cf8fb6abe4ba6000cc42.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值