当你有部分来源时反汇编?

逆向工程 拆卸 手臂
2021-07-05 03:55:59

因此,如您所知,许多 android 引导加载程序基于 codeaurora 上的 Little Kernel 项目,因此可以说您拥有大多数 android 引导加载程序的部分源代码,通常在您可以在供应商网站上找到的固件包中,减去大多数供应商添加的专有位而不是标准的开源快速启动协议。

考虑到这一点,处理这种反汇编的最佳方法是什么?

我目前正在处理objdump -D二进制文件的输出,并将其与来自小内核构建的编译目标文件的相同输出进行比较。有许多 1:1 匹配,但有些部分虽然看起来很相似,但并不完全正确。人们会认为这是由于公司所做的更改造成的,但我无法确定此事。

1个回答

由 提供的线性扫描objdump应该可以很好地完成工作,之后只需少量工作。原因是:

  • 引导加载程序是非常小而简单的代码,只需要少量的外部调用(甚至系统调用也很少)。

  • 这是 ARM 汇编代码,这意味着这是对齐指令。无法通过在代码前移动一个字节来混淆反汇编程序。

  • 除了小的编译器技巧或一些优化之外,这些程序没有真正的混淆。

因此,即使之后可能会有一些额外的工作,大部分代码应该可以通过简单的线性扫描很好地恢复。