最近ChatGPT在信息安全圈的关注度迅速攀升,出现了一系列文章描述了ChatGPT如何被用来自动化各种网络安全任务。本文我们将展示 ChatGPT 如何为逆向和恶意软件分析带来价值,无论是刚进入这个领域的新手,还是经验丰富的专业人士。我们将提供具体的例子包含:
-
更有效地使用逆向工程工具 -
自学汇编语言 -
在指令集之间进行翻译 -
分析恶意软件样本中的代码段 -
识别代码中的恶意活动 -
理解漏洞和利用代码 -
自动化逆向工程任务
学习高效使用逆向工程工具
无论使用的是IDA Pro、Ghidra、Radare2、Hopper、Cutter还是其他逆向工程平台,ChatGPT都能提供帮助。虽然所有这些平台都包含自己的内置帮助功能。
如何在Radare2中调用外部命令,并在当前地址添加说明
GPT的回答
学习汇编语言
ChatGPT能够对关于函数调用基础及相关的堆栈内存管理活动的问题提供详尽答案。
汇编代码是平台和编译器特定的。如果提出的问题没有包含与平台(即指令集)或从中编译汇编的高级语言相关的具体信息,ChatGPT会提供相关的免责声明信息,以适当地定位答案。可以继续对话并提出包含平台或编译器特定信息的附加问题以获取更多细节。ChatGPT甚至还可以将给定的高级语言代码进行汇编。
在指令集之间转换
汇编代码是平台特定的,更有经验的逆向工程师可以利用 ChatGPT 询问他们不熟悉的不同指令集。一种方法是指示 ChatGPT 将用一种指令集编写的汇编代码翻译成另一种指令集。
POC代码平台兼容性适配
经验丰富的逆向工程师还可以利用 ChatGPT 询问编程语言和平台的内存管理技术的差异,例如调用约定。
分析恶意程序的代码段
ChatGPT 能够解释和分析代码,包括伪代码和汇编。这使得 ChatGPT 在分析恶意软件可执行文件的代码段(如函数)时非常有用,主要是因为它可以提供代码执行活动的摘要,可以显著提高效率。IDA Pro 将 ChatGPT 集成到 IDA Pro 中,为 Hex-Rays 反汇编器的函数提供含义。代码解释能力还使得代码比较成为可能。如果向ChatGPT 提供的信息很少或没有上下文,模型的最大价值在于分析的代码与其目的相关的自包含性。实际上,这通常意味着代码不调用用户定义的函数,而是调用公开文档化的库函数。
为了从 ChatGPT 获得更有效的代码分析输出,用户需:
-
精心编写prompt,以提供所需的上下文; -
在对话中提供上下文并细化 ChatGPT 的回答; -
尝试在回答末尾使用“重新生成响应”选项。
解释漏洞利用代码
理解漏洞的工作原理、如何利用这些漏洞,以及如何识别和检测代码中漏洞的使用是一项极具挑战性的任务。ChatGPT也可以提供帮助。以一个漏洞POC代码为例,提供相关代码片段或具体问题,解释该漏洞的实现方式及其利用方式。
可以通过提供更多信息来增加结果准确性。由于 ChatGPT 是上下文感知的,不需要重复之前的问题或重新粘贴之前的代码。可以直接添加相关的上下文信息或细节,以便 ChatGPT 更好地理解并提供更准确的分析。
还可以要求以反汇编的形式呈现,以查看一些或全部利用代码在恶意软件样本中的格式。
7. 让ChatGPT自己完成反汇编任务
逆向工程师会使用脚本语言来自动化重复或容易出错的任务,比如批量重命名变量或去混淆代码。这可以显著加快和提高逆向工程任务的效率。ChatGPT能够编写代码。可以提供具体的需求或任务,以便 ChatGPT 生成相应的 IDA Python 脚本。
ChatGPT 在逆向工程和恶意软件分析领域具有很大的潜力,对于初学者,ChatGPT 能提供有价值的支持。随着未来技术的进步,ChatGPT会逐渐成为逆向工程师不可或缺的工具。
微信逆向解密聊天记录[附详细步骤]
原文始发于微信公众号(青木生长):ChatGPT 大模型可以解决的 7 个网络安全中恶意程序分析问题
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论