Enjarify:Dalvik字节码转Java的工具

Enjarify是一款将Dalvik字节码转换为Java字节码的工具,适用于分析Android应用。需要Python环境支持。
clickgpt_line.png_noView
介绍

嘿,大家有没有遇到过想要分析Android应用但被Dalvik字节码搞得晕头转向的情况?别担心,我有个好东西要推荐给你们——Enjarify!这个工具专门用来把Dalvik字节码翻译成Java字节码,简直是逆向分析的好帮手。

首先呢,Enjarify是用Python 3写的,所以你得先有个Python环境。安装起来也不复杂,直接从GitHub上克隆下来就行。然后在终端里跑个命令就能用,像这样:

    
bash
python3 -O -m enjarify.main yourapp.apk

当然啦,为了方便使用,你可以把它设置到你的路径里,这样随时随地都能用。Linux用户可以用提供的enjarify.sh脚本,Windows用户则有enjarify.bat脚本。只要把这些脚本加到你的PATH里就行。

使用起来也很简单,基本上就是指定一个APK文件或者DEX文件作为输入。比如说,你有个多DEX的APK文件,Enjarify会自动翻译所有的DEX文件,然后合并成一个JAR文件输出。如果你只想翻译一个DEX文件,那也没问题,直接指定就行。

输出文件默认是[输入文件名]-enjarify.jar,如果你想要自定义输出文件名,可以用-o或者--output选项来指定。比如:

    
bash
enjarify yourapp.apk -o yourapp.jar

要是输出文件已经存在,Enjarify默认是不会覆盖的,不过你可以用-f或者--force选项来强制覆盖。

你可能会问,为什么不用dex2jar呢?其实dex2jar也是个不错的工具,但它在处理一些边缘情况时可能会出错。而Enjarify则是尽可能地处理所有情况,比如处理Unicode类名、多类型常量、隐式转换等等。

不过呢,Enjarify也有些小限制,比如它不会翻译一些可选的元数据,比如源文件属性、行号和注释。不过这些对大多数分析任务来说都不是问题。

如果你想要更快的速度,可以考虑用PyPy来代替CPython,PyPy的速度可是快多了。Linux用户用enjarify.sh脚本时会自动使用PyPy3,如果你在Windows上用,那就得自己编辑一下脚本。

最后嘛,我觉得Enjarify真的是个很实用的工具,特别是对那些想要深入分析Android应用的人来说。虽然它不是Google的官方产品,但它的功能和稳定性都很不错。希望你们也能试试看!

付费
AI爆文训练营
图文变现友好赛道,低门槛、高上限,教你从0到1做个赚钱的公众号!
立即查看
躺着赚钱
¥149/年
何老师陪你做副业
这里聚焦AI副业、个人IP、自媒体运营、写作、赚钱案例。不哔哔,只分享有价值的副业项目。
立即查看
AI赚钱案例
限免
DeepSeek进阶教程
带你全面掌握DeepSeek应用技巧。提升工作、学习效率
立即查看
100万人学过
免费
Monica AI
Monica AI满血复活DeepSeek【免费】,提升您的聊天、搜索、写作和编程体验。
立即查看
一站式 AI 助手
云服务
腾讯云
综合性的云计算服务平台,现已接入DeepSeek,提供多样化的云解决方案
立即查看
高效可靠
云服务
阿里云
全球领先的云计算与数据服务平台,提供云服务器、存储、数据库、安全等多种服务
立即查看
多样化
编程学习
免费领取编程学习资料