android开发笔记之APK反编译(二) jadx
2017-09-27 13:55
375 查看
jadx的github地址:
jadx使用说明
安装
依次运行以下命令:git clone https://github.com/skylot/jadx.git cd jadx ./gradlew dist
主要是拉下来jadx的git主工程,然后跑对应的gradle task。之后会生成运行脚本,大概就是多出了build目录。
运行
cd build/jadx/ bin/jadx -d out lib/jadx-core-*.jar #or bin/jadx-gui lib/jadx-core-*.jar
以上命令是git给出的运行示例,主要就是反编译jadx源码的一个jar包。
以上命令可能会报一些错误,但是没有关系,不要管它,没有问题,是可以正常使用的。
我们再进入到目录build/jadx/bin:
cd bin/ ./jadx-gui
就可以启动jadx了。(当然你也可以直接双击jadx-gui文件启动jadx),如下图:
我们可以选择File—Open file对应选中你想反编译的.dex, .apk, .jar or .class即可,我们继续反编译ApeAppLock.apk。
查看AndroidManifest.xml
可以看出,可以完美的反编译。
查看源码
可以看出,反编译的源码基本上是可读的。
查看多国语言的字符串
可以看出,可以完美的反编译。
查看res资源
可以看出,可以完美的反编译res目录下的资源文件和图片。
支持全局text查询
Navigation–Text Search:支持全局class查询
Navigation–Class Search:支持导出gradle工程
可以用as直接看反编译的工程总结
1.操作方便快捷,一步到位2.有较为完善的gui界面,带有较多实用功能
3.反编译代码可读性高
总体来说jadx还是反编译工具的最佳选择。
备注
我使用其反编译7.1的GMS包中的Chrome.apk,结果是完美反编译。但是啊,7.0之后的GMS包中的开机向导应用SetupWizard.apk,我一直反编译不成功,看到这个工具,我好开心,感觉有戏。但是,希望越大,失望也是越大。测试结果表明,反编译失败。这…………。看来没有万能的东东啊。
反编译报错信息:
Exception in thread "AWT-EventQueue-0" com.android.dex.DexException: Unexpected magic: [100, 101, 120, 10, 48, 51, 55, 0] at com.android.dex.TableOfContents.readHeader(TableOfContents.java:79) at com.android.dex.TableOfContents.readFrom(TableOfContents.java:69) at com.android.dex.Dex.loadFrom(Dex.java:156) at com.android.dex.Dex.<init>(Dex.java:96) at jadx.core.utils.files.InputFile.loadFromZip(InputFile.java:94) at jadx.core.utils.files.InputFile.searchDexFiles(InputFile.java:56) at jadx.core.utils.files.InputFile.addFilesFrom(InputFile.java:34) at jadx.api.JadxDecompiler.loadFiles(JadxDecompiler.java:121) at jadx.api.JadxDecompiler.loadFile(JadxDecompiler.java:111) at jadx.gui.JadxWrapper.openFile(JadxWrapper.java:32) at jadx.gui.ui.MainWindow.openFile(MainWindow.java:192) at jadx.gui.ui.MainWindow.openFile(MainWindow.java:185) at jadx.gui.ui.MainWindow.open(MainWindow.java:147) at jadx.gui.JadxGUI$1.run(JadxGUI.java:29) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
参考资料
1.jadx 反编译apkhttp://blog.csdn.net/sp6645597/article/details/51319413
2.jadx
https://github.com/skylot/jadx
相关文章推荐
- android开发笔记之APK反编译(一)ClassyShark
- Android笔记 apk的反编译
- Android开发--ZZ:Android APK反编译详解(附图)
- 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
- Android开发笔记——调用系统安装工具安装APK
- Android笔记四.Intent对象的使用及.apk反编译
- .Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译
- Android开发apk反编译和二次打包教程
- 安卓学习笔记---Android 开发技巧-以友盟为例在Android Studio利用gradle进行多渠道打包和apk签名发布
- 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库
- Android开发学习总结(六)—— APK反编译
- Android开发学习笔记:反编译APK文件
- Android开发学习总结(六)—— APK反编译
- Android开发学习总结(六)—— APK反编译
- Android 开发系列:Apk反编译
- 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
- 1.2.1 APK反编译工具之:Procyon,Jadx和AndroidDecompiler
- Android开发------------- Android APK反编译详解(非常有用)
- Android开发笔记(七十)反编译初步
- Android开发————APK反编译需要的一些东西