Einzelnen Beitrag anzeigen

k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#1

WriteProcessMemory/dealloc fragen

  Alt 30. Dez 2007, 20:54
Hey leute,

also ich arbeite seit vorgestern an einem trainer.
Hier erstmal der code worum es sich handelt damit ihr es besser versteht

Delphi-Quellcode:
if GMZoritaVAC.Checked = true
then
begin
// Allocating for CSEAX X
  lulz := VirtualAllocEx(HandleWindow, nil, 128, MEM_RESERVE or MEM_COMMIT, PAGE_READWRITE);
// Writing on allocated memory CSEAX X
buf := integer(lulz);
ShowMessage(IntToStr(buf));
  WriteProcessMemory(HandleWindow, lulz, @ZoritaAllc1, 5, Write);
  WriteProcessMemory(HandleWindow, ptr(integer(lulz)+5), @ZoritaAllc2, 1, Write);
  WriteProcessMemory(HandleWindow, ptr(integer(lulz)+6), @ZoritaAllc3, 6, Write);
  WriteProcessMemory(HandleWindow, ptr(integer(lulz)+12), @ZoritaAllc4, 1, Write);
  WriteProcessMemory(HandleWindow, ptr(integer(lulz)+13), @ZoritaAllc5, 6, Write);
  WriteProcessMemory(HandleWindow, ptr(integer(lulz)+19), @ZoritaAllc6, 2, Write);
  WriteProcessMemory(HandleWindow, ptr(integer(lulz)+21), @ZoritaAllc7, 3, Write);
  WriteProcessMemory(HandleWindow, ptr(integer(lulz)+24), @ZoritaAllc8, 1, Write);
// Writing the call
  WriteProcessMemory(HandleWindow, ptr($006DF140), [free], 2, Write);
  CloseHandle(HandleWindow);
end
else
  begin
    VirtualFreeEx(HandleWindow, lulz, 0, MEM_RELEASE);
    CloseHandle(HandleWindow);
  end;
Jetzt hab ich folgende probleme:
1. Das allocaten mit VirtualAllocEx allocated zu viel, ich will nur 128 bytes aber der macht mir 4kb oder so
2. Das deallocate (VirtualFreeEx) funktionier nicht. Aber ich kann keinen fehler sehen
3. Am ende bei "Writing the call" da muss ich auf die addresse $006DF140 schreiben "call "+Die eben allocated memory. Doch wie?

danke im vorraus..
  Mit Zitat antworten Zitat