EXE base immer 0x400000 ?
-
Wieso patchst du nicht einfach das .exe file?
-
Weils eine Option sein soll.
-
Mann kann die BaseAddress mit GetModulHandle() bekommen.
#include <windows.h> int main() { HMODULE hm; hm = GetModuleHandle(NULL); return 0; }
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683199(v=vs.85).aspx
-
Desweitern zeigt doch der EIP des erzeugten Threads auf den Entrypoint wenn man nen Prozess mit diesem Flag started oder ned`?
-
ASLR ist bei jedem Systemstart für jeden Prozess gleich.
Hol dir die ImageBase von deinem Prozess, dann hast du auch die des anderen.
-
-lowbyte-, aber ich will doch nicht die Base von meinem Prozess, sondern von einem anderen, der noch im SUSPENDED-State ist...
C0de4Fun, aber was tun mit dem Entrypoint?
Thereaver, das scheint so nicht zu stimmen. Dieses eine Programm ist scheinbar immer an 0x00400000, während ich bei anderen Programmen komplett zufällige .exe-Basen entdeckte (Win7 64bit).
Ist ASLR ohne reloc. Table der .exe überhaupt möglich?
-
konkret1 schrieb:
Ist ASLR ohne reloc. Table der .exe überhaupt möglich?
ist es nicht.
-
sorry ich habe wohl Müll erzählt, aber auf die kernel32 trifft es zu. Die ist in jedem Prozess trotz ASLR gleich.
-
die einzige Möglichkeit die ich persönlich noch sehe ist, dass du eine DLL in den suspended Prozess injectest und dir dadurch die base holst oder gleich patched.
-
konkret1 schrieb:
-lowbyte-, aber ich will doch nicht die Base von meinem Prozess, sondern von einem anderen, der noch im SUSPENDED-State ist...
C0de4Fun, aber was tun mit dem Entrypoint?
Thereaver, das scheint so nicht zu stimmen. Dieses eine Programm ist scheinbar immer an 0x00400000, während ich bei anderen Programmen komplett zufällige .exe-Basen entdeckte (Win7 64bit).
Ist ASLR ohne reloc. Table der .exe überhaupt möglich?
Entrypoint steht in der Exe als offset drin. Jetzt merkste dir das Offset. Bleibt ja gleich bis zu nem Update. Und da wo jetzt EIP hinzeigt - Entrypointoffset = Base