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;)