核心提示:一zjdroid APK加密壳壳后的爱。虽然这个菜鸟编码体验依然存在,裂缝可以说是第一次。这一次有一个APK炮击与zjdroid有些问题,所以把它记录下来,如果你也遇到同样的问题…

apk文件加壳脱壳一个加密后的zjdroid爱。


虽然这个菜鸟编码体验依然存在,裂缝可以说是第一次。在这遇到的一些问题,下一zjdroid apk壳,,如果能遇到同样的问题的靴子提醒,非常高兴。所以请绕道而行,不要嘲笑菜鸟。

背景


apk文件包命名com.xxx.client包含一个文件叫libxxx.so

用于加密的爱和壳。典型特征是,在维护目录有ijiami.dat APK文件

原理


总之,它是DEX已经从以backsmali zjdroid命令外壳移除内容,Android安全加强行业解码分析爱加密的批判性分析


Dex被解密并加载在C层上,将内存中的DEX替换为原来的DEX,并为原始应用程序替换自定义应用程序的运行环境。


因此,最简单的方法就是等待爱的加密来取代DEX的内容,然后直接转储出去。

这个原则似乎很简单,但我花了两个星期的时间来对付这种菜鸟。

环境的准备


根手机已经在模拟器上进行了测试,但它的麻烦和时间太长,无法解决分区加载顺序问题,所以它是一台真正的机器。

我的名字是Xiaomi。我们应该注意这个。虽然其中有MIUI做了特殊处理,仍有错与1秒加载资源异常的东西。

所以我给小米1S一个原生的Android版本的小米。见线刷MIUI和本机4.1教程

安装Xposed和zjdroid全部畅通,无特别说明,记得提高组件哦。

你可以使用adb logcat其中:V:看看Xposed的日志来确认一切正常

使用zjdroid开始破壳可以在Android动态逆向分析工具zjdroid看到炮击的神器

我开始用dumpdex命令转储的DEX或加密的DEX钢筋短结果。

但dumpclass可以找到类,倾倒出来的是我有兴趣的课。它实际上应该有敏捷的信息已从壳体中取出。

后来我看到了,fanqiliang看雪Android安全加固行业分析及开裂在岗位分析证实了我的猜想,爱加密。

爱加密是加载到内存并更换桩DEX在内存堆地塞米松含量为课堂内容在第一负载房课之后。

所以直接dump_dex不工作,所以用backsmali命令直接将地塞米松类的数据。

在这个过程中,有两个问题,它们被记录如下:

陷阱和规避方法


DVM堆大小不足以导致DVM堆分配XXX对象失败。

因为我的APK已经超过2000快的类,这是一个大的。

所以,backsmali 一切顺利时,它被编译成小文件,但在smali文件到DEX,据估计,内存需要更大的因为它是在内存中完成,所以它分配内存失败后。

解决方案:增加VM HAP的记忆,在Dalvik VM修改256M。。heapsize = 512m / / /系统/ build.prop改变512M

重新启动,没有内存分配错误。


报纸java.lang.file.finalaze()()超时。

这是一个奇怪的问题,但可以猜测有这么多的小文件,并且可能是文件句柄没有及时释放。

因此,修改src / / / COM Android逆向 / / dexfilebuilder.java zjdroid smali文件,及时关闭打开的句柄,编译并安装好。

最后,我们看到dexfile.dex。

现在我们要重新包装XXX看后我们炮击DEX是正常的

1。apktools2 D - S xxx.apk,和输出目录是XXX

2。在XXX dexfile.dex取代classes.dex

三.删除ijiami.dat XXX /维护

4。删除libexec.so libexecmain.so XXX / / armeabi lib

5。改变XXX / AndroidManifest.xml取代Android在应用组件名称。XXX。客户申请。。

6。apktools2 B XXX

7。autosing新生成的apk签名

安装,运行,一切正常。

总结

zjdroid值得炮击的神器,更系统的知识,充分理解为加壳脱壳原理:)