类文件的分析工具。

Krakatau-noff的Python项目详细描述


==这是什么回购协议?===

E跟随…Krakatau Bytecode Tools=BR/> Copyright(C)2012-18 Robert Grosse
BR/>====< BR/>< Br/K> KrkaTAU目前包含三种工具:反编译程序和反汇编程序,用于BR/JAVA类文件和汇编程序创建类文件。tau反编译程序需要python 2.7,而汇编程序和反汇编程序同时支持python2.7和python 3。注意,如果您想进行反编译,
您可能还需要安装JDK。对于汇编和
反汇编,Java安装不是严格必要的,但它仍然是用于测试生成的类的有用的工具。
===反编译= = BR/>< BR/>用法:
Python KRAKATAU\DelpLIP.py[[NUC] ] [路径路径] [-R] [-Skip ]
目标
BR/>路径:要在中搜索
类的目录、jar或zipfiles的可选列表。Krakatau将尝试自动检测并添加包含核心语言类的
jar,但是您可以使用
the-nauto选项禁用它。对于多个jar,可以传递分号
分隔的jar列表,也可以多次传递-path选项。

out:要写入源文件的目录名。默认为
当前目录。如果名称以.zip或.jar结尾,则输出将改为
zipfile。

-r:反编译目录目标中找到的所有.class文件(递归)

-skip:出错时继续。如果反编译特定
方法时出错,则将在源文件中以注释形式打印回溯。如果在类级别反编译时发生
错误,则不会发出源文件
,并将错误消息打印到控制台。


目标:要反编译的类名或jar名称。如果指定了jar,那么jar中的所有
类都将被反编译。如果-R是指定的,则应该是BR/>是一个目录。
BR/> Krakatau decompiler对大多数Java反编译者采取了不同的方法。BR/>可以被认为是一个编译器,其输入语言是Java字节码
,目标语言恰好是Java源代码。Krakatau采用了任意的字节码,并试图将其转换成等价的Java代码。这个
使它对微小混淆具有鲁棒性,尽管它的缺点不是"Br//>重构"原始源,导致比不符合的BR/>模式匹配反编译器对于不混淆的Java类产生更少的可读输出。
BR/>但是,它不会总是产生有效的Java SUNC。由于Java语言的局限性,有一些东西很难或根本不可能被反编译。在大多数情况下,krakatau会尝试至少生成
可读的伪代码,但有时可能会抛出异常。


警告:windows上的输出使用unc样式的路径,这意味着根据输入类名,它可能会创建难以或不可能创建的文件
通过Windows资源管理器或其他非UNC感知工具访问。< BR> > BR/>注意,反汇编程序目前不支持Java 8或调用KyDype,
尽管汇编程序和反汇编程序都执行。
= =汇编= = BR/>< BR/>用法:
Python KRAKATAU\Acply.py[O-out OU] [-R] [-Q]target

out:要写入类文件的目录名。默认为
当前目录。如果名称以.zip或.j a r结尾,则输出将是一个
zipfile。

-r:汇编在目录目标中找到的所有.j文件(递归)

-q:安静模式(仅显示警告和错误)

target:要汇编的文件的名称。如果指定了-r,则这应该是一个
目录。

krakatau汇编程序使用类似于jasmin的语法,但具有许多新的
功能,最重要的是能够直接指定常量池
引用。有关语法的详细信息,请参阅文档
文件夹。

==disassembly===


用法:
python krakatau\disassemble.py[-out][-r][-roundtrip]target

out:要写入源文件的文件或目录名。默认值
为当前目录。如果名称以.zip或.jar结尾,则输出将改为zip file。

-r:反汇编目录目标中找到的所有.class文件(递归)

-roundtrip:创建一个程序集文件,该文件将重新汇编为反汇编的二进制文件。

如果没有-roundtrip,它将汇编成一个类文件,该类文件相当于
原始文件,并且具有相同的行为,但在二进制编码方面可能有所不同
详细信息,例如常量池项的精确排序。要重新生成精确的原始类文件,需要在程序集文件中输出这样的低级信息,这使得程序集更难被人类读取和编辑。因此,默认情况下禁用此选项。

target:要反汇编的文件名或jar名称。如果指定了jar,那么jar中的所有
类都将被反汇编。如果指定了-r,则它应该是一个目录。


它接受一个类文件并将其转换为人类可读的程序集格式。
与javap不同,它甚至可以处理病理类,并且可以重新组合输出。与krakatau汇编程序一起,该工具可以往返于
任何类,通过汇编并返回到等价类中。如果传递了-roundtrip
选项,则它可以通过程序集往返任何有效的类,并精确地复制原始二进制类文件。

注意:如果找到Krakatau无法反汇编的有效类,请在https://github.com/storyyeller/krakatau/iss上提交一个问题UB.BR/>
== Java 10===BR/>< BR/>汇编和反汇编程序完全支持Java 10,而反编译器仅支持BR/>支持Java 7。特别是,不支持lambdas的反编译。

===性能===


您可以通过向python传递-o来禁用内部调试检查。这将使Krakatau的运行速度稍快,因此建议正常使用。

===pypypy===

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应用程序重新启动,由于AndroidRuntime异常而无法运行   java在尝试运行javafx应用程序时在初始化中出错   java如何循环ArrayList并将每个值发送到下载管理器?   在Windows 10中将java应用程序注册为默认浏览器   java不能将类“X”强制转换为类“Y”,即使X扩展了Y?   java在接口Cloneable中找不到符号clone()   java追加数组并替换JSON对象中的键   java JDialog在Windows 10上的右监视器上的位置不正确,缩放比例为150%   JavaGWTP样板生成   返回一组所有组合的java递归方法   java处理MDB中的连接错误   RecyclerView中的java重复联系人   继承混淆与java方法重载   java如何在Mac OS X 10.7.5上运行Eclipse Oxy