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

Co to jest ? Tablica Bajtów


Rekomendowane odpowiedzi

Opublikowano

Ludzie czasami piszą takie coś :

BYTE [] = {0x90,0x75,0x40};

 

Co to znaczy ?

 

Oraz coś takiego

 

"0x90/0x90/0x90/0x90/0x90/0x90/0x90/0x90"

 

wiem , że to jest sygnatura(?) ale dlaczego jest tam 0x90?

nostaleh.png
Opublikowano

sygnatura do znalezienia odpowiedniego miejsca w pamieci, np masz instrukcje w asemblerze

mov eax, 5

pop ebx

call [ebx]

cmp eax,7

je cos

kazda instrukcja ma swoj opcode, w pamieci sa wlasnie te dziwne cosie z 0x na poczatku, ZALOZMY ze mov ma opcode 0x90, eax reprezentujemy 0x1 a liczbe po prostu zapisujemy w hexie, to

mov eax, 5

bedzie w pamieci reprezentowane przez

0x90 0x1 0x5

i takich liczb masz duzo, sygnatur uzywasz do pobierania wartosci, adresow, hookowania funkcji, wyszukujac danego ciagu, czesto umieszcza sie 'dzikie karty' w sygnaturach, ? albo jakies inne znaczki, aby lapac instrukcje, ktore po zdisasemblowaniu wygladaja np tak

mov eax, bf3.exe+154655

wtedy przy poprzednich zalozeniach sygnatura bedzie wygladac np

0x90 0x1 ??

mozesz takze zastosowac 'metode kopiego pasta' i 'ukrasc' funkcje, lub czesc kodu z exeka, za pomoca hex edytora, i wkleic bajty jako tablice charow, i uzywac jak wlasna funkcje #sekretykuzniara

w twoim wypadku 0x90 znaczy NOP, instrukcja, ktora nie robi nic, przykladowa sygnatura

Opublikowano

sygnatura do znalezienia odpowiedniego miejsca w pamieci, np masz instrukcje w asemblerze

mov eax, 5

pop ebx

call [ebx]

cmp eax,7

je cos

kazda instrukcja ma swoj opcode, w pamieci sa wlasnie te dziwne cosie z 0x na poczatku, ZALOZMY ze mov ma opcode 0x90, eax reprezentujemy 0x1 a liczbe po prostu zapisujemy w hexie, to

mov eax, 5

bedzie w pamieci reprezentowane przez

0x90 0x1 0x5

i takich liczb masz duzo, sygnatur uzywasz do pobierania wartosci, adresow, hookowania funkcji, wyszukujac danego ciagu, czesto umieszcza sie 'dzikie karty' w sygnaturach, ? albo jakies inne znaczki, aby lapac instrukcje, ktore po zdisasemblowaniu wygladaja np tak

mov eax, bf3.exe+154655

wtedy przy poprzednich zalozeniach sygnatura bedzie wygladac np

0x90 0x1 ??

mozesz takze zastosowac 'metode kopiego pasta' i 'ukrasc' funkcje, lub czesc kodu z exeka, za pomoca hex edytora, i wkleic bajty jako tablice charow, i uzywac jak wlasna funkcje #sekretykuzniara

w twoim wypadku 0x90 znaczy NOP, instrukcja, ktora nie robi nic, przykladowa sygnatura

 

To , że to jest w postaci heksadecymalnej to wiem .O asmie troche mam pojęcie ale np . Fleep gdy robił swojego trainera miał coś takiego : 

 

BYTE AmmoValue [] = {0xA3,0x1C,0x0,0x0};

DWORD AmmoOfset [] = {0x378,0x14,0x0};

 

Dlaczego tak ? Chodzi o poziomy pointerów , czy o co ? Offsety dlaczego tak są to wiem.

nostaleh.png
Opublikowano

To , że to jest w postaci heksadecymalnej to wiem .O asmie troche mam pojęcie ale np . Fleep gdy robił swojego trainera miał coś takiego : 

 

BYTE AmmoValue [] = {0xA3,0x1C,0x0,0x0};

DWORD AmmoOfset [] = {0x378,0x14,0x0};

 

Dlaczego tak ? Chodzi o poziomy pointerów , czy o co ? Offsety dlaczego tak są to wiem.

To są kolejne offsety. Gdy odczytuje sobie jakiś wskaźnik, który zawsze będzie w tym samym miejscu to on wskazuje w jakieś miejsce. Nieco za tym miejscem(offsety określają jak daleko) jest kolejny wskaźnik. A gdy odczytuje ten wskaźnik, to ileśtam bajtów(wartość określana przez kolejny offset) za wskazywanym przez niego miejscem jest kolejny wskaźnik... i znowu, aż do szukanej wartości.

Opublikowano

To , że to jest w postaci heksadecymalnej to wiem .O asmie troche mam pojęcie ale np . Fleep gdy robił swojego trainera miał coś takiego : 

 

BYTE AmmoValue [] = {0xA3,0x1C,0x0,0x0};

DWORD AmmoOfset [] = {0x378,0x14,0x0};

 

Dlaczego tak ? Chodzi o poziomy pointerów , czy o co ? Offsety dlaczego tak są to wiem.

nie mozna do offsetow uzywac BYTE bo BYTE to typedef na unsigned char, czyli od 0 do 256 czy jak kto woli od 0x0 do 0xFF, a offsety moga byc 0x72563 i co teras?
 

­

Opublikowano

nie mozna do offsetow uzywac BYTE bo BYTE to typedef na unsigned char, czyli od 0 do 256 czy jak kto woli od 0x0 do 0xFF, a offsety moga byc 0x72563 i co teras?

Wut? to Fleep chciałbyc pr0 hakierem i zapisał inta w tablicy bajtów...

Nie pomagam na PW, od tego macie forum!!!

 

#PHP-things

 

 

08FMpDu.png

 

Opublikowano

Wut? to Fleep chciałbyc pr0 hakierem i zapisał inta w tablicy bajtów...

ta, ale ktos tam wezmie od neigo offsety, np

 

BYTE ammoOffset[] = {0x3,0x8,0x15};

 

i przekopiuje sobie, i pomysli oo, zmienie sobie na inne offsety i bede miec offsety do zycia

 

BYTE healthOffset[] = {0x23133,0x2328,0x322541515};

 

JAK TO, CZEMU TO NIE DZIALA, FLEEPOWI DZIALALO, LOL, KOMPILATOR MA BLEDY

 

­

Opublikowano

ta, ale ktos tam wezmie od neigo offsety, np

 

BYTE ammoOffset[] = {0x3,0x8,0x15};

 

i przekopiuje sobie, i pomysli oo, zmienie sobie na inne offsety i bede miec offsety do zycia

 

BYTE healthOffset[] = {0x23133,0x2328,0x322541515};

 

JAK TO, CZEMU TO NIE DZIALA, FLEEPOWI DZIALALO, LOL, KOMPILATOR MA BLEDY

 

­

Dlatego się pytam o co z tym chodzi , żeby nie zadawać później takich głupich pytań ;p.

 

A pozatym o co ci chodzi przecież napisałem DWORD przy ammo offset a DWORD to typedef unsigned int a nie BYTE .

nostaleh.png
Opublikowano

dlatego najlepiej:

a) jesli chcesz cos takiego - to zmien byte na DWORD

B) zamienic gole adresy na struktury - szukasz zalozmy pointer na entityList, potem na gracza, i nie piszesz np

*(DWORD*)(0x254564+0x763) = 15; 

tylko

localPlayer->Health = 15;

 

polecam reclassa i poradniki

­

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...