Code cave problem
-
Hi,
hab ein programm, und da möchte ich über eine code cave eine dll einschleusen, und zwar damit diese die lösch methode überschreibt und mir das programm so löscht das es die dateien vorher überschreibt u. umbenennt.
( diesen ansatz nehme ich nur weil es mal was anderes ist als der normale globale hook !)004F432C . 44 65 6C 5F 44 4C 4C 2E 64 >ASCII "Del_DLL.dll",0 004F4338 00 DB 00 004F4339 /$ 50 PUSH EAX 004F433A |. 53 PUSH EBX ; kernel32.GetModuleHandleA 004F433B |. 68 2C434F00 PUSH CCleaner.004F432C ; /pModule = "Del_DLL.dll" 004F4340 |. 8B1D 40524F00 MOV EBX,DWORD PTR DS:[<&KERNEL32.GetModuleHandleA>] ; |kernel32.GetModuleHandleA 004F4346 |. FFD3 CALL EBX ; \GetModuleHandleA 004F4348 |. 85C0 TEST EAX,EAX 004F434A |. 74 28 JE SHORT CCleaner.004F4374 004F434C |. 90 NOP 004F434D |. 90 NOP 004F434E |. 90 NOP 004F434F |. 90 NOP 004F4350 |. 50 PUSH EAX 004F4351 |. 8B1D 7C524F00 MOV EBX,DWORD PTR DS:[<&KERNEL32.LoadLibraryA>] ; kernel32.LoadLibraryA 004F4357 |. 5B POP EBX ; kernel32.GetProcessHeap 004F4358 |. 58 POP EAX ; kernel32.GetProcessHeap 004F4359 |. EB 2F JMP SHORT CCleaner.004F438A 004F435B |. 44 6C 6C 20 6C 6F 61 64 69 >ASCII "Dll loading fail" 004F436B |. 65 64 00 ASCII "ed",0 004F436E |. 45 72 72 6F 72 00 ASCII "Error",0 004F4374 |> 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL 004F4376 |. 68 6E434F00 PUSH CCleaner.004F436E ; |Title = "Error" 004F437B |. 68 5B434F00 PUSH CCleaner.004F435B ; |Text = "Dll loading failed" 004F4380 |. 6A 00 PUSH 0 ; |hOwner = NULL 004F4382 |. 8B1D BC534F00 MOV EBX,DWORD PTR DS:[<&USER32.MessageBoxA>] ; |USER32.MessageBoxA 004F4388 |. FFD3 CALL EBX ; \MessageBoxA 004F438A |> 5B POP EBX ; kernel32.GetProcessHeap 004F438B |. 58 POP EAX ; kernel32.GetProcessHeap 004F438C |. 8B46 10 MOV EAX,DWORD PTR DS:[ESI+10] 004F438F |. 8945 E0 MOV [LOCAL.8],EAX 004F4392 \. C3 RETN
jetzt hab ich aber das problem das getmodule handle immer 00 00 00 00 liefert.
:| dll ist 1x im system und 1x im programm ordner, ich weiß nicht so recht wieso es das macht.
-- arg bin ich dämlich, nicht nur das getmodule handle nicht läuft, ich brauchs nicht, ich hab die ganze zeit daran gedacht --> GetProccAdress(GetModuleHandle(..),...);... :|
... after fixing this little issue in mind, its working...