问题标签 [ghidra]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 我们可以在 C++ 中将 (byte *) 连接到 (int) 吗?
我在 ghidra 中反编译了一个 .so 文件,发现了一行代码:
pbVar12 类型:字节 *
0x10 类型:整数
那么如果我们可以在 python 中将 byte* 与 int 连接起来呢?
ghidra - CONCAT15 和 CONCAT412 在 ghidra 中是什么意思?
我在 ghidra 中反编译了一个文件,我在反编译的文件中看到了很多 CONCAT+RandomNumber!
他们是什么意思?
reverse-engineering - 将函数的返回值折叠成表达式或参数
Ghidra 的反编译器通常会将 func 的返回值存储在仅使用一次的虚拟变量中:
我发现折叠它们要容易得多,例如:
(其他一些工具,比如 Binary Ninja,已经用到了。)
有没有办法告诉 Ghidra 这样做?或者也许是一个插件?
c - Ghidra 是否误解了函数调用?
在分析 Ghidra 中的程序集清单时,我偶然发现了这条指令:
CALL dword ptr [EBX*0x4 + 0x402ac0]=>DAT_00402abc
我假设程序正在调用一个地址在 inside 的函数DAT_00402abc
,我最初认为它是一个双字变量。事实上,当试图在其中的位置创建一个函数时DAT_00402abc
,Ghidra 不会让我这样做。
反编译器向我显示了这行代码来翻译该指令:
(*(code *)(&int2)[iVar2])();
所以我想知道,这是什么意思,程序应该如何处理这个调用?Ghidra有没有可能完全搞砸了?如果是这样,我应该如何解释该指令?
c - Ghidra 可以重新编译并运行一个简短的函数吗?
我从 Ghidra 反编译器中挑选了一个简短且“自包含”的函数。Ghidra 本身可以再次编译该函数,以便我可以尝试为几个不同的值运行它,还是我需要自己使用 gcc 编译它?
附加上下文功能:
patch - 修补程序在 ghidra 上添加新打印
我创建了一个简单的 hello_word,在其中打印字符串 hello_word。现在,我希望使用 ghidra 修补程序,将空闲内存位置反汇编,然后将代码再次打印字符串 hello_word。
为了使打印加倍,我只是将与打印相关的汇编代码加倍,即:
其中 100744 是 hello_word 字符串地址:
但是,在导出 ELF 文件时,二进制文件会崩溃。调试了一下我看到程序在我把汇编代码的时候崩溃了 有人能解释一下为什么吗?
reverse-engineering - ghidra DAT_* 中的问号
我反汇编了一个 jni .so 文件(android 应用程序的本机部分),并在 ghidra 中反编译了它的一个功能。
我在反编译代码的一部分中看到了 DAT_*,当我双击那个 ghidra 时,只显示问号。
我应该怎么做才能在 DAT_* 中查找数据
('*' 表示任何字符)
arm - ARM将字符串更改为不同的长度?吉德拉,艾达亲
我正在尝试将编译后的脚本翻译成母语。我正在使用 ida pro 和 ghidra,但我遇到了问题。如果字符串长度相同,我可以将字符串值更改为任何值。但是如果字符串长度更大或更小,我就会遇到问题。我是这里的新手,不能发照片,所以我会把它们上传到imgur。https://imgur.com/a/Rbv67lJ
当我在当前字符串中插入额外的字节时,IDA 不想打开文件并说错误。我了解,可能在某个地方存储了该字符串长度,但我找不到任何东西。而且,也许这是不可能的?提前致谢。
ghidra - Ghidra 签入:不允许文件更新
我将新的 Ghidra 二进制更改保存到 Ghidra,然后在 Ghidra 上签入,突然发生这种情况:
在源代码中查找它不是您所期望的,它是“outFile == null”,但我不知道为什么会发生这种情况,因为我只是尝试使用 Ghidra 正常保存文件更改。
reverse-engineering - 反编译器在 Ghidra Disassembler 中不起作用
我对 Ghidra Disassembler 有点陌生,所以请多多包涵。
我试图安装 Ghidra 来分析可执行文件。在 Ghidra 中打开可执行文件后,它会加载除 Decompiler 之外的所有内容。反编译器窗口显示
Decompiler: Unable to initialize the DecompilerInterface: Could not find decompiler executable”这个错误信息。它还显示“os/mac_x86_64/decompile 不存在
我从这里下载了它。我的 Mac 中也安装了 JDK。我应该怎么做才能使反编译器工作?
正如错误所说,“os/mac_x86_64”内没有反编译器。不知道我应该做什么。