最新消息:20210917 已从crifan.com换到crifan.org

【已解决】用基于Procyon的Luyten反编译安卓jar包得到java源码

Java crifan 676浏览 0评论
折腾:
【已解决】搞懂安卓app混淆和加固常见做法和相关逻辑
期间,看到:
中有个:
Decompiled by Procyon
-》猜测:Procyon是个破解,反编译软件
所以去找找。
procyon
procyon android
mstrobel / Procyon — Bitbucket
mstrobel / Procyon / wiki / Java Decompiler — Bitbucket
1.2.1 APK反编译工具之:Procyon,Jadx和AndroidDecompiler – Coder-Pig的猪栏 – CSDN博客
Android reversing: Java decompilers | Random ideas, shared notes
Java反编译工具CFR,Procyon简介 – 小瓜的博客 – ITeye博客
看到了,之前用:
【已解决】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工具:
deathmarine/Luyten: An Open Source Java Decompiler Gui for Procyon
-》不过上述代码,能看出来,还只是bugly的代码,不是我们要的业务逻辑的代码。
即使反编译完整不报错,也意义不大。
不管,去试试
https://github.com/deathmarine/Luyten
-》https://github.com/deathmarine/Luyten/releases/tag/v0.5.4
luyten-OSX-0.5.4.zip
-》https://github-production-release-asset-2e65be.s3.amazonaws.com/11339754/e740ed00-295d-11e9-8888-2b26b2728717?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190314%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190314T090507Z&X-Amz-Expires=300&X-Amz-Signature=07a0b6365de162c0ee772b5aea4eb21067f8e6976cf2a0129d069cb9ad62c7f4&X-Amz-SignedHeaders=host&actor_id=2750682&response-content-disposition=attachment%3B%20filename%3Dluyten-OSX-0.5.4.zip&response-content-type=application%2Foctet-stream
Luyten.app
把之前的jar
xiaohuashengv3.6.9_downcc.com-dex2jar.jar
拖动进去试试
然后也去导出代码试试:
解压后,用VSCode打开:
之前Error的代码,此处的确正确解析了:
但是也还是无法正确解析部分代码:
【后记】
【未解决】从不同版本的小花生apk中反编译出包含业务逻辑代码的dex和jar包源码
【总结】
和jd-gui:
【已解决】mac版JD-GUI查看并导出jar包的java源代码
类似,此处对于已有一个jar包文件,也是直接下载了反编译工具:
基于
Procyon
https://bitbucket.org/mstrobel/procyon
又加了个gui界面的Luyten:
https://github.com/deathmarine/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分钟左右即可搞定

转载请注明:在路上 » 【已解决】用基于Procyon的Luyten反编译安卓jar包得到java源码

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
92 queries in 0.182 seconds, using 23.42MB memory