Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Szukanie adresu bazowego


BaronQ™

Pytanie

Opublikowano

Cześć. Zacząłem się ostatnio bawić z CE, znalazłem kilka podstawowych wartości dotyczących gracza, chcę odnaleźć adres tej struktury ale do tego potrzebuję znaleźć najpierw adresy którejś z wartości.

Struktura której szukam wygląda mniej więcej tak (względem HP a nie początku).

0x0000 - flaot - HP
0x0014 - 4byte - AgilityPoints
0x0018 - 4byte - StrenghtPoints
0x001C - 4byte - VitalityPoints
0x0020 - 4byte - PowerPoints
0x0024 - float - MP
0x0030 - 4byte - Cash
0x0048 - 4byte - CharacterPoints
0x004C - 4byte - SkillPoints

I teraz chcę znaleźć adresy bazowe, wybrałem sobie CharacterPoints, z pomocą "Find out what accesses this address" znalazłem adres ostatniego wskaźnika (0x08603000) i offset do niego (0x05A0).

Problem w tym że otrzymuję prawie 900 wyników, jak na razie sprawdziłem 8 (losowych), każdy co prawda zwraca wartość ale nie są statyczne i nie udaje mi się uzyskać kolejnego wskaźnika do nich, nic ich nie wywołuje. Nie za bardzo widzi mi się sprawdzanie każdej możliwości. Jak mogę zawęzić obszar poszukiwań? Próbowałem używać opcji "Pointer scan for this address" ale po kilkunastu restartach miałem ponad 50k wyników więc też średnio. Jak mogę to ułatwić?

 

Wydaje mi się że te kilka pierwszych wyników 0018* nie będą prawidłowymi ale to i tak za bardzo nie ułatwia sprawy.

 

 

8JiAzvf.png?1

 

 

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

Opublikowano

@up

Odpal debugger i taka rada aby nie robić tego względem właśnie hp tylko prawdziwego wskaźnika(czyli character points będą na 0x05A0), bo gdy coś będzie przed hp to twoja struktura jest rozwalona(trzeba ją niepotrzebnie przesuwać)

 

Ja bym to zrobił tak, że w jakimś debuggerze(polecam ollydbg) ustawiłbym breakpoint np na te characterPoints i załóżmy miał coś w stylu MOV EAX, DWORD PTR DS : [EDX + 0x5A0] to patrzyłbym, skąd bierze się to EDX(bardzo prawdopodobne że z poprzedniej funkcji), wtedy patrzysz na stos i patrzysz jaka funkcja była wykonywana przed tą w której jesteś aktualnie(możesz oczywiście tam dla ułatwienia ustawić breakpoint) i tak robisz do skutku, aż nie znajdziesz czegoś w stylu MOV EAX, DWORD PTR DS [tutaj adres z którego korzysta gra], wtedy będziesz miał bazowy adres, później dodawanie offsetów i gotowe.

Bot do gry NosTale:


[bOT] NosBota 1.3v

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...