用于分析 NaCL 二进制文件的工具和技术?

逆向工程 拆卸 工具
2021-06-22 15:17:08

是否有任何工具、教程或资源可以帮助理解 NaCL 二进制文件?它们有一些应该让事情变得更容易的特性——最重要的是,完全可判定的反汇编和代码/数据消歧。但是在反汇编器中查看它们,很难理解发生了什么,因为大多数有趣的事情都是通过调用 NaCL 运行时完成的,而且我似乎找不到关于那里有哪些函数可用或如何使用的好的文档解决反汇编中的调用。

有很多类似的代码(示例来自hotword-x86-64.nexe):

   21d70:       81 c4 b8 00 00 00       add    esp,0xb8
   21d76:       4c 01 fc                add    rsp,r15
   21d79:       41 5b                   pop    r11
   21d7b:       0f 1f 44 00 00          nop    DWORD PTR [rax+rax*1+0x0]
   21d80:       41 83 e3 e0             and    r11d,0xffffffe0
   21d84:       4d 01 fb                add    r11,r15
   21d87:       41 ff e3                jmp    r11

这使得遵循控制流变得非常困难。

这些二进制文件很有趣,因为它们在某些方面是 Google 对 ActiveX 的回答,并且它们已被用于发布诸如OK Google(又名热门词)之类的有争议的功能

我发现的一个资源是 SFI 机制的技术描述:

x86-64 系统上的 NaCl SFI 模型

这给出了一些关于(例如)什么有用的提示R15,主要是关于 NaCL 汇编代码必须遵守的限制,而不是事情是如何工作的。

0个回答
没有发现任何回复~