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