Ręczne wywołanie zapisu gry z odpalonego programu

Odpowiedz Nowy wątek
2019-11-08 08:46
0

Do bardzo starej gry (10 lat) chciałbym dorobić programik, który by zapisywal mi postęp co 5 minut. Niestety nie wiem jak zabrać się za znalezienie adresu funkcji, która zapisuje.

Jakieś narzędzie do zapisu stacktrace od danego momentu), odpalić i wywołać save, a potem przeanalizować czy jak to znaleźć?

Próbowałem CheatEnginem zatrzymać program, tylko wtedy wiesza się UI i nie kliknę w zapis by prześledzić co się dzieje.

Pozostało 580 znaków

2019-11-08 09:20
0

Możesz spróbować podpiąć się np. GDB.


Hmm, mógłbyś rozwinąć? - viader 2019-11-08 16:50
Okey, czytając artykuł: https://jvns.ca/blog/2018/01/04/how-does-gdb-call-functions/ jestem w stanie zrozumieć jak z GDB wywołać daną funkcje. Muszę ją jeszcze jakoś znaleźć. - viader 2019-11-11 12:13

Pozostało 580 znaków

2019-11-08 10:31
0

10 lat to nie taka stara. :) Przynajmniej dla mnie, przez ostanie 20 lat zmieniło się znacznie mniej niż poprzednie 10...
Do rzeczy, jak rozumiem nie masz kodu źródłowego i działasz na Windowsie. Pytanie czy jest skrót klawiszowy na szybki zapis? Jeśli tak, może wystarczy użyć winapi żeby wysłać zdarzenie wciśnięcia klawisza do okna z grą.
Jeśli nie, pewnie należałoby ustawić breakpoint na funkcjach zapisu do pliku i obejrzeć stos wywołań. Tak powinieneś w miarę łatwo zlokalizować właściwą funkcję


edytowany 2x, ostatnio: elwis, 2019-11-08 10:34
Nie ma skrótu klawiszowego do zapisu. Kodu źródłowego nie mam, hmm a jakiś pomysł jak znalezc w procesie funkcje zapisujące pliki? - viader 2019-11-08 16:48

Pozostało 580 znaków

2019-11-08 18:48

@viader: a sekwencja klawiszy? Też styknie. A jak nie, to bym na początek użył jakiegoś analizatora plików PE (używam pev, ale to bardziej linuksowa zabawka, na Windows są okienkowe narzędzia), żeby wydobyć listę używanych funkcji i wybrać te, które pasują najbardziej.


edytowany 2x, ostatnio: elwis, 2019-11-08 18:49
Próbowałem przeglądać pliki analizatorem PE, póki co jeszcze nie jestem w stanie odnaleźć funkcji zapisu. Z dnia na dzień jednak trochę więcej wiem na co patrzeć. Udało mi znalezc jakie funkcje (koło 40) się wywołują przy zapisie, ale kod assemblerowy jeszcze niewiele mi mówi. - viader 2019-11-11 12:16
To nie patrz, funkcje traktuj jako Black box. Możesz stosować na przykład bisekcję i obserwować parametry by dojść, który kawałek kodu potrzebujesz - elwis 2019-11-11 12:41
ogólnie to trochę pomyliłem wiek gry, ma już 20 lat :D no i jest już patchowana przez fanów różnymi hackami, więc trochę analiza plików PE jest trudna. - viader 2019-11-15 09:42

Pozostało 580 znaków

2019-11-15 09:46
0

Dobra pokombinowałem, znalazłem sekwencję klawiszy, która to ogarnia to super ;) Ma jedną wadę, może zatrzymać przerwać ruchu, ale jestem w stanie to przeżyć narazie.

Przydałoby się wykrywanie czy gra jest aktywna by użyć tych klawiszy.

edytowany 1x, ostatnio: viader, 2019-11-15 09:48

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0