Hackerboard WikiHaboWeb Linkverzeichnis

[HaBo]

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

Antwort
Alt 07.06.08, 13:11   #1 (permalink)
 
Registriert seit: 10.01.08
Karma: 4
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  
Digg this Post!Add Post to del.icio.usBookmark Post in Technorati
Mit Zitat antworten
Alt 07.06.08, 13:16   #2 (permalink)
 
Registriert seit: 22.04.08
Karma: 7
jemo. Leistung: Z3
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  
Digg this Post!Add Post to del.icio.usBookmark Post in Technorati
Mit Zitat antworten
Alt 07.06.08, 13:43   #3 (permalink)
 
Registriert seit: 13.01.08
Karma: 4
.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  
Digg this Post!Add Post to del.icio.usBookmark Post in Technorati
Mit Zitat antworten
Alt 07.06.08, 14:21   #4 (permalink)
Themenstarter
 
Registriert seit: 10.01.08
Karma: 4
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  
Digg this Post!Add Post to del.icio.usBookmark Post in Technorati
Mit Zitat antworten
Alt 07.06.08, 14:48   #5 (permalink)
 
Registriert seit: 13.01.08
Karma: 4
.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  
Digg this Post!Add Post to del.icio.usBookmark Post in Technorati
Mit Zitat antworten
Antwort

[HaBo] » Software Home » Code Kitchen » zum Hooking
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 aus
Pingbacks are an
Refbacks are an


Ä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