欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

关于反编译工具的概述

关于反编译工具的概述

本文主要是对反编译工具的说明,这些工具大部分是开源的。
一、dex反编译
主要有jadx、dad和jeb。
jadx
有进行控制流分析,反编译效果还不错,强烈推荐。
dad
是androguard自带的,虽然也有进行控制流分析,但反编译效果好像不太好,不推荐。
jeb
不开源,听说要1000刀,好贵,都可以买ida了,粗略看了下1.5版本,感觉反编译效果不是很好。尽管它有导出api供使用,还是觉得太贵了,2.0版本反编译效果未知。好像有很多人推荐使用。
二、java反编译
这个工具就多了,这里主要对jd-gui、procyon和cfr进行说明。
jd-gui
不开源,但由于它只是进行模式匹配,并没有进行控制流分析,对dex2jar转化而成的jar就悲剧了,因为dex基本块的前驱块不一定在前面,同理后继块不一定在后面。而且它处理异常时有问题,还有分析连续两个以上的相同类型的static变量也有问题,所以它经常在有异常的函数和cinit构造函数反编译出错,也没有进行类型推断,还不支持java8特性,所以对dex2jar转化而成的jar不推荐使用jd-gui。
procyon
应该是最好的反编译工具了,有进行控制流分析,有进行类型推断,也支持java8特性,但由于它有大量的类封装,反编译速度比较慢,占用内存也多,它对变量分析有些问题,强烈推荐。
cfr
还不错,感觉比procyon差点。注意虽然它没有开源,但它也没有进行混淆,可以反编译出源码。
三、lua反编译
反编译工具有unluac和luadec。
unluac
当程序有调试符号时,它是最好的选择,但它并没有进行变量分析,反编译没有调试符号的程序有问题。
luadec
有进行变量分析,但少了很多模式匹配,很容易出错,最好和unluac结合使用。
四、luajit反编译
反编译工具为ljd,未测试。
五、javascript反编译
javascript有v8、javascript-core、spidermonkey三种开源实现。v8没有使用字节码,好像不用反编译,javascript-core未发现反编译工具,spidermonkey早期版本官方自带反编译,新版本未提供。
六、python反编译
主要是uncompyle2,支持2.5-2.7版本。
七、c#反编译
工具也很多,这里对Reflector和ilspy进行说明。
Reflector
使用最为普及,非常强大,还支持插件,不开源。推荐使用。
ilspy
还不错,procyon就是基于它改写而成。
八、其它语言
比如erlang、php、ruby、perl、actionscript等,未关注。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功