首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

开源Ghidra逆向工程的百宝书来了

点击“博文视点Broadview”,获取更多书讯 Ghidra 第一次出现在公众视野是在 2017 年 3 月,当时维基解密开始泄露 Vault 7 文档,这是美国中央情报局(CIA)最大的机密文件泄漏事件...软件逆向工程工具本就不多,特别是在软件静态分析工具方面,Ghidra 是少数能与 IDA Pro 比肩的软件。...Ghidra 包含一个用于常规脚本任务的基础脚本编译器,以及一个 Eclipse 插件,以方便创建更复杂的 Ghidra 脚本和扩展。另外,还通过 Jython 来支持 Python使用。...Ghidra API 是以类的层次结构来实现的,它将二进制文件的特性表示为 Java 对象,并提供了快捷类,以方便访问一些最常用的 API类。...无论如何,不管你是利用 Ghidra 的定制功能使其像 IDA 一样使用,还是花时间熟悉新的工作方式,都会发现 Ghidra 能够满足大部分的逆向工程需求,甚至在某些方面还能开启全新的工作方式。

1.8K20

安卓逆向之自动化JNI静态分析

比如对于大家常用的 IDA-Pro 就是 Parse C Header 加载 jni_all.h,然后修改 JNI 接口的函数原型和变量结构。...这几个工具的插件都是使用 Python 编写的,感兴趣可以直接查看源码,优化前后的反编译代码如下图所示。...本地的 Ghidra 插件通常使用 Java 进行开发,但可以通过 JPython 使用 Python 脚本编写。...一些比较有用的 Ghidra 相关参考资料如下: https://ghidra.re/ghidra_docs/api/ https://ghidra.re/online-courses/ https:/...举一个遇到的例子,我想要修改某个地址对应函数的签名为对应 JNI 函数签名,搜索后发现有几种方法: 一是使用 afvr/avfn/afvt 修改变量;二是使用 tl (type link)去连接类型;三是使用

92620
您找到你想要的搜索结果了吗?
是的
没有找到

Ghidra:这个来自NSA的软件逆向工程工具终于来啦!

当然了,有些用户可能还需要根据自己的需要来开发Ghidra插件组件,Ghidra同样是支持的,用户可以使用Java或Python来开发自己需要的组件或脚本。...就在今年三月份举办的2019年RSA大会上,美国国家安全局首次公开介绍并演示了这款软件的使用,并且将Ghidra作为开源工具开放给了大众使用。...; 3、 支持各种处理器指令集以及可执行文件格式,可以在用户交互或自动化模式下运行; 4、 用户可以使用开放的API接口开发自己的Ghidra插件组件或脚本; ?...Ghidra采用Java语言开发,支持跨平台使用,适用于Windows、macOS和Linux,并且提供了友好的图形用户界面(GUI)。...工具演示视频 视频内容 后话 值得一提的是,美国国家安全局在21世纪初期就已经开发了Ghidra,而且在过去的十多年时间里,美国国家安全局以及其他的美国政府机构都一直在使用这款工具。

1.8K20

Sekiryu:一款针对Ghidra Headless模式的综合性安全工具

该工具提供了一系列可以在Ghidra内部执行的脚本,支持用户在分析代码库的同时执行漏洞检测、使用ChatGPT进行伪代码注释以及使用数据可视化的方法声称安全报告。...除此之外,该工具还允许广大研究人员根据需求加载和保存自己的脚本,并于脚本的内置API进行交互。...(可选) 4、SemGrep(可选) 工具安装 在安装好上述工具组件之后,由于该工具基于Python开发,因此我们还需要在本地设备上安装并配置好Python环境。...需要注意的是,使用Ghidra来进行二进制代码分析相对来说速度会比较慢,因此具体的分析所需时间得根据设备性能来定。...API使用 “server.py”脚本的功能就是允许工具脚本与Ghidra和主机系统交互,我们可以根据自己的需求自定义扩展和开发脚本代码,并将其加载或保存到脚本文件夹中,以使用已知的函数来与Ghidra

31110

快速获取 Wi-Fi 密码——GitHub 热点速览 v.21.06

