BinAbsInspector-simple-usage

使用IDEA搭建Ghidra Script开发调试环境配置_苏打呀的博客-CSDN博客
上面那个编译对环境要求太高 还是用release吧 注意idea 的api要求2022.3
Ghidra IDEA 开发环境配置 | Niko’s BLOG

intellij-ghidra

GitHub - garyttierney/intellij-ghidra: An IntelliJ IDEA plugin for working on Ghidra Extensions.

File -> settings -> plugin


2022.3 插入(如果用其他版本很容易出问题)

(我怎么都自己编译不好啊QAQ)

BAI导入

根据这个 Site Unreachable

build.gradle 中加入

1
ghidraInstallDir = "E:\\ghidra\\ghidra_10.1.4_PUBLIC"

这样不好因为找不到GHIDRA_INSTALL_DIR环境变量退出

另外doc里提到的Project struct 在左上角的File 按钮下面

就能正常运行了

ghidra java编写测试

File -> Project structure->Facets 开始。
再Click Edit Configuration... on top right, then Click Add new... and select Ghidra Lanuncher, Fill configuation name. If you want to run in headless mode, you can select the use headless checkbox and fill the args according to user guide. At last, click OK button.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//@author squ
//@category test
//@keybinding
//@menupath
//@toolbar


import ghidra.app.script.GhidraScript;

public class Main extends GhidraScript {
protected void run() throws Exception {
System.out.println("hello ghidra");
String name = currentProgram.getName();
System.out.printf("hello %s\n", name);
}
}

window -> script manager 中加入这个java的路径

刷新一下就能找到java

双击即可命中断点且运行

headless模式

1
C:\Users\LENOVO\Desktop\ghidra-test gtest -import C:\Users\LENOVO\Desktop\ghidra-test\BinAbsInspector-binaries\X86_64  -recursive -scriptPath F:\proj\BinAbsInspector\ghidra_scripts -postScript BinAbsInspector.java

第一个参数项目的目录 会输出一些项目有关的文件 第二个参数是自己给定的proj name 后面就是漏洞根文件目录 和脚本目录了.

这里的测试集也在科恩开源的仓库中可以看到

ghidra_scripts这个是约定俗成的脚本目录的名字