V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
neocanable
V2EX  ›  科技

开源反编译器支持 dex/apk

  •  
  •   neocanable · 4 天前 · 417 次点击

    距离上次发帖一个月了,最近把 apk 和 dex 也支持了。

    有些人问为啥叫"garlic", 这个名字来自郭德纲的相声:喝咖啡高雅,吃大蒜低俗,java class 文件以 CAFEBABE 开始,所以起了一个恶搞的名字garlic咖啡就着大蒜,高雅又低俗


    经过一个月的开发,garlic反编译器支持了 apk 和 dex 。apk 的 Manifest 和资源文件没有解析,只反编译了里面的代码。

    顺带写了些其它的东西:

    • c#的 pe 文件解析,没有解析到字节码的部分,还在读微软的文档。
    • elf 文件解析,写完了解析 sections ,还有不少没弄,一边查资料,一边写。

    我测试过的 apk (豌豆荚下载的最新版):

    • acfun
    • 微信
    • 抖音/抖音极速版
    • 百度
    • 百度地图
    • 滴滴
    • bilibili
    • 爱奇艺
    • 京东
    • 快手
    • 美团
    • 陌陌
    • 阿里系的 app

    速度方面,抖音的体量最大,差不多有 44w 个 class ,处理完需要 30 秒,我的机器是 macmini m4

    ~/workspace/clang/decompiler-garlic/build $ time -v ./garlic ~/workspace/java/bytecode/apks/douyin.apk
    [Garlic] APK file analysis
    File     : /Users/xxx/workspace/java/bytecode/apks/douyin.apk
    Save to  : /Users/xxx/workspace/java/bytecode/apks/douyin_apk
    Thread   : 4
    Progress : 446075 (446075)
    [Done]
    	Command being timed: "./garlic /Users/xxx/workspace/java/bytecode/apks/douyin.apk"
    	User time (seconds): 84.91
    	System time (seconds): 27.90
    	Percent of CPU this job got: 372%
    	Elapsed (wall clock) time (h:mm:ss or m:ss): 0:30.28
    	Average shared text size (kbytes): 0
    	Average unshared data size (kbytes): 0
    	Average stack size (kbytes): 0
    	Average total size (kbytes): 0
    	Maximum resident set size (kbytes): 1725728
    	Average resident set size (kbytes): 0
    	Major (requiring I/O) page faults: 3
    	Minor (reclaiming a frame) page faults: 156943
    	Voluntary context switches: 25062
    	Involuntary context switches: 708980
    	Swaps: 0
    	File system inputs: 0
    	File system outputs: 0
    	Socket messages sent: 0
    	Socket messages received: 0
    	Signals delivered: 0
    	Page size (bytes): 16384
    	Exit status: 0
    

    有朋友问我到底想搞一个什么样的东西出来,我总吹牛逼说我要搞一个 c 语言写的jeb出来。

    后来看了好多 apk ,又想支持 lua ,又想支持 C#,我现在想吹牛逼我想搞个大而全的东西出来,能反编译所有 apk 。

    回过头看写出来的东西,一堆一堆待解决的问题和完全未知的领域,真他娘的不知天高地厚了。


    还是欢迎大家试用,欢迎大家提意见,欢迎 PR ,欢迎提 bug

    1 条回复    2025-07-03 11:05:50 +08:00
    ice000
        1
    ice000  
       3 天前
    666 ,小工具很方便呀
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5935 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 01:58 · PVG 09:58 · LAX 18:58 · JFK 21:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.