最近碰到一个很奇怪的问题,合作方提供的apk运行良好,但提供的对应的源码运行结果与apk不一致,然后他们又找不到对应版本的代码。
今天尝试分析apk,看看能不能看出来点关键的东西。
首先,我拿到了他们的应用开发小工具,其中包括这些功能:
- 签名、安装及启动系统应用
- 源码反编译
- APK反编译
- 系统签名
- 命令行
- 文件MD5码计算
在分析apk过程中,只用到了“源码反编译”和“APK反编译”两个功能,简单目测了一下他的实现方法和各自的作用。
源码反编译
先贴他执行时的命令行显示:
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
D:\Program Files\AppTool>tools\dex2jar\dex2jar.bat classes.dex
D:\Program Files\AppTool>tools\jd-gui\jd-gui.exe classes_dex2jar.jar
D:\Program Files\AppTool>exit
然后发现弹出一个窗口,内容如图: