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