没错,写寒暑假作业,虽然我们摆脱寒暑假作业已久,但,想想如果你在亲戚朋友面前,如何化文本为手写体,是不是成为亲戚中最靓的“别人家孩子”呢。...本周特推 1.1 快速获取 Wi-Fi 密码:wifi-password 本周 star 增长数:800+ New wifi-password 能快速获取你的 Wi-Fi 密码,生成对应的二维码提供给手机轻松连接网络...2.1 软件逆向:Ghidra @小王每天11点就睡就好了 Ghidra 是美国国家安全局(NSA)开源的一个软件逆向工程(SRE)框架,包括一套功能齐全的高端软件分析工具,使用户能够在各种平台上分析编译后的代码...Ghidra 支持的功能包括反汇编,汇编,反编译,绘图和脚本,以及数百个其他功能,它也支持各种处理器指令集和可执行格式,可以在用户交互模式和自动模式下运行,你还可以用公开的 API 开发自己的 Ghidra...3.4 原生 MAC API:MacDriver 本周 star 增长数:2,350+ MacDriver 供 Go 使用的 Apple / Mac API 和框架的工具包。

91120

Ghidra第一讲,常用快捷键.

Ghidra第一讲,常用快捷键. 一丶Ghidra简介 Ghidra是由美国国家安全局(NSA)研究部门开发的软件逆向工程(SRE)套件,用于支持网络安全任务....其实说白了堪比IDA 是一个新的逆向工具,大家有必要学习一下. fq后的下载地址:https://ghidra-sre.org/releaseNotes_9.1.2.html Ghidra需要你配置JDK11...1Br6RtquG3biwwCk9oMYfoA 提取码:a4gz jdk11: 链接:https://pan.baidu.com/s/1fMa81FkiZxkO78OywXSERg 提取码:2c10 如何配置以及打开...Ghidra自己百度或者Google,这里讲一下快捷键....CTRL + L 修改类型 选中伪代码中的变量修改其类型 在其界面上我们还可以将伪代码导出为C代码 伪代码界面还支持选中变量使其高亮,这个自己探究即可. 2.3 16进制界面 Ghidra16进制界面可以帮助我们修改字节

2.3K31

BinAbsInspector:一款针对二进制代码的漏洞扫描和逆向分析工具

关于BinAbsInspector  BinAbsInspector是一款针对二进制文件的静态分析工具,在该工具的帮助下,广大研究人员能够以自动化的形式对二进制文件进行逆向工程分析,并尝试扫描和识别其中潜在的安全漏洞...(空指针解引用) CWE676(使用潜在的危险函数) CWE787(缓冲区溢出(带外数据写入))  项目架构  该项目的文件及目录架构如下所示: ├...Ghidra无头模式 $GHIDRA_INSTALL_DIR/support/analyzeHeadless -import -postScript...BinAbsInspector "@@" 上述命令的参数解释如下: -- Ghidra 项目路径 -- Ghidra...启用指定的检测器 Ghidra GUI使用 1、运行Ghidra,将目标二进制文件导入项目; 2、使用默认配置分析二进制文件; 3、分析完成后,打开“Window -> Script Manager”

2.1K10

手把手教你使用Ghidra逆向移动应用程序

Ghidra支持在多个操作系统平台上安装和使用,包括Windows、Linux和MacOS。 安装Ghidra 提醒:我们的整个测试过程都在Linux平台进行。.../ghidraRun 打开Ghidra之后,我们就可以开始了! 使用Ghidra对Android APK文件进行逆向工程分析 接下来,我们将反编译一个APK文件,并拿到Java源码。...下图显示的是整个反编译流程: 此时需要考虑的事情如下: 大多数编程语言都可以有解释器和编译器,比如说,Python既可以作为编译程序执行,也可以作为解释语言执行。...尽管对于反编译代码,我还是会使用jadx-gui(一个“dex-to-JAVA”反编译工具)来查看源代码,但在这里我们可以看到DivaJni类的对象引用已经创建(实例化),接下来它会用来判断是授予访问权限还是拒绝访问权限...这也就意味着,hardcode2activity使用了两个类文件来执行一个活动。我们还可以从反编译源码中发现,它实例化了Divajni类。

3.8K10

如何Python使用静态变量在计数

