Jump to content
hanibal

Tutorial Editare Hexa

Recommended Posts

Vrei sa modifici un executabil, sa faci un crack, un trainer, sau sa faci un troian indetectabil ? M-am gandit la acest lucru si m-am hotarat sa va prezint codul hexazecimal si cum sa lucrezi cu dansul.

Introducere in hexazecimale

Hexa este prescurtarea de la "hexazecimal" care efectiv inseamna un numar in baza 16 . Baza de numarare pe care o folosim de obicei se numeste baza decimala (baza 10). Adica la fiecare 10 subunitati se mareste cu o unitate cifra din stanga. Cum sistemul hexazecimal este in baza 16, are cu 6 simboluri mai mult . In particular, foloseste cifre de la 0 la 9 si litere de la A la F inclusiv pentru a reprezenta (A=10, B=11, C=12, D=13, E=14, F=15)

In sistemul decimal, subunitatile pot doar merge pana la 9. In concluzie, numarul "zece" trebuie sa aiba 2 sloturi pentru cifre(unitati). "1" pe locul zecilor (unitatilor superioare) si "0" pe locul uitatilor. Unitatea superioara zecilor este suta, dupa aia mia, etc. Si pentru ca este un sistem decimal, fiecare slot poate fi reprezentat de o putere a lui 10 (de exemplu caciulitza "^" inseamna "la puterea a ..." - cu alte cuvinte, denota un exponent)

1 = 10^0 sau 1

10 = 10^1 sau 10

100 = 10^2 sau 10*10

1000 = 10^3 sau 10*10*10

10000 = 10^4 sau 10*10*10*10

In sistemul hexazecimal, fiecare unitate poate varia intre 0 si F. Spre deosebire de numarul 10 din sistemul decimal, in sistemul hexazecimal, numarul 10 este reprezentat doar de o singura unitate si anume litera A (ca v-am spus ca de la 10 pana la 15 se ia cu litere) ... numarul 9 din sistemul decimal fiind cam ca "F" din sistemul hexazecimal.

Deci, pentru cei care n-au intzeles: pe cand in baza 10, merge doar de la 0 la 9, in baza 16(sistemul hexazecimal), uite care sunt "cifrele": 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Cat timp unitatea inferioara nu ajunge la 16, nu se adauga o unitate superioara.Astfel, se face urmatoarea conversie:

Baza 10 Baza 16

1= 16^0 (adica 1)

10= 16^1 (adica 16)

100= 16^2 (adica 256)

1000= 16^3 (adica 4096)

10000= 16^4(adica 65536) - limita de int

.........................................

si lista continua la infinit

Deci convertind dupa simboluri, avem urmatoarele:

1 in dec = 1 in hex

10 in dec = A in hex

100 in dec = 64 in hex

1000 in dec = 3E8 in hex

Ca sa fiu sigur ca atzi inteles: luati ultimul exemplu si ganditi-va de ce 3E8 in hexa este 1000 in baza 10. In primul rand, este un 3 in locul lui "doua sute cinzeci si sase". In baza 10, daca ai cifra 3 pe locul sutelor, asta inseamna ca ai trei sute, k ? Prin urmare, in sistemul hexa, un 3 in locul doua sute cinzeci si sase inseamana ca sunt 3 de cate doua sute cinzeci si sase. In alte cuvinte: 3*256 sau 768 (pentru echivalentul in baza 10)

Asta e in locul lui doua sute cinzeci si sase. Acum, in unitatea superioara, "E"-ul. Tinand cont ca in hexa, E inseamana 14, inseamna ca avem saisprezece de cate paisprezece: adica 14*16 (224- pentru echivalentul in baza 10). In final, pentru unitatea cea mai din stanga:8. Ce inseamna 8 ?? In baza 16, 8 inseamna tot 8

In final, daca adunam toate 3, obtzinem 768+224+8=1000

Cum se converteste un numar din baza 10 in hexazecimal

Procesul e la fel ca mai sus, numai ca e invers de data asta. De exemplu, 289 in baza 10 inseamna 121 in baza 16 . Sa testam: Incepem prin a afla cea mai mare putere a lui 16 care intra in numarul 289 (din baza 10). 289 se afla intre 16^2(adica 256) si 16^3(adica 4096). Apoi: de cate ori intra 256 in 289 ? Doar o data. Deci numarul pe care il cautam este 1 pentru ca exista doar 1 doua sute cinzeci si sase in 289 (ganditi-va ca 256 in baza hexa inseamna 100 in baza 10). Scazand, ajungem la 289-256=33. Acum trb sa gasim de cate ori incape 16 (adica 10 in baza 10) in ce a mai ramas ->adica in 33. Deci: 33-16*2=1. Acum iar facem scaderea: 33-32=1. Si cat inseamna 1 in baza hexa ? Tot 1.

Acum stii ca ai terminat pentru ca ai ramas cu 0 la urma.

Sa punem numarul cap la cap:

1 de doua sute cinzeci si sase (sau 100 in baza 16)

2 de saisprezece (sau 20 in baza hexa)

Adunandu-le, obtzinem 121.Tineti cont ca toate numerele din hexa functioneaza la fel ca cele din baza 10 doar ca limita este la 16 si nu la 10.

Sper ca ai inteles baza numerotatiei hexazecimale. Acum vine greul: trb sa GANDESTI in sistemul hexazecimal. Cu alte cuvinte, 5+5=A, 4*4=10, B+A+D= 22. Probabil veti folosi un calculator hexazecimal pentru a converti valorile... si chiar va sfatuiesc asta. Dar daca vrei sa te apuci de facut trainere, trebuie sa inveti sa faci calculele rapid in minte in baza 16.

CITESTE BINE PANA AICI ! Daca intelegi pana aici bine, restul e floare la ureche...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...