要成功地做到这一点,您必须做两件事。一件事相对容易,一件事很难。您都不希望通过十六进制编辑器手动进行任何操作。
将机器代码从x86转换为ARM。这很简单,因为您应该能够将每个x86操作码映射到一个或多个ARM操作码。有多种方法可以做到这一点,有些方法比其他方法更有效,但是可以通过非常简单的映射来完成。
重新映射函数调用(和其他跳转)。这是很难的,因为胡乱操作码将更改跳转点和返回点的所有偏移量。如果您具有动态链接的库(.so),并且我们假设所有库在两个地方都具有完全相同的版本(充其量只是个粗略的假设),则必须重新映射负载。
本质上,它是机器->机器编译器和链接器。
那么,你能做到吗?当然。
这简单吗?没有。
可能有一个商业工具,但我不知道。
归档时间: |
|
查看次数: |
6507 次 |
最近记录: |