JEB2使用技巧&反混淆脚本
本帖最后由 windwing1883 于 2018-5-28 16:49 编辑前言
好久没发帖了,这次准备分享一些JEB的使用技巧和自己在用的反混淆脚本.大神嘛就不要看啦~(注:本脚本是在JEB2.2.7上测试运行的)
反混淆脚本思路
许多APK开发商为了在崩溃时保存源文件类名、行号等信息会在APK混淆时添加以下规则保留源文件信息.
-keepattributes SourceFile,LineNumberTable
这样我们在看Smali时就能在.source(JEB中称为Debug Directive)字段中看到原始类名信息.如下图所示:
这样我们就可以在JEB2中根据每个类的原始信息进行批量重命名达到反混淆的效果,脚本地址放在我Github上
https://github.com/S3cuRiTy-Er1C/JebScripts
问题
说一下目前脚存在的问题:
1. 因为无法获取内部类名所以无法还原内部类.
2. 因为是全项目的重命名,根据APK类名的数量可能会有些慢大概要等几分钟,也有可能是我没优化好 O(∩_∩)O哈哈~ .但是磨刀不误砍柴工相信这个脚本会给你节省大量时间的.
3. 最重要的一点,如果APK没有保留这些源信息时,反混淆神马的只能靠你自己啦!!毕竟这些只是辅助作用.
注意:
- JEB2.2.x是默认不显示这些调试信息的可以根据以下步骤在设置中打开:Edit -> Options -> Engines -> 修改ShowDebugDirectives的值为true(点一下就好).
- 另外再分享个设置小技巧:JEB2在打开项目时所有包名都是打开的状态(个别包名除外 如 android,com.google等)有时需要我们一个个手动折叠.同样可以通过以下步骤解决 Edit -> Options -> Engines -> 修改WellKnownLibraryPackages 为 *.对于一些已打开的项目可以在 Project-specific页面更改
效果
注意
本脚本只为学习交流使用,不涉及任何商业用途.
以上就是这次要分享的内容,如果以上技巧或脚本有帮助到你,请你评个分或在github加个star ^_^. 蚂蚁牙黑 发表于 2018-12-28 09:23
老哥,这个确实比较6,用了一下,虽然没有恢复所有,但是已经恢复一部分了,感谢
Script error: Jython is required to run client scripts, refer to SCRIPTS.TXT for setup instructions
怎么破? klxn0-0 发表于 2019-7-25 09:05
Script error: Jython is required to run client scripts, refer to SCRIPTS.TXT for setup instruction ...
看这里,https://www.jianshu.com/p/4387556ea7c9 支持沙发 还有这种操作?学习了 学习一个 这个是改成*. 还是* mark......... 看了大神帖子,长见识了 怎么使用啊 大神,能否出个使用教程呢 这个不错啊,支持一下,有机会试试.楼主大佬辛苦了.