Hackerboard WikiHaboWeb Linkverzeichnis

[HaBo]

major security
 
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; ...

Antwort
Alt 07.06.08, 12:11   #1 (permalink)
 
Registriert seit: 10.01.08
Karma: 5
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, 12:16   #2 (permalink)
 
Registriert seit: 22.04.08
Karma: 8
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, 12:43   #3 (permalink)
 
Registriert seit: 13.01.08
Karma: 5
.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, 13:21   #4 (permalink)
Themenstarter
 
Registriert seit: 10.01.08
Karma: 5
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, 13:48   #5 (permalink)
 
Registriert seit: 13.01.08
Karma: 5
.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
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 an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Inline Hooking Schurke (In)security allgemein 5 03.05.09 13:44
Dll Hooking über Api Hook Schurke Code Kitchen 5 11.03.09 16:38
[HowTo] Api-Hooking -- Interesse? Xalon (In)security allgemein 44 14.01.08 18:30
Artikelsuche Social engineering, security, dll hooking Verucca (In)security allgemein 5 25.09.07 13: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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194