asm:调用 DLL
Posted
技术标签:
【中文标题】asm:调用 DLL【英文标题】:asm: Call a DLL 【发布时间】:2011-09-13 13:23:24 【问题描述】:我反汇编了一个游戏的 DLL,并想插入一些代码。 我需要 asm 代码来调用当前目录中的另一个 DLL(我在 Windows 上)。 背景是,我希望能够在我的 DLL 中执行自定义代码, 但我无法加载 DLL。所以我的想法是通过修改后的游戏DLL来加载DLL。
游戏中可能有一个函数可以告诉我 DLL 所在的当前目录路径,但我想我不会找到它。
【问题讨论】:
什么游戏?你到底想完成什么? 【参考方案1】:您要查找的调用是 LoadLibrary,它将在 selection of places including the current directory 中搜索 DLL,然后加载它,然后是 GetProcAddress。
如果 DLL 进行任何其他 Win32 调用,它可能已经链接到 kernel32.dll
,这就是您需要做的所有事情。
在编写代码所需的时间方面,修改 DLL 或使用 DLL injection 是否更快是有争议的,因为无论如何你都必须进行逆向工程,但是,纯 DLL 注入的一个优点是所有现有代码在安装方面保持未修改,如果用户希望“取消修补”您正在做的任何事情,这些修改更容易撤消。
【讨论】:
【参考方案2】:Microsoft Detours 带有 setdll.exe
和 withdll.exe
,这些实用程序可以让您使用自定义 dll 文件启动 exe。
【讨论】:
以上是关于asm:调用 DLL的主要内容,如果未能解决你的问题,请参考以下文章