我已经四处搜索,但我不确定我是否在问正确的问题,无论如何我都找不到太多,也许链接会有所帮助。
我制作了一个显示消息框的 c++ 程序,然后我用 Ollydbg 打开它并转到它调用 MessageBoxW 的部分。
每次我运行应用程序时,MessageBoxW 的调用地址都会更改,因为 Windows 正在更新我的 Imports 表以具有 MessageBoxW 的正确地址。所以我的问题是如何在导入表中找到 MessageBoxW 的虚拟地址,以及如何在 ollydbg 中使用它?
基本上我正在尝试在程序集中创建一个代码洞穴以再次调用 MessageBoxW。通过使用十六进制编辑器搜索可执行文件并找到调用的位置,我非常接近,我想我找到了虚拟地址。但是,当我在 olly 中调用该虚拟地址并将其保存到可执行文件中时,下次我打开它时,该调用被替换为一堆DB xyz
(看起来像虚拟地址,但为什么call
会被删除?
抱歉,如果我的术语不正确,因为我是新手,所以我不太确定该叫什么。