Read/WriteProcessMemory

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
s3rh47
Üye
Mesajlar: 2
Kayıt: 25 Ara 2010 04:29

Read/WriteProcessMemory

Mesaj gönderen s3rh47 »

Merhaba

Bu Baslikda Yazdigim Apiler Delphi7 de sorunsuz calisirken Xe2 parametre hatasi aliyorum


Öncelike burda kaynak bir kod var. Delphi7 de sorunsuz derleniyor. Gördügüm Videolarda ve ya tutoriallerde hic bir sorun yok :S

Ama ne hikmetse Xe2 de hep bu hatayi verir..

Kod: Tümünü seç

E2033 Types of actual and formal var parameters must be identical
ReadProcessMemory(pi.hprocess,Pointer($403CEA),@olddata,2,bytesread);


WriteProcessMemory(pi.hProcess, Pointer($403CEA), @NewData, NewDataSize, bytesread);

Kod: Tümünü seç


  var
  si : Startupinfo;
  pi : Process_Information;
  NewData : array[0..1] of byte = ($90,$90);
  NewDataSize : DWORD;
  Bytesread : DWORD;
  Olddata : array[0..1] of byte;

begin

  NewDataSize := sizeof(newdata);
  IF CreateProcess(nil,'Example.exe',nil,nil,FALSE,
           Create_Suspended,nil,nil,si,pi) = true then

  begin
    ReadProcessMemory(pi.hprocess,Pointer($403CEA),@olddata,2,bytesread);
    if (olddata[0] = $75) and (olddata[1] = $19) then
    begin
      WriteProcessMemory(pi.hProcess, Pointer($403CEA), @NewData, NewDataSize, bytesread);
      ResumeThread(pi.hThread);
    end else
    begin
      Messagebox(0,pchar('Bytes not found! Wrong version?...'),pchar('Error'),mb_iconinformation);
      TerminateProcess(PI.hProcess,0);
    end;
    CloseHandle(pi.hProcess);
    CloseHandle(PI.hThread);
  end;


Acaba nerde yanlis yapiyorum ? Neden eski sürümde sorun yokken yeni sürümlerde böyle aptal hatalar cikar :S
PROGRAMADOR
Üye
Mesajlar: 239
Kayıt: 04 Oca 2008 01:53
Konum: Karşıyaka/İzmir

Re: Read/WriteProcessMemory

Mesaj gönderen PROGRAMADOR »

size_t kullanın.

Kod: Tümünü seç

SIZE_T(bytesread)
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
Cevapla