Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Kleines Problem mit uallcollection (https://www.delphipraxis.net/143275-kleines-problem-mit-uallcollection.html)

cisum 12. Nov 2009 20:36


Kleines Problem mit uallcollection
 
Moin Delphipraxis,

ich habe zwei kleine Anwendungen geschreiben.

Die eine (Project1) ist eine Formularanwendung und hat einfach nur einen Button, mit folgender Prozedur:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  MessageBoxA(0,'this is a test','test',0);
end;
Mein Zeil ist es nun über ein zweites Programm in diesen Aufruf von MessageBoxA einzugreifen und diesen zu manipulieren.
Habe dazu folgendes Programm geschrieben und teils aus den Beispielen der uallcollection kopiert:
Delphi-Quellcode:
program hook;

{$APPTYPE CONSOLE}

uses
  Windows,
  uallHook,
  uallProcess;

var
  origMessageBoxA: function (hWnd: HWND; lpText, lpCaption: PAnsiChar; uType: UINT): Integer; stdcall;
  newMessageBoxA: function (hWnd: HWND; lpText, lpCaption: PAnsiChar; uType: UINT): Integer; stdcall;

function callbackMessageBoxA(hWnd: HWND; lpText, lpCaption: PAnsiChar; uType: UINT): Integer; stdcall;
begin
  Result := newMessageBoxA(hWnd,PChar(lpText+' [hooked]'),lpCaption,uType);
end;

procedure DllMain;
var
  dwoglModule: DWord;
begin
  dwoglModule := LoadLibrary('user32.dll');
  @origMessageBoxA := GetProcAddress(dwoglModule,'MessageBoxA');
  uallHook.HookCode(@origMessageBoxA,@callbackMessageBoxA,@newMessageBoxA);
end;

procedure Main;
var
  dwPID: DWord;
begin
  dwPID := uallProcess.FindProcess('Project1.exe');
  if (dwPID <> 0) then
  begin
    uallHook.InjectMe(dwPID,@DllMain);
  end;
end;

begin
  Main;
end.
Wenn ich das Programm Project1 gestartet habe und das Programm hook starte bekomme ich immer folgende Fehlermeldungen:
Zitat:

---------------------------
Project1.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x00ef1561" verweist auf Speicher in "0x00000008". Der Vorgang

"read" konnte nicht auf dem Speicher durchgeführt werden.


Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK Abbrechen
---------------------------
Zitat:

---------------------------
Project1.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x00ef3281" verweist auf Speicher in "0x000c01b3". Der Vorgang

"read" konnte nicht auf dem Speicher durchgeführt werden.


Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK Abbrechen
---------------------------
Zitat:

---------------------------
Project1.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x00ef32d2" verweist auf Speicher in "0x000c01b3". Der Vorgang

"read" konnte nicht auf dem Speicher durchgeführt werden.


Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK Abbrechen
---------------------------
Zitat:

---------------------------
Project1.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x00ef3281" verweist auf Speicher in "0x000c01b3". Der Vorgang

"read" konnte nicht auf dem Speicher durchgeführt werden.


Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK Abbrechen
---------------------------
Zitat:

---------------------------
Project1.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x00ef32d2" verweist auf Speicher in "0x000c01b3". Der Vorgang

"read" konnte nicht auf dem Speicher durchgeführt werden.


Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK Abbrechen
---------------------------
Habt ihr vielleicht eine Idee, worans liegen könnte?

Vielen Dank im Vorraus!

Gruß,
cisum

cisum 14. Nov 2009 11:20

Re: Kleines Problem mit uallcollection
 
Möchte nicht aufdringlich wirken, aber weiß wirklich niemand worans liegen könnte? :oops:

cisum 14. Nov 2009 16:40

Re: Kleines Problem mit uallcollection
 
Hat sich erledigt.
Für Info wie:
http://www.delphi-forum.de/viewtopic.php?t=95940


Alle Zeitangaben in WEZ +1. Es ist jetzt 01: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