您的位置:首页 > 其它

脱壳练习(2)-最新免费版梆梆加固脱壳笔记

2018-04-01 22:15 1556 查看
直接开始吧,末尾有附件。

1.    java层分析





常规操作添加了一个application的入口,并加载了壳so libSecShell.so.



当dex加载完后通过这两个函数进行真正的application替换。
大概看一下其他文件。
DexInstall





大概是根据不同的sdk,进行dex的加载;
Dex的一般加载流程为:
Java层:替换classLoader –> 初始化DexPathList –> makeDexElements -> loadDexFile-> DexFile.loadDex -> DexFile(构造函数) –>openDexFile(进入native层,返回值为一个dex的cookie);
 
Native 层 :一般分文件加载和内存加载,常在内存加载的地方进行dump,dvm下常用dvmRawDexFileOpenArray,dvmDexFileOpenPartial,libart下常用openMemory。
 
查看一下其他文件:



SecData0.jar猜测为dex经过加密后存储的地方。
根据梆梆之前的版本,大概流程应该是不变的,在so进行初始化init,init_array或Jni_OnLoad函数下进行dex文件的解密,然后通过反射调用java层的dex加载函数,在加载时会通过hook系统函数,进行迷惑,实现一定的反dump;

2.    so分析



so init_array段中并无重要逻辑,猜测逻辑是现在Jni_Onload函数中,并通过一定的函数名,变量名混淆进行一定程度防逆向;以下出现的部分的函数名经过重命名



在整个过程中,几乎所有字符串内容均经过一定的加密,通过图中decodeString进行解密。
对函数的流程进行了一定的混淆。



关键点1:通过动静结合大致确定反射调用java进行dex加载的地方。



分别在case 11  32进行调用



关键点 2:我们根据梆梆以往的版本猜测会进行hook系统函数,hook的过程大概是:先通过dlopen,dlsym拿到函数地址后,再进行inline hook,所以实现hook的函数大概要具备至少两个参数,hook的目标地址,以及hook后会跳转的真正地址。在本例中通过查看交叉引用确定hook实现的外层函数,通过传入so内存加载的句柄,关键函数名,以及实际替换地址为参数。





p0C83F9688A8E4CD1B67CEBCC1115F169即为hook实现的入口函数,我们大概确定了hook实现的外层函数,剩下的就是用动调去验证;
图中只为示例,实际在dvm环境下。
关键点 3:找出反调试
So中并未找到反调试明显的特征,动调通过dex加载前后确定反调试位置为:



_ZNK17ObfuscatedAddressIPFvcEE8originalEv静态如下



在静态分析中完全没有发现反调试的特征(可能是我太菜了没发现),BLX R3后启动了反调试线程,此处反调试通过ida启动线程的提示,以及刚好在dex加载的前后才发现(涨见识了)。
关键点 4:开始动态调试
在上述关键函数下断点,由于此次仅有一处反调试,并且在dex加载后开启的反调试,也可以提前对BLX R3指令进行nop,实测过掉了反调试。



如图发现了dvmRawDexFileOpen被hook,此处R2寄存器的值为实际实现地址。





经过几个case之后调用dvmRawDexFileOpenArray这个函数,此函数为dump dex的关键点。
我们还可以看到不仅hook dvm中的部分加载关键函数,并且hook了libc中的一些基础函数如下:



到此其实已经可以进行脱壳了。

3.    未完成的

在这次脱壳中,未完成的有 未精准找出对SecData0.jar进行解密释放dex的过程以及梆梆对于第一次加载以及之后已有缓存文件的条件下对dex的加载流程不同的分析,上述脱壳方法适用于未有缓存文件的情况下,不过上述两点均有部分提示信息,相信还是可以找出来的。
附件: https:// href="https://pan.baidu.com/s/1RcG5ktdQYnyYA4GkkuPFgw" target=_blank>pan.baidu.com/s/1RcG5ktdQYnyYA4GkkuPFgw 密码:kaqs

忙于找实习,大概很久没写过博客了,这几天试着脱了下梆梆的免费版就来更新一次。
虽然处处碰壁,但我还是会坚持,希望自己春招后有个好去处。
emmmm,匆忙间才写好的博客,鉴于有些坑可能并没有提到,欢迎加q1254553524,一起讨论,一起学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: