Hackerboard WikiHaboBlog

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

zum Hooking

Diskussion: zum Hooking im Forum Code Kitchen, in der Kategorie Software Home; Alos, ich hab mir das tut mal durchgelesen udn ausprobiert, und da is mir ne idee gekommen. also man kann ...

Antwort
Alt 07.06.08, 13:11   #1 (permalink)
 
Registriert seit: 10.01.08
Schurke Leistung: Facit NTK
Standard zum Hooking


Alos, ich hab mir das tut mal durchgelesen udn ausprobiert, und da is mir ne idee gekommen.

also man kann ja anscheinend fremde prozeduren überlagern so das die eigenen aufgerufen werden. aber ist es dann auch wieder möglich aus der überlagerten die original.. aufzurufen? also z.B.

das prog. startet und geht halt zur prozedur, kommt in usere überlagerte, wir verändern parameter, und rufen die alte mit unseren parametern auf.

ist das möglich?

Schurke ist offline   Mit Zitat antworten
Alt 07.06.08, 13:16   #2 (permalink)
 
Registriert seit: 22.04.08
jemo. Leistung: Facit NTK
Standard

Ich vermute, dass du da einfach dann eine Fallunterscheidung machen kannst, um die originale Prozedur/Funktion dann aufzurufen, wenn als Parameter xyz übergeben wurde.
Aber da ich mich damit nicht auskenne, kann ich dazu nicht mehr sagen.
jemo. ist offline   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 07.06.08, 13:43   #3 (permalink)
 
Registriert seit: 13.01.08
.garfield Leistung: Facit NTK
Standard

durchaus möglich, sonst würde Hooking ja wenig Sinn machen wenn die original Funktion nicht mehr zur Verfügung stände
Ich kenne mich nur mit IAT Patching aus, und falls man den OriginalFunktionspointer speichert, kann man natürlich die originalFunktion wieder aufrufen.
Falls du Interesse hast kann ich hier mal nen Delphi SourceCode zu dem THhema posten.
.garfield ist offline   Mit Zitat antworten
Alt 07.06.08, 14:21   #4 (permalink)
Themenstarter
 
Registriert seit: 10.01.08
Schurke Leistung: Facit NTK
Standard

das wäre nett^^ delphi is ja auch nicht viel anders als c++ :3 ( das benutze ich halt lieber )
Schurke ist offline   Mit Zitat antworten
Alt 07.06.08, 14:48   #5 (permalink)
 
Registriert seit: 13.01.08
.garfield Leistung: Facit NTK
Standard

Also hier mal ne Funktion zum Hooken einer Funktion:
Code:
procedure PatchIAT(strMod : Pchar; Alt, Neu : Pointer);
var
pImportDir : pImage_Import_Descriptor;
size : CardinaL;
Base : Cardinal;
pThunk : PDWORD;
bw : Cardinal;
begin
Base := GetModuleHandle(0);
pImportDir := ImageDirectoryEntryToData(Pointer(Base),True,IMAGE_DIRECTORY_ENTRY_IMPORT,size);
while pImportDIr^.Name <> 0 Do begin
  If (lstrcmpiA(Pchar(pImportDir^.Name+ Base),strMod) = 0) then begin
    pThunk := PDWORD(Base + pImportDir^.FirstThunk);
    While pThunk^ <> 0 Do begin
      if DWORD(Alt) = pthunk^ Then begin
        //pthunk^ :=  Cardinal(Neu);
        VirtualProtectEx(GetCurrentProcess,pthunk,4,PAGE_EXECUTE_READWRITE,bw);
        WriteProcessMemory(GetCurrentProcess, pthunk, @Neu, sizeof(Neu), bw);
      end;
    Inc(pThunk);
    end;
  end;
  Inc(PImportDir);
end;
end;
Das benutzt man dann zum Beispiel so:
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
pOldMessageBoxA := GetProcAddress(GetModuleHAndle('user32.dll'),'MessageBoxA'); //alte Adresse speichern
PatchIat('user32.dll',GetProcAddress(GetModuleHAndle('user32.dll'),'MessageBoxA'),@NewMessageBoxA);
end;
Und die Neue Funktion:
Code:
function newMessageBoxA(hWnd: HWND; lpText, lpCaption: PAnsiChar; uType: UINT): Integer; stdcall;
var
myMesBoxA : function(hWnd: Cardinal; lpText, lpCaption: PAnsiChar; uType: UINT): Integer;stdcall;
begin
If lpText = 'DD2' Then begin
  myMesBoxA := pOldMessageBoxA;
  myMEsBoxA(hwnd,lptext,lpCaption,uType);
end else begin
  Form1.Button1.Caption := 'keine MSGBOX!';
end;
end;
.garfield ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » zum Hooking
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Inline Hooking Schurke (In)security allgemein 5 03.05.09 14:44
Dll Hooking über Api Hook Schurke Code Kitchen 5 11.03.09 17:38
[HowTo] Api-Hooking -- Interesse? Xalon (In)security allgemein 44 14.01.08 19:30
Artikelsuche Social engineering, security, dll hooking Verucca (In)security allgemein 5 25.09.07 14:04


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61