今天,在用Python写一个统计一个文件下有多少文件的小标本时,遇到了一个很棘手的问题。如何Python使用静态变量来计数。然后,就在网上一通查找,找的方法都是利用类的方法来实现静态变量。...说实话没有看太懂,另外我想如果用类成员当做静态变量来计数是不是很麻烦,我们还要编写ADD()函数,来实现加1操作(因为要计数吗?)。...其实,主要原因还是没有看懂如何用类成员的方式实现静态变量,因此,我放弃了这种方法。...我主要是参考了这篇文章:http://www.jb51.net/article/65762.htm         这篇文章中主要使用了三种方法来实现一个累加器。...(0) L[0]+=i return L[0] print foo3(1) print foo3(2) print foo3(3) print foo3(4) 在python

1.6K10

Maat:一款功能强大的开源符号执行框架

关于Maat Maat是一款功能强大的开源动态符号执行和二进制源码分析框架,在该工具的帮助下,广大研究人员可以轻松实现符号执行、污染分析、约束求解、二进制加载和环境模拟等操作,并利用Ghidra的sleigh...2、用户友好:Maat提供了一个灵活性强的类似调试器的API,其功能可配置以适应许多不同的用例。和很多现代框架一样,该工具也支持嵌入Python库。...3、多架构支持:基于Ghidra的sleigh库实现了模拟功能,能够模拟多种架构的应用程序。...工具安装 我们可以使用下列命令来安装Maat的Python模块: python3 -m pip install pymaat Python API使用 from maat import * # 针对...snap = engine.take_snapshot() engine.restore_snapshot(snap) # 运行代码 engine.run() C++ API使用 #include

63310

OFRAK:一款功能强大的源代码分析和修改平台

功能介绍 OFRAK能够给广大用户提供下列功能: 1、一个图形化的用户接口,支持以交互式和可视化的方式查看源代码; 2、一个Python API,可以用来读取和复制源代码; 3、递归识别...、解压缩和重新打包许多文件格式,包含从ELF可执行文件到文件系统存档,再到压缩和校验和固件格式; 4、集成了强大的分析后端(angr、Binary Ninja、Ghidra、IDA Pro);...Docker配置: python3 -m pip install PyYAML python3 build_image.py --config ofrak-ghidra.yml --base --finish.../ofrak.git 工具使用 OFRAK最好的使用方法就是通过交互式教程来使用,我们可以直接运行下列命令: make tutorial-image # create the Docker image...除此之外,GUI还允许常见的Python API执行的操作,如注释、解包、分析、修改和打包资源: 工具使用演示 视频地址:https://ofrak.com/assets/demo.mp4

65640

GitHub 热点速览 Vol.11:回暖的 GitHub 迎来上千星的图片流项目

GitHub 地址 →https://github.com/alibaba/DataX 2.2 软件逆向:Ghidra 本周 star 增长数:150+ Ghidra 是美国国家安全局(NSA)开源的一个软件逆向工程...Ghidra 支持的功能包括反汇编,汇编,反编译,绘图和脚本,以及数百个其他功能,它也支持各种处理器指令集和可执行格式,可以在用户交互模式和自动模式下运行,你还可以用公开的 API 开发自己的 Ghidra...它每个章节都包含以下内容: README:描述了漏洞以及如何利用漏洞 Intruder:给 Burp Intruder 用的一组文件 Images:给 README 用的图片 Files:README...github.com/wxbool/video-srt-windows 2.8 Sweet Java:Hutool 本周 star 增长数:350+ Hutool 是一个小而全的 Java 工具类库,通过静态方法封装...,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以“甜甜的。

66530

使用 Ghidra 分析 phpStudy 后门

作者:lu4nx@知道创宇404积极防御实验室 作者博客:《使用 Ghidra 分析 phpStudy 后门》 原文链接:https://paper.seebug.org/1058/ 这次事件已过去数日...跳转到地址中,然后查看哪些地方引用过这个字符串(右击,References > Show References to Address),操作如图: 结果如下: 可看到这段数据在 PUSH 指令中被使用...这里插一句,Ghidra 转换高级代码能力比 IDA 的 Hex-Rays Decompiler 插件要差一些,比如 Ghidra 转换的这段代码: puVar8 = local_19f; while...到这里,就知道该如何构造 Payload 了: Accept-Encoding: gzip,deflate Accept-Charset: Base64加密后的PHP代码 朝虚拟机构造一个请求: $ curl...通过 file 命令得知文件 p1 为 Zlib 压缩后的数据: $ file p1 p1: zlib compressed data 用 Python 的 zlib 库就可以解压,解压代码如下: import

