Witam, w Pythonie napisałem prosty plik (skomplikowany na exe) który deklaruję i wyświetla tablicę 10 cyfr. Teraz chciałem napisać w c++ program który odczyta ten plik exe i zmodyfikuję ostatnią wartość tej tablicy. Mam problem praktyczny z wyszukaniem tych wartości, prosiłbym o wskazówki jak się do tego zabrać.
- Rejestracja:prawie 14 lat
- Ostatnio:około 9 godzin
System zabezpiecza pamięć wykorzystywaną przez program przed dostępem z innych programów, bez poważnych błędów w takowym masz w zasadzie 2 możliwości:
- stworzenie przez plik w c++ środowiska wirtualnego w którym zostanie uruchomiony plik w Pythonie, wtedy będzie miał wspomniany dostęp (bo to jemu a nie plikowi Pythona zostanie przyznana pamięć)
- dekompilacja exe Pythona, podmiana i ponowne stworzenie exe-ka
Mam dziwne wrażenie że oba są poza twoimi możliwościami.
mmap
, CreateFileMapping
, MapViewOfFile
)
4) wywołać pythonowski exec z parametrem w postaci innych dziesięciu cyfr (najprościej).
- Rejestracja:ponad 6 lat
- Ostatnio:ponad 6 lat
- Postów:4
Sig jeśli dobrze zrozumiałem to napisałeś w jaki sposób zmodyfikować program który działa natomiast mi chodzi o modyfikację kodu źródłowego programu i zmianę jego wartości na stałe gdy program jest skompilowany, niekoniecznie uruchomiony. Przykład który podałem powyżej jest tylko do wytłumaczenia o co mi chodzi
- Rejestracja:ponad 6 lat
- Ostatnio:ponad 6 lat
- Postów:13
Spróbowałeś chociaż hexedytorem znaleźć te swoje liczby w exeku i je nadpisać?
Jeśli były w segmencie data, to tylko otwierasz w c++ jako plik tego exeka, skaczesz pod offset, wpisujesz swoje wartości w miejsce istniejących i zapisujesz.
- Rejestracja:ponad 6 lat
- Ostatnio:ponad 6 lat
- Postów:4
Odnośnie tematu, pojawił się jeszcze jeden problem, nie mogę wyszukać tych wartości w skompilowanym pliku pythona. Do stworzenia exe użyłem pyinstaller (python w wersji 3.7). Dodam że w takim samym programie napisanym w c++ znalazłem je bez problemu.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.