Başlangyç Cracker

Transkript

Başlangyç Cracker
Başlangyç
Cracker
by DrEAMhaCK
Başlangyç
Cracking - bu assembler dilinde programmalary analiz edip kompýuter programmalarynyň
funksiýalaryny üýtgetmek we programmalaryň ýalňyşlyklaryny düzetýän sungat
ugrudyr.
Crackerlik bu gerek programmaňy alyp we gerek bolsa google-den Crackini alyp bir ýa
birnäçe düwmelere basan ýaly däldir! Siz pikir etmäň Crack 5 minutda edip bolýar diýip. Ýöne
gyzyklanmaň bolsa hökman öwrenersiň.
Siz Crack etmegi öwrenmek arkaly öz kompýuteriňizde programmalaryň nähili işleýändigini
bilersiňiz. Ýöne ilki bilen siz Crackerlige degişli kitaplary köp okmaly bolarsyňyz. Assambler dilini
bilmeli bolarsyňyz. Doly bilmek hökman däl diňe esasy funksiýalary bilmek arkaly siz ýönekeý
programmalary crack edip bilersiňiz. Onuň üçin siz google-den “Assambler for Beginners” ýa
“Assambler for crackers” diýip gözlemek arkaly özüňize gerekli maglumatlary taparsyňyz.
Crakck etmek üçin gerek zatlar:
1.
Assambler dilini bilmegiň(Doly bilmeseň hem azajyk bilmek ýetik bolýar).
2.
Pikirlenip bilmek ukybyň bolmagy.
3.
Aşaky programmalar:
W32Dasm - bu programmalary dissassemblerlemäge we funksiýalary doly adressleri boýunça
nähili işleýändigini bilmäge kömek etýär. Crack etmek üçin iň gowy programma
diýip hasap etýärin.
OllyDbg - programmalary ädimme-ädim yzarlap ýalňyşlyklaryny düzetmek üçin. Başgada
köp üýtgedip ulanyp bolýan funksiýalary bardyr. Dissassemblirlemäge hem amatly.
Hiew
- Hex redaktory hem asm koduny çalşmak üçin iň gowy programmalaň biri. Esasy
patch etmek üçin gerek bolýar(Eger bu programmaňyz ýok bolsa başga islendik
HEX editor bolýar).
Ilkinji ädim
Assambler dilini bilmeseň bu aňsat däldir. Şonuň üçin men esasy gerek bolan komandalar
barada azajyk öwretmäge çalyşaýyn.
7514 = 2baýt. 75 bir baýt. 14 hem bir baýt. Indi bu baýtlary biz soň çalyşamany öwreneris. 75
(hex baýty bolup ony asm koda geçiremizde jne(jump if not equal) bolýar) baýty biz 74(hex baýt.
ASM koda geçirilende je(jump equal)) bilen çalyşmak arkaly biz köp programmany ýa oýuny crack
edip bilýäris(Ýöne beýle aňsat diýip pikir etmäň. Men diňe ýönekeý goragy göz öňüne tutdum).
Meselem bir programma registrasiýa kod soraýar we entek 75 üýgedilmän dur diýsek. Biz ýalňyş
register kody ýazanymyzda “Invalid register number” diýip habar(MessageBox) çykýar. Sebäbi biziň
75-miz jne ýagnny ýalňyş bolsa “Invalid register number” diýen ýazga geçmegi görkezilen. Men ony
ýönekeýje şeýle düşündirmekçi:
39D0
7556
7411
cmp eax, edx
jne 00000005A
je 000000017
`Ýazan registrasiýa nomerimizi barlaýar.
`Eger ýalňyş bolsa “Invalid register number”-a geçýär.
`Eger dogry bolsa “Register key accepted!” ýazga geçýär
Käbir assambler komandalary:
je(hex-de 74) = Jump if Equal(Deň bolsa geçmek)
jne(hex-de 75) = Jump if Not Equal(Deň däl bolsa geçmek)
nop(hex-de 90) = No operation(Hiç hili komanda işlemeýär)
call(hex-de belli bir baýty ýok) = Call a operation(Operasiýa geçmek. Ýüzlenmek)
jmp(hex-de belli bir baýty ýok) = jump(operasiýa, ýazga bökmek/geçmek)
cmp(hex-de belli bir baýty ýok) = Iki görkezilen sözi, sany we ş.m deňeşdirýär.
JE – meselem biziň bir programmamyz registrasiýa kody barlýar we dogry bolsa şo işe başlaýar.
JNE – eger registrasiýa kod ýalňyş bolsa ýalňyşlyk barada habar çykarmaga geçýär. Nop ulnamak
arkaly siz ýalňyş habar çykarmaz ýaly edip bilersiňiz.
NOP – bu komdanda ulanylanda hiç bir opersia bolmaýar. NOP-y siz je/jmp/call/jmp derek ulanyp
bilersiňiz.
CALL – esasy programma başlajak bolan wagty registrasiýany barlaýar hem registrasiýa edilmedik
bolsa ýalňyşlyk ýa registrasiýa edilemek barada maglumat çykarmaga geçmek. NOP arkaly
öçürip bolýar.
Jmp – Göni görkezilen adresa geçmek. NOP arkaly öçürip bolýar.
Cmp – Görkezilen iki sany ýa sözi we ş.m zatlary deňeşdirýär. Meselem biziň registrasiýa kodumyz
girizilen bolsa dogry reg kod bilen girizilen reg kody barlap eger dogry bolsa je bolmasa jne
arkaly görkezilen işlere geçýär.
Ilkinji crack
Ýokarda öwrenenlerimizi barlamak hem has oňat düşünmek üçin biz kiçijek bir programmany
crack edeliň. Bize gerek programmalar W32Dasm hem Hiew.
Ilki CrackMe01.exe-ni açýarys hem registrasiýa islendik bir kod ýazyp Register düwmä
basýarys. “Registrasiýa kod ýalňyş!” diýip MessageBox çykdy. Hä diýmek biz ýalňyş registrasiýa
kod goýduk. Gynanmaly däl. W32Dasm programmamyzy açýarys hem Dissassembler
menýusyndan Open file to Dissassemble... saýlap öz CrackMe01.exe-mizi saýlaýarys. Bir topar
bulaşyk hatlar çykdymy? Gorkup oturma! Häzir düşünmäge başlarsyň. Refs menýusyndan String
data references-i saýlaýarys hem çykan penjirä göz aýlaýarys. Bu ýerde biziň programmamyzyň
içindäki düşnükli bolan sözlerdir harplar görkezilen. Indi “Registrasiýa kod ýalňyş!” diýen sözleri
tapyp(Bu diýýän sözlerimiz dogry görünen däldir. Sebäbi içinde türkmen harplary bolansoň
W32Dasm programmamyz okap bilenok) üstünde iki gezek çep düwmäni basýarys.
.
1-nji surat. W32Dasm programmasyndaky String data references penjiresi
Aşakda suratda görünişi ýaly ýere geçdik. Biziň üns bermeli ýerimiz daşy gyzyl bilen çyzylan
ýere seretýäris:
* Referenced by a (U)nconditional or (C) onditional Jump at Address:
| :00401080(C)
2-nji surat.
00401080 – bu 00401080 adresdan şu bölege bökmek(geçmek) bar diýmegi aňlatýar. Onda
biz ony nädip bildik Shift+F12 düwmelerini basyp ýokarky 00401080-i ýazýarys hem enter-i
basýarys.
Aşakdaky suratda görşüňiz ýaly adresa geçýär.
3-nji surat.
Indi bu ýerde :0040107E 7402 je 00401082
:0040107E faýylyň dissassembler-däki adresi. 74 bir baýt, 02 hem bir baýt. Bu iki baýty
dissassemblerlämizde je 00401082 komandamyz emele gelipdir. je 00401082 komanda eger ýazan
registrasiýa kodumyzyň uzynlygy 15-e deň bolsa işleýär hem GOWY HABAR-a bökýär. Eger deň
bolsmasa jne 004010D1 işleýär we “Registrasiýa kod ýalňyş!” ýazga bökýär. Onda registrasiýa
kody(islendik uzynlygy 15-e deň bolan söz ýa san ýazyp görüň) 123456789012345 ýazyp göreliň
hany?
Eger islendik reg kody kabul eder ýaly etjek bolsaňyz onda je 00401082 komandamyzy jmp
00401082 bilen çalyşsak gönümel GOWY HABAR-a bökýär. Je-ni jmp bilen çalyşmak üçin addresi
ýagny 0040107E-ni ýatda saklamaly. HIEW-de 74-i EB etmeli(eger siz hiew programmany ulanyp
bilmeseňiz aşakdakda ýamakçy).
HIEW-de Patch etmek
Indi CrackMe02.exe-ni crack etmek üçin ilki CrackMe02.exe-ni açyp görýäris. Hä
“Unregistered version”. Onda CrackMe02.exe-ni w32dasm-da açýarys hem Refs menýusyndan
String data references-i saýlap “Unregistered version” ýazgyny tapyp iki gezek çepi basýarys.
Ýene CrackMe01-ni döwülişi ýaly aşakdaky ýaly ýazgyny tapýarys
* Referenced by a (U)nconditional or (C) onditional Jump at Address:
| :00401048(C)
hem görkezilen adrese(00401048) geçýäris:
:00401048 7511
jne 0040105B
bu adresden “Unregistered version” ýazga geçiş bar.Indi jne-ni nop bilen çalyşsak
komdanda işlemeýär. Onda baýtyň adresini ýatda saklap(00401048) hiew programmany açýarys
hem CrackMe02.exe-ni saýlap ENTER-i basýarys.
5-nji surat. HIEW
Soň F4 çykan menýudan Decode(Bu baýtlary asm kody görnüşde görer ýaly edýär) hem F5
basyp ýaňky ýatda saklan addresimiziň(00401048) öňüne nokat(.00401048) ýazyp ýene enter-i
basýarys welin 7511 baýta geçýär. Indi biz F3(Edit) soň F2(asm) hem nop ýazyp enter, ýene nop
ýazyp enter.
6-nji surat.
Ýokardakylary ýazylyşy ýaly edenimizden soň aşakdaky ýaly 7511 baýtymyz 9090 bilen
çalyşyldy ýagny nop . Indi Esc hem F9 ýene F10. CrackMe02.exe-ni açyp barlap gör hany.
7-nji surat.
Ýatda saklamalylar
Biz islendik bir programmany crack etjek bolsak onda debugger ulanmaly bolarys. Häzirki
döwürde OllyDbg programmasy köp ulnaylýar. Dissassembler programmasyndan hem W32Dasm
köp ulanylýanlaryň biri. Biz islendik bir programmany registrasiýa etjek bolsak registrasiýa kod
ýazanymyzda “Registration failed” we ş.m MessageBox çykýar. Biz debugger ulanan mahalymyz
MessageBoxA funksiýasyna Breakpoint goýup ulansak crack etmek ýeňil düşer. Delphi
programmalarynda ShowWindow komandasy ulanylýanlygy üçin ShowWindowA funksiýa
Breakpoint goýmaly bolýar. Eger biz dissassembler arkaly crack etjek bolsak ýokarda ýazylyşy ýaly
registrasiýa kod ýazanymyzda ýalňyşygy duýdurýan sözleri(“Registration failed” ýa “Invalid
registration”) ýatda saklap w32dasm-da gözläp tapyp azajyk ýokarragyna seredenimizde aşakdaky
ýaly setirler gabat geler.
* Referenced by a (U)nconditional or (C) onditional Jump at Address:
| :XXXXXXX(C)
Bu ýerde XXXXXXX adresdan şu bölege jne/je/call diýmegi aňladýar. Biz Shift+F12 basyp
XXXXXXX adresi ýazyp enter-i bassak jne/je/call funksiýamyzy taparys. Biz ony nop ýa je/jne bilen
çalyşmak arkaly crack edip bileris.
Söz soňy
Hormatly okyjylar şunuň bilen men size crackerligiň ilkinji ädimlerini käbir myssallar arkaly
öwretmäge çalyşdym. Eger düşünmedik bolsaňyz kelläňize agram salyp oturmaň kelläňiziň dury
wagty täzeden okamak arkaly ýa gaýtalap okamak arkaly köp ýerine düşüersiňiz. Özümä crack
etmegi öwrenip bir köpük girdeýji göremok, ýöne peýdalanyp bilseňiz programmalary test etmek ýada goramak ýaly işlerde işläp eklenç çeşmesine öwürip bilersiňiz. Siz crack etmegi öwrenmek arkaly
kompýuteriňizdäki programmalaryň nädip işleýändigini bilersiňiz. Olardaky ýalňyşlyklary tapyp patch
etmek arkaly düzetmek ýa köp funksiýalaryny üýtgedip bilersiňiz.
Kiçijek uçgunjyk döredendirin diýen umydym bar.
Copyrighted by DrEAMhaCK - 2o10

Benzer belgeler