【发布时间】:2014-06-02 22:19:28
【问题描述】:
假设我在地址X 有一小段机器代码,它是EXE (PE) 的一部分。它包含所有类型的指令,包括具有相对地址的指令。如何在不改变其行为的情况下将此代码移动到地址 Y?我不想编写自己的反编译器。也许是一些现有的库或技巧?
【问题讨论】:
-
如果它是相对寻址的,那么它不应该关心它从哪里运行。所有地址都将与某个基地址相关。您需要弄清楚该基地址的存储位置,并用新的地址对其进行更新,其他一切都“正常工作”,因为它们正在进行“基地址 + x 字节”类型的计算。
-
对,如果它们都是相对内存地址,它应该在你放置的任何地方运行。你的用例是什么? EXE 加载程序不是已经为您执行此操作了吗?或者您是否尝试编写另一种病毒,我将不得不清理我的计算机并向您发送损失时间的账单?
-
@RobertHarvey 我想在 exe 中制作钩子。在地址
X处放置一个jmp,执行钩子,然后执行取自地址X但地址Y的原始代码。这是一款适用于 15 年前的电脑游戏的模组。
标签: windows assembly x86 exe machine-code