clubdogirc.MyForum.ro clubdogirc.MyForum.ro
Forumul oficial al canalului CluBDog de pe serveru RomaniaIRC | by GMA
 
FAQ :: Cautare :: Membri :: Grupuri :: Inregistrare
Profil :: Mesaje private :: Autentificare

Tutorial Editare Hexa

 
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului clubdogirc.MyForum.ro -> Programare
Subiectul anterior :: Subiectul urmator  
Autor Mesaj
GhOsT
Administrator
Administrator
GhOsT

Data inscrierii: 26/Noi/2007
Mesaje: 234

MesajTrimis: 10/12/2007 13:01    Titlul subiectului: Tutorial Editare Hexa Raspunde cu citat (quote)

Vrei sa modifici un executabil, sa faci un crack, un trainer, sau sa faci un troian indetectabil ? M-am gandit la acest fapt 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 utiliza 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...
Sus
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului clubdogirc.MyForum.ro -> Programare Ora este GMT + 3 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum



smartDark Style by Smartor
Powered by phpBB © 2001, 2002 phpBB Group