Program do modyfikacji stosu innej aplikacji

0

Tytuł nie jest idealnie taki jak bym chciał i zapewne nie do końca tendział, ale jest tu kilka osób, które wielokrotnie mi pomagały stąd pisze tutaj. Chodzi o taką rzecz:

Jest aplikacja łącząca się z serwerem SQL (PostgreSQl dokładniej) i jest aktualizacja do tej aplikacji. Aktualizacja wykonuje pewne zapytanie SQL, które powoduje błąd. Wiem jakie to zapytanie i jak je naprawić (to kwestia literówki).

Niestety - na razie producent jest ciężko zawalony robotą i nie wiadomo kiedy zajmie się naprawą tej aktualizacji, a ja muszę koniecznie zaktualizować aplikację już.

Potrzebuję programu, który pozwoli mi zatrzymać wykonywanie aktualizatora, zmodyfikować zapytanie SQL, które powoduje błąd i puścić go dalej.

pytanie czy macie jakieś doświadczenia z programami tego typu.

0

Potrzebuję programu, który pozwoli mi zatrzymać wykonywanie aktualizatora, zmodyfikować zapytanie SQL, które powoduje błąd i puścić go dalej.

Masz pare możliwości:
1.Modyfikacja EXE żeby poprawić ten błąd
2.Injectowanie DLL w czasie uruchomienia programu i wtedy modyfikacja lub założenie hooka na WinApi.
3.Szperanie w programie na odległość, ale ta metoda jest zawodna.

Generalnie metoda 1 sprawdzi się w przypadku małych poprawek, będzie dosyć solidna i się łatwo nie rozsypie. W przypadku dużych modyfikacji będzie dużo roboty.
Metoda 2 przyda się jeżeli trzeba injectować WinApi (wtedy będzie to proste jak drut), będzie ona też najlepszym rozwiązaniem jeżeli trzeba zrobić jakąś funkcję która w którymś momencie zostanie wywołana jako zamiennik dla oryginału.
Metoda 3 jest rozwiązaniem które powoduje najmniejsze zmiany, ale też jest najtrudniejsza do zrobienia, zwłaszcza jeżeli modyfikacja jest jakąś większą.

0

EXE ładuje i przetwarza skrypty PascalScripta - niestety podkładanie własnego kodu jest niemożliwe, bo plik zawierający skrypt ma na początku checksumę i wywala się, kiedy zmieni się choćby jeden znak w ładowanym pliku.

DLL injection nie wchodzi w grę, bo nie są ładowane żadne bilbioteki

debugging zdalny nie wchodzi w grę. Za cienki ze mnie bolek.


Ale znalazłem rozwiązanie dokładnie takie o jakie mi chodzi: Cheat Engine

http://www.cheatengine.org/

Pozwala zrobić dokładnie to o co mi chodzi:

  • podpiąć się pod działający proces
  • zatrzymać aktualizację w odpowiednim momencie (ładowanie pliku z kodem SQL poprawki)
  • zmodyfikować zawartośc pamięci/stosu aktualizacji
  • odpauzować i pozwolić na wykonanie zmodyfikowanego kodu

Dziękuję za uwagę. Temat załatwiony.

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