Thema: Delphi C++ zu delphi

Einzelnen Beitrag anzeigen

k4ni

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

Re: C++ zu delphi

  Alt 25. Jan 2008, 19:05
Hey, das soll jetz kein bump sein sondern nur eine frage zum gleichen thema.

Also das spile bzw. der GameGuard hookt ReadProcessMemory auch. (glaub ich zumindest)
Wenn ich versuche vom Prozess zu lesen gibt er einfach keine value zurück.
So hab ich das gemacht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ThreadId: Integer;
  HandleWindow: Integer;
  wnd: HWND;
  ProcessId, vl: Integer;
  p : pointer;
  puffer : array[0..1] of DWord;
  BytesRead: DWord;
begin
vl := 1337;
wnd := FindWindow('MapleStoryClass', nil);

if wnd = 0
  then
    begin
    ShowMessage('Could not find the Window');
    Exit;
    end;

    ThreadId := GetWindowThreadProcessId(wnd, @ProcessId);
    HandleWindow := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
    ReadProcessMemory( HandleWindow, ptr($0040000), @puffer[0], 4, BytesRead );

     vl := Puffer[0];
    ShowMessage(IntToStr(vl));
    CloseHandle(HandleWindow);
end;
Bei anderen prozessen geht das super. Dann hab ich das bei MapleStory (also das spiel) versucht dann bekomm ich die Message "1337". Hab ich ja davor noch deklariert.
Dann hab ich hier mal das gleiche versucht wie bei PMA.
Also:
Delphi-Quellcode:
function RPM(hProcess: Cardinal; const IpBaseAddress: Pointer; IpBuffer: Pointer; nSize: Cardinal; var IPNumberOfBytedRead: Cardinal):BOOL;stdcall;assembler;
asm
        jmp @go
        @usr32: db 'Kernel32.dll',0
        @PMA: db 'ReadProcessMemory',0
        @go:
        lea eax, @usr32
        push eax
        call LoadLibraryA
   lea ecx, @PMA
        push ecx
        push eax
        call GetProcAddress
        add eax,5
        jmp eax
end;
Mal keine EAddressViolation
Jetzt kommt auch kein "1337" mehr als message sondern immer diese zahl bei jeder addy: 1769498
Wenigstens ein kleiner erfolg.
Jetzt die frage:
Kann das sein das es auch an OpenProcess() liegt das er das hookt?
Oder ist der asm-code extra nur für PMA`?

Danke
  Mit Zitat antworten Zitat