Wpis z mikrobloga

Może kogoś zainspiruję ( ͡º ͜ʖ͡º)

Jak to działa?
Specjalnie przygotowana .DLLka jest mapowana do pamięci gry, od tego momentu można z jej poziomu mieć bezpośredni dostęp do pamięci gry, pozyskanie danej wartości sprowadza się do "odczytania" wskaźnika. Dane o aktualnej prędkości są zamienione na kąt o jaki powinna się wychylić wskazówka prędkościomierza (jest tutaj pewna niedokładność spowodowana słabym projektem samej papierowej tarczy oraz niedoskonałością algorytmu, bo nie chciało mi się już za bardzo szukać w kodzie gry tego oryginalnego, a efekt i tak jest przynajmniej dla mnie zadowalający). Później przez serial port (UART) dane są wysyłane do mikrokontrolera który przesuwa serwomechanizm o zadany kąt. To w sumie wszystko.

Kod: https://github.com/morsisko/ExtremeRacers-Speedometer

#arduino #elektronika #elektronikadiy #diy
morsisko - Może kogoś zainspiruję ( ͡º ͜ʖ͡º)

Jak to działa?
Specjalnie przygotowa...
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@morsisko: Car* car = *(Car**)(baseModule + 0x14B68);
Ta stała to zmienna predkosc w grze? Cheat enginem szukałeś? Kiedyś zainteresowalem sie reverse engineering'iem
i sie bawiłem sie chwile cheat enginem i ida pro.
  • Odpowiedz
@sentoxo: Ta stała to wartość o jaką jest oddalony obiekt klasy "Car" od początku modułu, jak wejdziesz w Structures.h to zobaczysz że prędkość jest 0x78 bajtów dalej. Tak szukałem tego za pomocą Cheat Engine i x32dbg
  • Odpowiedz