Despector
1.0.0
JAVA / KOTLIN解密工具和AST库。
该库的主要目标是为Java类文件构建一个完整的抽象源树(AST),包括所有指令的节点。它是由ASM顶部构建的,ASM具有用于方法的AST元素,但停在此处并提供了一个简单的OpCode列表。
虽然对于修改源和重建不是有用的Java类文件,但对于分解和代码分析,您想在语句而不是OpCode级别上搜索模式非常有用。
有关支持和讨论,请参阅#decompiler频道中的irc.esper.net上的开发/支持聊天。
目前,Kotlin支持是非常新的,并且没有设置所有功能,并且预期输出中的错误。
java -jar Despector.jar <--config=[path]> <--lang=[java|kotlin]> [sources...] [destination]
--config=允许您为某些偏离设置定义配置文件。--lang=迫使输出使用特定语言。正常行为是尝试从其内容中确定类文件源语言。该代偿剂仍处于繁重的发展状态,问题将会发生。如果您遇到任何不正确的输出,请在问题跟踪器中打开问题。至少包括预期和遇到的输出。展示该问题的汇编课程也将非常有帮助。
总是欢迎功能请求,并且可以在问题跟踪器中提供尽可能多的信息。
这是一个示例配置文件。它是可选的,但允许您控制格式设置,例如格式化。如果您希望更多设置在问题跟踪器中打开功能请求。配置文件使用Hocon配置格式。
# Despector decompiler configuration:
# Cleanup configuration
cleanup {
# Cleanup operations to apply before emitting
operations=[]
}
# Targeted cleanup operations
"cleanup_sections"=[]
# Emitter configuration
emitter {
# Whether to emit synthetic members
emit-synthetics=false
# The path of the formatter configuration
formatting-path="run/eclipse_formatter.xml"
# One of: eclipse,intellij
formatting-type=eclipse
# The path of the import order configuration
import-order-path="run/eclipse.importorder"
}
# Kotlin specific configuration
kotlin {
# Whether to replace strings containing new lines with raw strings
replace-multiline-strings=true
}
# Prints out opcodes of a method when it fails to decompile.
print-opcodes-on-error=true