Cześć powiedzmy mam program o nazwie wakacje.exe i za pomocą cheat engine mam adres, który mnie interesuje, pytanie jak otworzyć go w pythoine?
Ale co ty chcesz w pythonie "otworzyć"? o_O Generalnie to sie tak nie da zrobić. Dostęp do pamieci procesu mozesz mieć tylko jeśli zapniesz się do niego debugerem.
OpenProcess + WriteProcessMemory z pywin32. Nie trzeba byc podlaczonym debuggerem, wystarcza odpowiednie uprawnienia.
Python nadaje się do niskopoziomowej zabawy pamięcią równie dobrze, jak deskorolka do pokonywania Sahary.
Althorion napisał(a):
Python nadaje się do niskopoziomowej zabawy pamięcią równie dobrze, jak deskorolka do pokonywania Sahary.
Ciekawe dlaczego masa narzedzi do Reverse Engineeringu jest popisana w Pythonie (ImmunityDbg, IdaPy, Volatility...)
Bo samą niskopoziomową zabawą pamięcią zajmuje się kod napisany w innych językach. Podobnie byś się mógł pytać, że skoro Python jest taki wolny, to czemu się w nim tyle obliczeń numerycznych robi…
Dokladnie - bierzesz odpowiednia biblioteke do wywolan systemowych i nagle okazuje sie ze Python jest calkiem dobry do niskopoziomowej zabawy.
@Błękitny Terrorysta no ale jak chcesz sie bawić w OpenProcess i WriteProcessMemory to po prostu piszesz bieda-debuger w pythonie ;)
A python generalnie nadaje sie lepiej niż sie może wydawać. Wiele debuggerów pozwala na skryptowanie w pythonie, a do tego mamy takie perełki jak angr
czy pwntools
.
Pytanie brzmi: co autor tematu chce zrobić.
@Shalom: nie zgodze sie. Formalnie w Windowsie process nie jest debugowany gdy robisz tylko OpenProcess + WriteProcessMemory (IsDebuggerPresent zwroci ci false). Zeby process byl debugowany musisz wywolac na nim DebugActiveProcess . Ma to swoje implikacje chociazby takie, ze mozna podlaczyc tylko jeden debugger do pojedynczego procesu.
Nie no oczywiście, bo póki nie chcesz robic krokowego wykonania programu to technicznie rzecz biorąc nie debugujesz procesu, niemniej nie zmienia to faktu, że efektywnie robisz funkcjonalność okrojonego debugera/process monitora.