-
Notifications
You must be signed in to change notification settings - Fork 245
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于ghidra的decompile.py文件的问题 #31
Comments
模型只训练了x64-linux,不建议尝试使用这个模型反编译windows平台软件~ |
作者您好。是的,主要是ghidra的问题,项目ghidra目录下的decompile.py没有对应的from ghidra.app.decompiler import DecompInterface、from ghidra.util.task import ConsoleTaskMonitor。这个是按照readme里面安装就行了吗?还是有其他额外操作? |
linux下按照文档步骤操作就可以了,这个import是ghidra调用这个script的时候内部环境import的,不是用户额外安装的。windows平台没有尝试过,手头上没有window环境,不太确定问题在哪里。可以试试使用windows的wsl: |
我这边windows平台测试了一下1.5v模型逆向效果,就是对稍长一些的代码进行逆向时间比较长;如果c运算复杂或者代码冗长一些,比如汇编代码400多行,可能就没办法逆向出来。 |
是的,长度越长效果越差(本身长函数也比较困难)。另外v1.5训练数据偏短,asm平均200个token(估计一百行以内),我们正在重新采集数据,希望下一个版本可以更加实用~ |
作者您好,我在另外一台mac电脑上成功跑通了v2的代码。安卓的.so也是属于elf文件,也是咱们工程可以逆向范围吗?有没有demo可以直接逆向整个elf文件? |
项目只训练了x64-linux,安卓属于arm64-android,指令集和平台差异都很大。整个文件不太可行,长度一般超限。常见的做法是把函数切分出来,逐个函数反编译 |
咱们v2逆向模型有没有长度限制,目前我测试了个200行的函数,也能逆向出来 |
作者您好,还有一个问题,使用v2模型尝试逆向main函数的时候,我_fun0换成_main、main、__main,均显示 raise ValueError('bad case no function found') |
v1.5/v2训练最大长度4096,不过训练数据主要是2000以内。 使用文档里面提示了, |
是的,我是将所有的func0给替换成需要逆向的函数了。之前若干函数也成功测试过了。然后我想使用v2模型逆向一个main函数,就报如上错误(将demo里面的func0给替换成main了)。 |
可以用ghidra的图形界面看看main变成什么名字了,在图形界面里面直接把ghidra反编译结果复制出来 |
作者您好,我想试着您v2模型方案尝试逆向c代码。按照流程,操作如下cd LLM4Decompile/ghidra
wget https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_11.0.3_build/ghidra_11.0.3_PUBLIC_20240410.zip
unzip ghidra_11.0.3_PUBLIC_20240410.zip。
然后decompile.py里面from ghidra.app.decompiler import DecompInterface、from ghidra.util.task import ConsoleTaskMonitor没有app和util。运行demo.py后报错如下:
D:\Code\LLM4Decompile\venv\Scripts\python.exe D:\Code\LLM4Decompile\ghidra\demo.py
Traceback (most recent call last):
File "D:\Code\LLM4Decompile\ghidra\demo.py", line 40, in
result = subprocess.run(command, text=True, capture_output=True, check=True)
File "C:\Python310\lib\subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "C:\Python310\lib\subprocess.py", line 966, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Python310\lib\subprocess.py", line 1435, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
OSError: [WinError 193] %1 不是有效的 Win32 应用程序
是需要额外安装操作吗?
The text was updated successfully, but these errors were encountered: