折腾:
【已解决】搞懂安卓app混淆和加固常见做法和相关逻辑
期间,看到:
中有个:
Decompiled by Procyon
-》猜测:Procyon是个破解,反编译软件
所以去找找。
procyon
procyon android
看到了,之前用:
【已解决】mac版JD-GUI查看并导出jar包的java源代码
jd-gui反编译得到的代码中,的确有部分代码会出现这种错误:
/* Error */ private void e() { // Byte code: // 0: aload_0 // 1: invokevirtual 90 com/tencent/StubShell/TxAppEntry:getApplicationInfo ()Landroid/content/pm/ApplicationInfo; // 4: astore_1 ...
com/tencent/bugly/legu/Bugly.java
/* Error */ public static String getAppChannel() { // Byte code: // 0: aconst_null // 1: astore_0 // 2: ldc 2 // 4: monitorenter // 5: invokestatic 47 com/tencent/bugly/legu/crashreport/common/info/a:a ()Lcom/tencent/bugly/legu/crashreport/common/info/a; // 8: astore_1 // 9: aload_1 ...
所以看来更有必要去试试procyon反编译的效果了。
另外还有Procyon的gui工具:
-》不过上述代码,能看出来,还只是bugly的代码,不是我们要的业务逻辑的代码。
即使反编译完整不报错,也意义不大。
不管,去试试
Luyten.app
把之前的jar
xiaohuashengv3.6.9_downcc.com-dex2jar.jar
拖动进去试试
然后也去导出代码试试:
解压后,用VSCode打开:
之前Error的代码,此处的确正确解析了:
但是也还是无法正确解析部分代码:
【后记】
【未解决】从不同版本的小花生apk中反编译出包含业务逻辑代码的dex和jar包源码
【总结】
和jd-gui:
【已解决】mac版JD-GUI查看并导出jar包的java源代码
类似,此处对于已有一个jar包文件,也是直接下载了反编译工具:
基于
Procyon
又加了个gui界面的Luyten:
解压得到:Luyten.app
运行后,把jar包拖进来即可看到代码。
导出所有代码:
File-》Save All-》decompiled-xxx.zip
比如:
解压后,即可用VSCode等工具方便查看代码了。
【后记20190401】
【已解决】用Procyon命令行去从jar包导出java源代码
【总结2】
从jar包导出代码:
- Luyten
- 带GUI图形界面:可直接查看代码
- 也可用来Save all导出全部代码
- 但是速度比较慢
- 当代码很大时:几十分钟还没导出完毕
- Procyon
- 不带界面,只是一个jar包:
- procyon-decompiler-0.5.34.jar
- 可直接用来从你的jar包导出源码
- 当代码很大时:速度很快,1分钟左右即可搞定