8. CRACK
Sitame tutoriale, as jums parodysiu kaip nulauzti, CD apsauga, naudojant Win32Dasm ir Hiew.
Na ka, pradedam:
Visu pirma, jus privalote paleisti ta zaidima, kuri jus norite nulauzti,
be CD. Na aisku zaidimas nepasileis, (Prasau tik nepanikuokite:), viskas,
ka jus pamatysite tai, isokanti lanaga kuris pranesa "gera naujiena".
Na ka si zinute tai tikrai gera naujiena, nes ji mums ir pades patvarkyti
ta nelemta zaidima, taigi viskas ka jus siuo metu turite atsiminti, tai
ta zinute, kuri jums pranese, kad reikalingas CD. Pavyzdziui: Please insert
the - CD, arba: You need the CD to play the *** .( ***, yra zaidimo pavadinimas,
kuri jus norite nucrackinti). Beje jei jus esate su ribotu atminties
kiekiu savo galvoje, ir nesugebate atsiminti sios zinutes kuri praso CD,
tai uzsirasykite ja, ant kokio nors popiergalio. Taigi dabar pasileiskite
Win32Dasm, ir atsiradusiame lange paspauskite DISASSEMBLE, po to isokusiame
meniu, pasirinkite OPEN FILE TO DISSASSEMBLE. Atsiras kitas langas, kuriame
jus turesite susirasti to zaidimo exe faila, kuri norite nucrackinti. Kai
tai atliksite, prades begti tokia eilute, taigi tai ustruks kelias minutes,
taigi siulau pramankstinti savo kojeles ir patraukti kur karaliai pesti
vaiksto:).
Na ka baigesi? NE, na gerai dar palaukim, na kaip dabar? na OK procesas
baigtas. Dabar jusu ekrane turejo atsirasti keistas tekstas, kurio
mes visiskai nesuprantam:). Nesijaudinkite, vienintelis dalykas kuri dabar
jus turite padaryti, tai susirasti antra mygtuka esanti is desines (String
Data Reference), kuris yra salia printerio mygtuko. Dabar jus matote
langa kuriame surasytos ivairios zinutes ir panasiai. Taigi
susiraskite ta zinute kuri prase CD ir paspauskite du kartus ant
jos. Uzdarykite STRING DATA REFERENCE langa. Dabar jus esate nebe kodo
pradzioje, o kazkur viduryje ar kazkas tokio, kiekvienu atveju vis kitaip.
Taigi dabar jusu ekrane turi matytis ta zinute kuri praso kompakto. Dabar
pati svarbiausia vieta. Kilkite i virsu, nuo tos zinutes, kol pamatysite
kazka panasaus:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00410545 (c)
|
Jusu atveju skaicius bus aisku kitoks, bet bendras vaizdas turi buti
panasus. Susirade tai, paspauskite Goto(Win32Dasm virsuje), atsiradusiame
meniu pasirinkite Goto Code Location ir parasykite si skaiciu, mano atveju
tai 00410545 ir spauskite OK. Taigi jus vel kazkur nusokote, dabar nejudedami
is vietos, nusirasykite skaiciu esanti Win32Dasm apacioje, kuri atrodo
taip (isskyrus skaiciai):
Line:34040 Pg 401 of 409 Code Data @:0041052F @offset 0000F945h in File:
Vienintelis dalykas kurio mums reikia tai skaicius einantis po @offset,
ne po @ bet po @offset na tik -h-nebereikia. Taigi mano atveju man bus
reikalingas 0000F945 skaicius, jusu atveju, kitas(jau kartoti atsibodo)
taigi dabar nusirase si skaiciu, paliekame Win32Dasm ir einame dabar prie
HIEW. Hiew'e pasirenkame mus reikalinga EXE faila. Dabar spaudziame F4
ir pasirenkame Decode, paskui seka F5 paspaudimas. Taigi dabar parasome
musu skaiciu, mano atveju, kaip zinome yra 0000F945 Dabar spaudziame enter,
ir BOOM mes toje vietoje kur ir norime buti. Bet dabar as jums noriu pasakyti
pagridndinius asemblerio kalbos JUMPUS:
ASM. ---Ka reiskia
----------------------------------------------------------------
jne ---Ivyksta suolis jei nelygu
je ---Ivyksta suolis jei lygu
jmp ---Bet kokiu atveju ivyksta suolis
nop ---Nieko neatlieka(no operation)
ja ---Ivyksta suolis jei virsuje
jna ---Ivyksta suolis jei nevirsuje
jae ---Ivyksta suolis jei virsuje arba lygu
jnae ---Ivyksta suolis jei nevirsuje arba lygu
jb ---Ivyksta suolis jei zemiau
jnb ---Ivyksta suolis jei nezemiau
jbe ---Ivyksta suolis jei zemiau arba lygu
jnbe ---Ivyksta suolis jei nezemiau arba lygu
jg ---Ivyksta suolis jei didesnis
jng ---Ivyksta suolis jei nedidesnis
jge ---Ivyksta suolis jei didesnis arba lygu
jnge ---Ivyksta suolis jei nedidesnis arba lygu
jl ---Ivyksta suolis jei mazesnis
jnl ---Ivyksta suolis jei nemazesnis
jle ---Ivyksta suolis jei mazesnis arba lygu
jnle ---Ivyksta suolis jei nemazesnis arba lygu
----------------------------------------------------------------
Zinoma as suprantu, tai gali atrodyti is pradziu keblu, as pamenu, kai pats pirma karta tai pamaciau, O dieve galvojau, ir ka as cia bandau ismokti :)), bet kaip sakant kas bando tam ir pavyksta. Bet dabar jums tereikia pakeisti: Jei dydesnis, tai keiciate i Jei nedidesnis, tai yra jei yra JNE keiciate i JE ir atvirksciai, o linksmiausia dalis tame, kad netgi daugelis programu yra apsaugotos tokiu budu:). Taigi as dabar stoviu:
0000F945: 751D jne 0000F964
Taigi kaip jau supratote man reikia pakeisti, JNE i JE . Dabar jus pasakysite:"Na
tai kas, kad as zinau ka i ka reikia keisti, bet KAIP man tai padaryti???"
Taigi sakau reikia paprasciausiai pakeisti viena skaiciu, vienu daugiau
arba vienu maziau. Taigi pas manes yra skaicius 751D ir JNE. Norint
is JNE padaryti JE as turiu pakeisti 751D i 741D. O jei butu pas manes
JE tai tureciau atvirksciai ne atimti, bet prideti prie 5 . Kartais
buna, kad reikia isviso panaikinti operacija taigi, parasydami NOP vietoj
JNE ar kas bebutu, tai darome parasydami 90 beje, jei jau mes turime atjungti
operacija(NOP), tai isidemekite, kiek skaiciu turi ta eilute, Win32Dasme
ant kurios mes stovejome, kai atlikome funkcija Go to code location isidemekite
antra skaiciu is kaires, toje eiluteje kur stovite. Jei skaicius pavyzdziui
yra 751D tai ji keiciame 9090, jei 751D000000 tai ji turime pakeisti i
9090909090 vienu zodziu turime pakeisti skaiciu i skaiciu. Beje kai Hiew'e
jus rasysite 90 nekreipkite demesio, kad eilute nusoka, paprasciausiai
surasykite tiek 90 kiek reikia ir viskas.
Norint kad mums leistu keisti kanors, paspauskime F3 ir galime irasineti,
o kai baigsite rasyti , tai paspauskite F9 - uzfiksavimui ir F10 -
isejimui, ir viskas. Kartais buna, kad neiseina ne vienas auksciau isvardytas
variantas. Tada paprasciausiai susirasykite visu JUMP'u @offset numerius
einancius nuo zinutes i virsu ir juos keitaliokite, juk niekada negali
buti uztikrintas kuris JUMP'as reikalingas.
PS: shis tutorialas yra sudetas ish keliu ir viskas surishta mano pachio mintimis;)
® 2002-2003 VaidaZ