发新帖

《2015移动安全挑战赛》第三题的APK脱壳解法

  [复制链接]
108501 146
本帖最后由 zzage 于 2015-1-30 11:11 编辑

0x1:首先,发现lib文件夹下有libmobisec.so,libmobisecy.so,libmobisecz.so三个文件。
a.仔细观察,libmobisecy.so是一个zip包,里面存放了一个classes.dex文件,这dex文件里所有的函数代码都被改成throw new RuntimeException();   
b.发现libmobisecz.so是一个非so文件的数据文件,其实里面存放的就是classes.dex被偷的代码和一些要修改的code0ff偏移地址(该文件经过lzma压缩,rc4加密)。

0x2:
脱壳思路,其实只要把libmobisecz.so这个把解密后的数据给dump出来就行了,然后再根据里面的数据再把classes.dex给修复一下就行了。
1.动态调试去anti
000111BC 19 D6 01 EB                 BL      sub_86A28   //这个函数就是在做各种anti的功能,把这个函数给nop调,就可以各种调了,nop方法把字节码19 D6 01 EB改成00 00 AO E1 (其实就是mov r0, r0)

2.dump解密后的libmobisecz.so文件
a.libmobisecz.so要解密,首先肯定得打开文件, 所以在open函数下断点, 观察LR返回连接寄存器是不是在libmobisec.so,如果是,再看 R0寄存器的地址内存是不是libmobisecz.so文件的路径,是的话,就在LR寄存器的地址下断点,运行一下,然后往下跟,就能看到RC4解密和lzma解密了,然后解密后的libmobisecz.so给dump下来,等后面修复用。
b.接着在mprotect函数下断点,可以看到已被修改过classes.dex文件,dump下来后odex文件(把odex头去除)和之前的classes.dex比较,能发现有57处codeoff需要修复!

0x3:
修改classes.dex文件

a. 从解密的libmobisecz.so文件里能发现偏移+0x9,用readLEB128转一下为0x1e50(存放classes.dex第一个code_off地址),然后观察一下偏移处+0xBC为第一个DexCode结构数据。
这样code_off起始地址有了,修复多少处codeoff也有了,DexCode结构数据,接下来就是修复了...
b.修复classes.dex文件直接套用万抽抽大牛的python脚本修一下下就可以用了。

附件为比赛第三题的APK文件,解密后的decrypted_libmobisecz.so文件,修复python脚本,和脱壳修复后的dex。


跪求大神分享第4和第5题的解题思路.....

ps:更新一下解密脚本,还得再修复一下annotation偏移

附件:
游客,如果您要查看本帖隐藏内容请回复



已有4人评分 威望 NB 贡献 荣获致谢 理由
A00 + 1 赞一个!
听鬼哥说故事 + 2 + 2 + 2 + 1 很给力!
冰冻冷咖啡 + 1 + 1 很给力!
peterdocter + 1 + 1 赞一个!

查看全部评分 总评分: 威望 +2  NB +5  贡献 +3  荣获致谢 +2 

举报 使用道具

回复

精彩评论146

默小坑    发表于 2015-1-26 22:39:19 | 显示全部楼层
前排混脸熟

举报 使用道具

回复 支持 反对
都同学    发表于 2015-1-26 22:40:23 来自手机  | 显示全部楼层

举报 使用道具

回复
blueshell    发表于 2015-1-26 22:41:09 | 显示全部楼层
大神啊

举报 使用道具

回复
dayeve    发表于 2015-1-26 22:45:45 | 显示全部楼层
大神 我们交个朋友吧

举报 使用道具

回复 支持 反对
听鬼哥说故事    发表于 2015-1-26 22:51:16 来自手机  | 显示全部楼层
前排顶一顶

点评

鬼哥,轻点顶,跪求你的视频!  详情 回复 发表于 2015-1-26 23:18

举报 使用道具

回复 支持 反对
fanfu    发表于 2015-1-26 22:53:39 | 显示全部楼层
谢谢,下来学习下、

举报 使用道具

回复 支持 反对
mayl8822    发表于 2015-1-26 22:58:08 | 显示全部楼层
看帖不回者 么有小JJ.........

举报 使用道具

回复 支持 反对
zzage    发表于 2015-1-26 23:17:23 | 显示全部楼层
dayeve 发表于 2015-1-26 22:45
大神 我们交个朋友吧

,擦,你才是大神....我是看你教程长大的,来,我们一起当手牵手的好朋友。

举报 使用道具

回复 支持 反对
zzage    发表于 2015-1-26 23:18:41 | 显示全部楼层

鬼哥,轻点顶,跪求你的视频!

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表