79430

Functrace:使用DynamoRIO追踪函数调用

Functrace是一款使用DynamoRIO(http://dynamorio.org/)通过动态检测分析二进制文件的工具。...特性(基于DynamoRIO) 反汇编所有执行的代码 反汇编一个特定的函数(如果是地址则进行转储) 获取特定函数的参数(如果是地址则进行转储) 获取特定函数的返回值(如果这是一个地址则进行转储) 监控应用信号...生成报告文件 ghidra(https://ghidra-sre.org/)coverage脚本(基于functrace报告文件) 安装 $ wget https://github.com/DynamoRIO...使用 $ drrun -c libfunctrace.so -report_file report -- target_program [args] 选项 支持以下 [functrace](https:...工作环境 以上测试环境为 Ubuntu 16.04.5 LTS 64 bit 待添加功能 Ghidra插件 可视化设置界面 存储并比较不同的覆盖能力分析 从ghidra运行DR directy 为functrace

1.7K20

使用 Ghidra 分析 phpStudy 后门

可看到这段数据在 PUSH 指令中被使用,应该是函数调用,双击跳转到汇编指令处,然后 Ghidra 会自动把汇编代码转成较高级的伪代码并呈现在 Decompile 窗口中: ?...这里插一句,Ghidra 转换高级代码能力比 IDA 的 Hex-Rays Decompiler 插件要差一些,比如 Ghidra 转换的这段代码: puVar8 = local_19f; while...到这里,就知道该如何构造 Payload 了: Accept-Encoding: gzip,deflate Accept-Charset: Base64加密后的PHP代码 朝虚拟机构造一个请求: $ curl...通过 file 命令得知文件 p1 为 Zlib 压缩后的数据: $ file p1 p1: zlib compressed data 用 Python 的 zlib 库就可以解压,解压代码如下: import...", "rb") as f: data = f.read() print(zlib.decompress(data)) 执行结果如下: lu4nx@lx-kali:/tmp$ python3

76410

威胁分析报告:11.深入了解Zebrocy的Dropper文档(APT28)

虽然Zebrocy最初是用Delphi(称为Delphocy)编写的,但此后已被用六种语言实现,包括AutoIT,C ++,C#,Go,Python和VB.NET。...我们展示了研究人员如何绕过密码保护宏,并描述了如何使用IDR(交互式Delphi重构器)反编译Delphi,以及如何使用dhrake的插件将保存的IDC文件导入Ghidra。...四.用Ghidra和dhrake逆向Delphi二进制文件 在搜索IDR的最新进展时,我们遇到了一个很棒的 Ghidra 插件。...它是一个用在Ghidra中的脚本集合,使用IDR输出到IDC的Delphi二进制文件进行逆向工程。虽然这是一年前发表的,但如果攻击者使用Ghidra,它就是一个宝藏。...娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,谢谢。

1.1K20

FreeBuf 周报 | 美国监视计划曝光;印度雇佣黑客多年来一直瞄准美国、中国等国

5. 27 个恶意 PyPI 软件包曝光,下载量达数千次,目标是 IT 专家 近半年来,一个未知的威胁行为者一直在向Python包索引(PyPI)资源库发布typosquat包,其目的是发布能够获得持久性...、窃取敏感数据和访问加密货币钱包以获取经济利益的恶意软件。...针对机器学习模型的变音符号文本对抗攻击 本研究展示了如何使用遗传算法在黑盒设置中生成视觉对抗样本,并进行用户研究以确定欺骗模型的对抗样本可以欺骗用户。...如何使用KaliPackergeManager更好地管理你的Kali Linux工具 KaliPackergeManager是一款功能强大的软件包管理工具,该工具专为Kali Linux操作系统设计,可以给广大研究人员提供一个用户友好的基于菜单的接口...Sekiryu:一款针对Ghidra Headless模式的综合性安全工具 Sekiryu是一款针对Ghidra Headless模式的综合性安全工具,该工具旨在简化Ghidra在以Headless模式下运行时的相关任务执行

19710
领券