Z jakich plików korzysta program

0

Witam mam pewną greę a do niej tweak'a no i w tweak'u się zmienia wartości, ale ja chciałbym zrobić tak żeby te wartości były stałe to znaczy żeby gra odpalała się na już zmienionych wartościach bez użycia tweak'a, czyli po prostu chce zmienić te początkowe wartości. Myślę że podziałało by coś takiego jak program Who Lock Me ale on nie działa na win7, jeżeli wiedziałbym jaki to plik to potem znalazłbym już chyba linię.

Z góry dziękuję za pomoc ;)

0

Z jakich plików korzysta jaki program ustalisz programem FileMon (to nazwa skrócone od File Monitor). A poza tym pisząc Tweaka masz chyba na myśli Trainer skoro to do gry. Ustal sobie Cheat Engine jakie adresy są zmieniane, a także czy da się ustalić Pointer na nie. Jak znajdować Pointery w Cheat Engine masz pokazane na wilu stronach do wyszukania w google oraz w tutorialach video - oczywiście na YouTube, także po polsku można znaleźć. Ale nie jest to specjalnie trudne. Od siebie jako pomoc dołączam do tego posta własny trainer do starej gry "Horde" do (pobrania z: http://staregry.pl/?c=_gv&i=751), którą odpalsz pod DosBoxem (http://www.dosbox.com). Jak widzisz działa to na zasadzie wstrzyknięcia dllki do procesu DosBoxa, a dzięki wcześniejszym ustaleniom z Cheat Engfine wiem, że Crowns czyli waluta używana w tej grze siedzi pod następującym adresem Pointera i jest przesunięta o poniższy ofset - patrz niżej. Natomiast offset z energią jest zapisywany pod innym ofsetem pobieranym na podstawie offsetu dodanego do ImageBase (w tym przypadku ImageBase to standardowo $400000.
Stałe dla kasiory oraz energii

  Crowns_Pointer = $74B6B0;
  Crowns_Offset = $1B1E98;
  Energy_Offset = $1BA966;

Wykrywanie wartości

procedure GetValuesAmount;
var
  Read : Cardinal;
  HProcess : THandle;
begin
  AmountOfCrowns := PDWORD(PDWORD(Crowns_Pointer)^ + Crowns_Offset)^;
  HProcess := OpenProcess(PROCESS_ALL_ACCESS, False, GamePid);
  if HProcess > 0 then
  begin
    ReadProcessMemory(HProcess, Ptr($400000 + $34B6B0),
      @Energy_Address, SizeOf(Energy_Address), Read);
    CloseHandle(HProcess);
    AmountOfEnergy := ReadValue2(GamePid, Energy_Address + Energy_Offset);
  end;
end;

Mam nadzieję, że to coś Tobie pomoże. A kod tego Trainera w wersji z szukaniem charaktrystycznych Offsetów w pamięci (mało eleganckie ale nieraz jedyna metoda na stare Amigowe gry uruchamiane pod WinUAE jak na przykład ulubiona moja gra Sensible World of Soccer) i dodawaniu do nich określonej wartości aby znaleźć w pamięci zmieniające miejsce dane oraz metoda na wstrzykanie dllki do procesu przez prosty loader i moduł afxcodehook.pas pokazywałem tutaj już kiedyś w innym wątku. Tylko zastanawia mnie ta nazwa Tweaker, bo z Tweakerami do gier się nie spotkałem, jedynie raczej właśnie z różnego rodzaju Trainerami. A całośc napisałem oczywiście w polubionym ostatnio WinAPI aby prosty Trainer nie był spuchniętym rozmiarowo exeko - molochem. Dodatkowo aby plik exe był jeszcze mniejszy skorzystałem z modułów dostepnych na: http://kolmck.net/sys/SysDcu7.zip które kiedyś dla aplikacji WinAPI polecił mi Misiekd. Dzięki temu exek i dllka po spakowaniu są jeszcze mniejsze. Ale ma to miejsce tylko jeśli nie korzystamy z modułów VCL, bo inaczej programu nie skompilujemy.

0

dzięki wielkie, jak mi się uda to odpowiem...

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