AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C++ zu delphi

Ein Thema von k4ni · begonnen am 25. Jan 2008 · letzter Beitrag vom 26. Jan 2008
Antwort Antwort
Seite 2 von 2     12   
k4ni

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

Re: C++ zu delphi

  Alt 25. Jan 2008, 16:29
Hmm ich habs mit Delphi 7 und 10 versucht.
Es macht schon was es machen muss aber dann gibts dann halt danach ne eAddressViolation
  Mit Zitat antworten Zitat
Neotracer64

Registriert seit: 27. Okt 2004
292 Beiträge
 
Delphi 7 Professional
 
#12

Re: C++ zu delphi

  Alt 25. Jan 2008, 16:32
Gib nochmal den ganzen Code oder gleich das Test Projekt als Anhang.
Vlt. habe ich einen Fall übersehen. Geht es denn, wenn du ein ganz neues projekt machst und meinen code reinkopierst?
  Mit Zitat antworten Zitat
Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#13

Re: C++ zu delphi

  Alt 25. Jan 2008, 16:40
Dann liegt das Problem warscheinlich auch woanders, hast du dir den Anfang von PostMessage mal im disassembler angeschaut?

BTW, mein vorschlag waere:
Delphi-Quellcode:
function PostMessage1337(hWnd:HWND;MSG:UINT;WPARAM:wParam;LPARAM:lParam):BOOL; stdcall;
asm
        jmp @go
        @usr32: db 'user32.dll',0
        @PMA: db 'PostMessageA',0
        @go:
        lea eax, @usr32
        push eax
        call LoadLibraryA
   lea ecx, @PMA
        push ecx
        push eax
        call GetProcAddress
        add eax,5
        jmp eax
end;
  Mit Zitat antworten Zitat
k4ni

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

Re: C++ zu delphi

  Alt 25. Jan 2008, 16:43
Hab ich auch schon versucht.
Werd jetz auch mal Win32.Api's version testen.
Ich hab das project mal im ahhang. (mit der kompilierten exe).

Edit:
Komisch. Win32.Api's geht auch nicht. Auch eAddressViolation.
Angehängte Dateien
Dateityp: rar thx4help_621.rar (158,4 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Neotracer64

Registriert seit: 27. Okt 2004
292 Beiträge
 
Delphi 7 Professional
 
#15

Re: C++ zu delphi

  Alt 25. Jan 2008, 16:49
Jo Win32.APIs Lösung klappt bei mir auch problemlos.
Wollte halt sowenig ASM wie möglich benutzen, da man daraus dann besser eine Secure Api Klasse basteln könnte.

Zitat:
Edit:
Komisch. Win32.Api's geht auch nicht. Auch eAddressViolation.
Hmm. Dann ist was anderes falsch. Mal reinschauen.

//Edit2:

Selbst die Binary von dir klappt bei mir.
Das bedeutet wohl, dass entweder:

1. PostMessageA bei dir von irgendeinem anderen Programm so merkwürdig gehookt wird, dass es nicht geht.
2. Du hast ServicePack2 nicht, da dort (afaik?) MOV EDI, EDI für Hotpatching eingeführt wird.

Hmm mehr fällt mir im Moment nicht ein.
  Mit Zitat antworten Zitat
Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#16

Re: C++ zu delphi

  Alt 25. Jan 2008, 16:51
Deine kompilierte version laeuft bei mir, welche windows version benutzt du? Welches Programm versucht du zu umgehen?
  Mit Zitat antworten Zitat
k4ni

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

Re: C++ zu delphi

  Alt 25. Jan 2008, 16:55
Okay..danke.
Ne SP2 hab ich nicht, werd ich mir jetzt aber mal ziehen aber vorher erst mal mit nem PC restart versuchen. Hatte vorher das spiel mal aus mit dem GameGuard (nProtect rev1139) das PMA hookt Und genau das will ich damit umgehen. Achso ja, das spiel heist MapleStory.

Edit:
Vielen vielen dank an euch 2.
Liegt wohl an SP2 (installier ich gerade) müsst dann gehen. DANKE!!
  Mit Zitat antworten Zitat
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
Neotracer64

Registriert seit: 27. Okt 2004
292 Beiträge
 
Delphi 7 Professional
 
#19

Re: C++ zu delphi

  Alt 26. Jan 2008, 03:20
Gameguard veranstaltet wesentlich mehr als Usermode Apis zu hooken. (Obwohl ich mir jetzt nicht sicher bin, ob GameGuard ÜBERHAUPT was im Userland hooked, aber da scheinst du dich informiert zu haben oder hast nachgeschaut?)
Wie dem auch sei, GameGuard lädt einen Treiber und verhindert jegliche Manipulation des Zielprozesses von Ring0 aus.
Es wird also viel schwieriger werden GameGuard zu umgehen, als du anfangs dachtest.
Denn jetzt wäre es an der Zeit GameGuard zu reversen um zu gucken, was GameGuard macht und was man dagegen tun könnte.
Leider kommen auch noch AntiDebug-Tricks dazu, also wie gesagt es wird nicht einfach.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz