前言
前段时间反编译某个app的时候发现一点小技巧,记录一下,实际上,这对于代码保护是没有半点用处的。
发现的过程
首先,按照反编译的过程,jadx-gui,选中要发编译的apk。手机启动那个app的具体Activity,我们想要的东西在这里,比如书一个View之类的。
首先我们需要获取到这个activity的全限定路径。
|
|
很简单的获取到路径,打开那个activity,追踪到view,jadx find class,没找到。。。这是,我们很清楚的知道,要么是进行了加壳,要么是动态加载。从source code的结构上来看,排除加壳。那么我们就从Application入手。查看动态加载以及那部分dex的生成过程。
拔出代码
在Application中,发现如下一段代码
|
|
很明显,我们不管result.dex是如何生成的,我们需要这段dex,通过adb导出,用jd-gui打开便可找到我们想看的代码。
总结:
那个App用到的技术点:
- multidex 打包,将核心或者是某些class打到一个dex中,
- 对那个dex进行操作,组装成一个不能直接打开的dex
- 取出,动态加载