我拆開了一個遊戲的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