AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Kleines Problem mit uallcollection

Kleines Problem mit uallcollection

Ein Thema von cisum · begonnen am 12. Nov 2009 · letzter Beitrag vom 14. Nov 2009
Antwort Antwort
cisum

Registriert seit: 12. Nov 2009
3 Beiträge
 
#1

Kleines Problem mit uallcollection

  Alt 12. Nov 2009, 21:36
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
  Mit Zitat antworten Zitat
cisum

Registriert seit: 12. Nov 2009
3 Beiträge
 
#2

Re: Kleines Problem mit uallcollection

  Alt 14. Nov 2009, 12:20
Möchte nicht aufdringlich wirken, aber weiß wirklich niemand worans liegen könnte?
  Mit Zitat antworten Zitat
cisum

Registriert seit: 12. Nov 2009
3 Beiträge
 
#3

Re: Kleines Problem mit uallcollection

  Alt 14. Nov 2009, 17:40
Hat sich erledigt.
Für Info wie:
http://www.delphi-forum.de/viewtopic.php?t=95940
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:06 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