ChatGPT甚至可以帮助我们编写测试理论所需的源代码 。例如 , 我们可以问AI以下问题:
文章插图
然而 , 有时候ChatGPT需要一点引导 。在写完我们请求的函数后 , 它决定将分解任务委托给我们:
文章插图
首先 , 我们从前面的答案中复制代码 , 然后在给出明确的指令后粘贴它 。
文章插图
现在 , 我们得到了我们正在寻找的分解结果 。
文章插图
5.指令集之间的转换
鉴于汇编代码是特定于平台的 , 经验更丰富的逆向工程师可以利用ChatGPT查询不同的指令集 , 而不是他们已经熟悉的指令集 。一种方法是指示ChatGPT将编写在一个指令集中的汇编代码转换为另一个指令集 。
文章插图
ChatGPT将x64汇编代码转换为ARM
这为进一步探索感兴趣的指令集提供了基础 , 例如 , 通过查询ChatGPT关于翻译后代码中指令的进一步信息 。
文章插图
ChatGPT解释了blx ARM指令
6. 比较语言或特定于平台的约定
有经验的逆向工程师还可以从使用ChatGPT查询编程语言和平台的内存管理技术的差异中受益 , 例如调用约定 。
文章插图
ChatGPT比较调用约定
在撰写本文时 , ChatGPT正在使用2021年之前的训练数据进行训练 。因此 , 如果某些平台或高级语言的特性在某个时间点之后发生了变化 , ChatGPT不会提供当前信息 。调用约定更改的一个例子是在Golang语言中从基于堆栈的调用约定转换为基于寄存器的调用约定 。
有经验的逆向工程师 , 特别是恶意软件分析师 , 可以利用ChatGPT来熟悉日益流行的编程语言的高级结构 , 以及这些结构是如何在汇编中表示的 。例如 , 内存安全的Golang和Rust越来越多地被恶意软件开发人员采用 。
文章插图
7.分析恶意软件样本中的代码段
ChatGPT能够解释和分析与逆向工程相关的代码 , 包括伪代码和汇编代码 。这使得ChatGPT在分析恶意软件可执行文件的代码段(如函数)时非常有用 , 主要是因为ChatGPT可以提供代码执行活动的摘要 。
这可以显著提高恶意软件逆向工程师的效率 。Gepetto IDA Pro插件在IDA Pro中集成了ChatGPT , 并查询语言模型以提供由Hex-Rays反汇编程序反编译的函数的含义 。
解释代码的能力还可以对代码进行比较 , 使恶意软件分析人员能够了解不同恶意软件样本实现之间的差异 。
为了在分析人员通常需要的描述性级别上总结代码的功能 , ChatGPT可能缺少所需的关于分析中的可执行文件的更广泛的上下文 , 而分析人员可能拥有这些上下文 。
假设分析师很少或没有向ChatGPT提供上下文 , 如果所分析的代码与其目的相关 , 那么该模型将提供最大的即时价值 。在实践中 , 这通常意味着代码不会调用以ChatGPT未知的方式扩展代码功能的用户定义函数 , 但如果它调用函数 , 则它们是已知的、公开记录的库函数 。由于ChatGPT是基于公开可用的数据进行训练的 , 因此语言模型此时可以准确地解释在用户提供的代码中使用这些函数的情况 。
推荐阅读
- 总结2022年威胁隐私和安全的6大“罪魁祸首”
- 编译器的自动内存管理,静态的GC算法
- 网络安全的未来趋势
- 筷子多长时间换一次比较合适?筷子的标准长度是七寸六分?
- url指的是什么包括哪几个部分 url指的是什么?
- 贝克汉姆|鱼和熊掌都要的贝克汉姆:收了13亿工资却不干活,中途还跑去讨好王室
- 长城结构
- 高空抛物的危害和认识
- 24时计时法
- 自然界的水循环过程包括