我拆开了一个游戏的DLL并想插入一些代码。 我需要asm代码来调用当前目录中的另一个DLL(我在Windows上)。 背景是,我希望能够在我的DLL中执行自定义代码, 但我无法加载DLL。所以我的想法是通过修改后的游戏DLL加载DLL。asm:调用一个DLL
游戏中可能存在一个函数,它给出了DLL的当前目录路径,但我想我不会找到它。
我拆开了一个游戏的DLL并想插入一些代码。 我需要asm代码来调用当前目录中的另一个DLL(我在Windows上)。 背景是,我希望能够在我的DLL中执行自定义代码, 但我无法加载DLL。所以我的想法是通过修改后的游戏DLL加载DLL。asm:调用一个DLL
游戏中可能存在一个函数,它给出了DLL的当前目录路径,但我想我不会找到它。
您正在查找的电话是LoadLibrary,它将在selection of places including the current directory中搜索DLL,然后加载它,然后GetProcAddress。
如果该DLL使其他Win32调用它可能已经链接到kernel32.dll
,所以这就是你需要做的。
由于无论如何您都必须进行反向工程,因此修改DLL或使用DLL injection的速度在编写代码所需的时间上更快是有争议的,但纯DLL注入的一个优点是所有现有的代码在安装方面都保持不变,如果用户希望“修补”任何你正在做的事情,那么这些修改更容易撤销。
Microsoft Detours自带setdll.exe
和withdll.exe
,这些实用程序将让你启动一个自定义的dll文件的exe文件。
什么游戏?你究竟想要完成什么? – Adam 2011-06-14 02:37:46