![]() |
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.
|
Re: CreateProcess dynamisch importieren
Ich beharre weiterhin darauf. Hier die Funktion:
Delphi-Quellcode:
Benötigt wird die madDisAsm
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; |
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.
|
Re: CreateProcess dynamisch importieren
Die madDisAsm Unit meine ich .. die sollte doch die Library disassemblieren und genau den Originalcode aufrufen, oder?
|
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.
|
Re: CreateProcess dynamisch importieren
Mh also da gibt es keine Möglichkeit das zu umgehen?
|
Re: CreateProcess dynamisch importieren
Nein, jedefalls nicht wenn man keine Ahnung hat wie das alles funktioniert.
|
Re: CreateProcess dynamisch importieren
Aber du hast Ahnung denke ich doch mal ..
|
Re: CreateProcess dynamisch importieren
Wofür wirds gebraucht?
|
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 03:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz