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?
Jak pobrać adres procesu
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
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.
- Rejestracja: dni
- Ostatnio: dni
OpenProcess + WriteProcessMemory z pywin32. Nie trzeba byc podlaczonym debuggerem, wystarcza odpowiednie uprawnienia.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1620
Python nadaje się do niskopoziomowej zabawy pamięcią równie dobrze, jak deskorolka do pokonywania Sahary.
- Rejestracja: dni
- Ostatnio: dni
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...)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1620
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…
- Rejestracja: dni
- Ostatnio: dni
Dokladnie - bierzesz odpowiednia biblioteke do wywolan systemowych i nagle okazuje sie ze Python jest calkiem dobry do niskopoziomowej zabawy.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
@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ć.
- Rejestracja: dni
- Ostatnio: dni
@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.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
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.