Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CreateProcess importieren / API Hooks umgehen (https://www.delphipraxis.net/87500-createprocess-importieren-api-hooks-umgehen.html)

brechi 1. Mär 2007 16:26

Re: CreateProcess dynamisch importieren
 
Quatsch, Code overwriting oder Exporttable hooks werden nicht umgangen und selbst bei Importtable hooks haben viele Hook-Funktionen schon automatisch eingebaut, dass bei einem Aufruf von GetProcAddress die falsche Adresse zurückgegeben wird.

Zacherl 1. Mär 2007 16:29

Re: CreateProcess dynamisch importieren
 
Ich beharre weiterhin darauf. Hier die Funktion:

Delphi-Quellcode:
function GetRealProcAddress(hModule: HMODULE; lpProcName: pchar): pointer;
var
  Proc: pointer;
  CodeInfo: TCodeInfo;
  FunctionInfo: TFunctionInfo;
begin
  Proc := GetProcAddress(hModule, lpProcName);
  Result := Proc;
  CodeInfo := ParseCode(Proc);
  if not (CodeInfo.Call or CodeInfo.Jmp) then Exit;
  FunctionInfo := ParseFunction(Proc);
  if FunctionInfo.CodeLen <> 5 then Exit;
  repeat
    Result := FunctionInfo.FarCalls[Low(FunctionInfo.FarCalls)].Target;
    FunctionInfo := ParseFunction(FunctionInfo.FarCalls[Low(FunctionInfo.FarCalls)].Target);
  until FunctionInfo.CodeLen = 10;
end;
Benötigt wird die madDisAsm

brechi 1. Mär 2007 16:31

Re: CreateProcess dynamisch importieren
 
Das ist zwar schön, aber ich habe die uallCollection selbst geschrieben. Es wird nur die richtige Adresse geholt, d.h. noch lange nicht das vorher ein Export Table hook installiert war oder die Funktion mit Code Overwriting gehookt ist.

Zacherl 1. Mär 2007 16:32

Re: CreateProcess dynamisch importieren
 
Die madDisAsm Unit meine ich .. die sollte doch die Library disassemblieren und genau den Originalcode aufrufen, oder?

brechi 1. Mär 2007 16:35

Re: CreateProcess dynamisch importieren
 
Ach wat, die macht auch nix besonderes. Kann sein, dass die für nen speziellen Hook funktioniert. Aber allein schon der gebracuht von GetProcAddress is blödssinn wenns nen Exporttablehook gibt.

Zacherl 1. Mär 2007 16:37

Re: CreateProcess dynamisch importieren
 
Mh also da gibt es keine Möglichkeit das zu umgehen?

brechi 1. Mär 2007 16:39

Re: CreateProcess dynamisch importieren
 
Nein, jedefalls nicht wenn man keine Ahnung hat wie das alles funktioniert.

Zacherl 1. Mär 2007 16:40

Re: CreateProcess dynamisch importieren
 
Aber du hast Ahnung denke ich doch mal ..

brechi 1. Mär 2007 16:43

Re: CreateProcess dynamisch importieren
 
Wofür wirds gebraucht?

Zacherl 1. Mär 2007 16:45

Re: CreateProcess dynamisch importieren
 
Ich möchte eine EXE direkt im RAM ausführen. Dafür habe ich schon Teilweise Quelltexte von Nico gefunden (InMemExe).
Leider hat meine Firewall was dagegen (aus was für Gründen auch immer). Nun ist es für den Benutzer ja nicht sehr benutzerfreundlich, wenn seine Firewall zufällig grade die benötigten APIs hookt und somit das Programm nutzlos macht.

Daher will ich versuchen, zumindest die API Hooks zu ungehen. Wäre dir sehr dankbar, wenn du mir da helen könntest.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.
Seite 2 von 4     12 34      

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