问题标签 [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.

0 投票
2 回答
1770 浏览

java - Ghidra 的 JDK 给我错误:“找不到或加载主类 LaunchSupport”

我为我的 Windows 10 64 位 pc 下载了 JDK 15,并将环境变量 JAVA-HOME 和 PATH 也正确放置。这给了我cmd:

当我启动 Ghidra(即使是管理员)时,我得到:

找不到受支持的 JDK。请参阅 Ghidra 安装指南的故障排除部分。

0 投票
1 回答
83 浏览

windows - 带有 OFFSET 标签的汇编 PUSH 指令

我在汇编中编写了一个简单的“Hello World”程序:

我已经在Ghidra工具(免费软件IDA替代品)中打开了编译的 .EXE,当我查看生成的汇编代码列表时,有这样的东西:

我的问题是:为什么那里没有offset关键字(就像在源代码中一样)?它是可选的吗?此外,当我想修补指令时,该工具不允许我输入offset关键字...

0 投票
1 回答
131 浏览

java - Rust 和 Java Ghidra 进程访问权限之间的命名管道

我正在尝试在执行 Ghidra 进程的 Rust 程序和作为 Ghidra 进程的一部分运行的 Java 程序之间创建一个命名管道。我目前很难获得正确的访问权限(权限位)。

我的 Rust 程序看起来像这样(我尝试设置权限位以对其他用户进行写访问。)

在 Java 程序中,我尝试像这样访问管道(路径是 Rust 程序给出的管道参数):

我已经尝试了其中一些代码:https ://www.gnu.org/software/libc/manual/html_node/Permission-Bits.html 。有谁知道如何正确设置权限?

这是 Java 异常的完整跟踪:

0 投票
1 回答
118 浏览

c++ - 将变量/数据类型编译成可执行文件(Ghidra、C、C++、gcc)

我目前正在对一个软件样本进行逆向工程,其中原作者在编译时将一系列 unicode 数据类型/变量预定义到样本的 .data 部分中。因此,由于它们似乎被编译成可执行文件本身,我无法找到编写它们的代码的位置(显然)。

因此,我的问题...原作者如何使用 C/C++ 将这些变量编译到可执行文件的 .data 部分?通过#include 语句?C/C++ psydo 代码会是什么样子?还是将其转换为“variable.o”并作为参数添加到GCC编译器中的“variable.c”?

任何想法/建议/理论都值得赞赏。

在此处输入图像描述

0 投票
1 回答
260 浏览

c++ - 这个非虚函数反编译后怎么回事?

所以我决定尝试使用 Ghidra 反编译/反汇编一个带有虚函数和非虚函数的简单 c++ 类。然而; 反编译让我有点困惑。下面是我的源代码和我的反编译。我不明白为什么对非虚函数的调用由诸如打印字符串和其他 3 个奇怪的参数之类的参数组成。这些其他参数是什么?我只能假设其中一个是“This”指针?如果是这样,另外两个是什么?

在 Visual Studio 2k17 x64 版本上编译,没有 pdb

资源


反编译

谁能解释接受我的字符串和三个参数的函数发生了什么?参数是什么?为什么要传递字符串?

0 投票
1 回答
141 浏览

assembly - Ghidra 反汇编:带冒号的 x86 MOV 指令

在研究 Ghidra 的反汇编时,我遇到了一种不熟悉的语法。

一行包含

冒号语法是什么意思?

我实际上对这一切都很陌生,无论是 ASM 还是 Ghidra 分析。我知道这条指令将“某处的东西”移动到 32 位寄存器 EAX 中,但我不明白如何解释GS冒号或冒号符号。

0 投票
1 回答
656 浏览

ghidra - 运行到 ghidra 错误 java.lang.ClassNotFoundException

需要帮助,由于某种原因,当我尝试启动 ghidra.bat 时,它给了我这个错误

不完全确定我在这里做错了什么,我安装了 jdk 11,java 已经在路径中,下载了 ghidra。

在虚拟机上试过这个我没有遇到任何问题,但是在我的主操作系统中这样做时,它给了我这个错误。

0 投票
1 回答
287 浏览

python - 如何将带有 python 的枚举添加到 Ghidra 项目中

看到有人使用ghidra.app.util.cparser.C将结构字符串解析为结构对象,然后他们使用data_type_manager.addDataType(). 我想用 Enumerates 实现该方法,但我不确定如何。如果有更好的方法来添加枚举,我会很乐意使用它,如果这是最好的方法,那么解释将是一个很大的帮助。这是我的参考:https ://reverseengineering.stackexchange.com/questions/23330/ghidra-python-create-struct-with-big-endian-field

0 投票
0 回答
43 浏览

python - 如何使用 python 将字符串添加到 Ghidra 项目中?

我想检查 Ghidra 项目中的特定地址中是否有字符串,如果地址处没有字符串我想将地址处的字节定义为字符串,有没有办法用 python-吉德拉?

0 投票
0 回答
120 浏览

reverse-engineering - 需要 Ghidra 自动分析常见的 Microsoft C 函数

各位逆向工程师,

我使用 Ghidra 已经有一段时间了,我开始意识到有些功能,比如 rand 和 wcscpy,Ghidra 不会自动分析,也不会自动填充(见附图)。

我们如何让 Ghidra 像 IDA Pro 一样自动标记常见的 Microsoft C 函数?我厌倦了 Ghidra 中众所周知的逆向工程功能。

Ghidra 与 IDA Pro 的功能