INTRODUCTION TO THE CRACKING WITH OLLYDBG FROM CRACKLATINOS P2

Chia sẻ: Duong Hau | Ngày: | Loại File: PDF | Số trang:9

0
66
lượt xem
11
download

INTRODUCTION TO THE CRACKING WITH OLLYDBG FROM CRACKLATINOS P2

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chào mọi ngư ời, sau tut đâu tiên của tôi giới thieu tại các bn vê Ollydbg, bang đi mot th i gian do công viec ban ron tôi đành gác bút chưa the viêt tiêp đư+c. Bây giờ mọi viec có v0 on đ2nh rôi, tôi se dành chút th i gian đe tiêp t5c bo tut này. Mac dù có bn đã làm tiêp công viec của tôi là d2ch và viêt đên tut th: 16, nhưng tôi se van viêt li theo cách viêt và phong cách của tôi.

Chủ đề:
Lưu

Nội dung Text: INTRODUCTION TO THE CRACKING WITH OLLYDBG FROM CRACKLATINOS P2

  1. INTRODUCTION TO THE CRACKING WITH OLLYDBG FROM CRACKLATINOS (_kienmanowar_) I. L i nói đ u Chào m i ngư i, sau tut đ u tiên c a tôi gi i thi u t i các b n v Ollydbg, b ng đi m t th i gian do công vi c b n r n tôi đành gác bút chưa th vi t ti p đư c. Bây gi m i vi c có v n đ nh r i, tôi s dành chút th i gian đ ti p t c b tut này. M c dù có b n đã làm ti p công vi c c a tôi là d ch và vi t đ n tut th 16, nhưng tôi s v n vi t l i theo cách vi t và phong cách c a tôi. ðây v a là nh ng bài vi t mà tôi chia s đ n các b n cũng đ ng th i là vi c tôi đúc k t và lưu tr nh ng gì mình đã làm đư c. ph n trư c sau khi các b n đã có m t cái nhìn t ng quan nh t v công c Ollydbg v các thành ph n cũng như ch c năng chính c a nó, thì trong ph n th hai này tôi s đ c p đ n vi c s d ng các h th ng s trong Olly, thêm vào đó là m t chút ki n th c cơ b n v Stack. Okie, L3t’s G0!! II. Các h th ng s Có ba h th ng s đư c s d ng nhi u nh t đó là H nh phân, H mư i và cu i cùng là h th p l c phân.Chúng ta s đi l n lư t đ nh nghĩa v t ng h th ng này. H nh phân : Trong h đ m nh phân cơ s là 2 và nó ch có hai ch s là 0 và 1. H mư i (th p phân) : Có th nói đây là m t h th ng đư c chúng ta s d ng nhi u nh t trong đ i s ng hàng ngày.H này bao g m mư i ch s b t đ u t 0 đ n 9. H đ m này là h đ m mà chúng ta quen thu c nh t. H mư i sáu : Các s dư i d ng nh phân thư ng là dài và khó nh . Vi c chuy n đ i các s th p phân sang nh phân thư ng khó. Khi chúng ta vi t chương trình h p ng chúng ta thư ng s d ng c hai h đ m là : nh phân và th p phân, và c m t h đ m th ba là h 16 hay còn g i t t là s hex. S hex cho phép chúng ta chuy n đ i m t cách d dàng sang s h nh phân và ngư c l i. Note : ð đ i s hex sang s nh phân chúng ta ch vi c bi u di n các ch s c a nó dư i d ng nh phân. Còn đ i s nh phân sang s hex, thì ta nhóm 4 ch s c a s nh phân l i theo th t l n lư t t ph i qua trái. Sau đó chuy n thành s hex tương ng. H đ m hex là h đ m có cơ s 16 cho nên các ch s c a nó là : 0-9, A-F. (Vì h t các kí hi u ch s đ bi u di n nên ngư i ta dùng thêm các ch cái đ bi u di n: các ch cái t A – F tương ng bi u di n các s t 10 – 15). Khi b n mu n làm quen v i công vi c debug trong Olly thì đi u đ u tiên tôi khuyên b n nên làm quen v i các h th ng s trên, Olly ch y u s d ng h 16. Bên c nh đó các b n cũng ph i h c các phương pháp chuy n đ i đơn gi n gi a các h s v i nhau đ ti n cho quá trình b n làm vi c. Có th các b n s cho l i tôi nói là th a b i vì ngày nay có quá 1
  2. nhi u công c h tr cho chúng ta làm vi c này, nhưng theo tôi đây v n là nh ng ki n th c tiên quy t vì công c ch là h tr đ chúng ta làm vi c nhanh chóng mà thôi, còn mu n hi u sâu, r ng thì chúng ta không nên b qua nh ng chi ti t dù là v n v t nh t. đây trong bài vi t này, tôi coi như các b n đã t mình trang b nh ng ki n th c cơ b n r i. Do đó đ d dàng hơn cho chúng ta khi làm vi c v i các h th ng s , Windows cung c p cho chúng ta m t công c khá m nh mà đôi khi ít ngư i đ ý mà th m chí có khi còn không bi t là nó h tr cho chúng ta các tính năng liên quan đ n vi c chuy n đ i ☺, đó chính là ti n ích Calculator. Có nhi u cách th c đ m chương trình này nhưng cách nhanh nh t là vào menu Run và gõ Calc.exe (th m chí ch c n gõ Calc cũng m đư c). Như b n th y trên hình sau khi chúng ta gõ Calc thì ngay l p t c công c Calculator s hi n ra dư i d ng m t máy tính chu n h t như cái máy tính bình thư ng mà b n hay s d ng. ð có th chuy n sang s d ng các tính năng chuyên nghi p hơn liên quan t i các s h nh phân và h 16 cũng như các phép tính liên quan t i hai h s này, b n làm như trên hình v (View > Scientific). Ta có đư c như sau : 2
  3. Trong hình minh h a bên trên, b n th y h th ng s đư c s d ng m c đ nh là h 10 (Dec).T i sao nó l i m c đ nh như v y? M t câu tr l i r t đơn gi n là vì t lúc cha sinh m đ chúng ta t i gi chúng ta s d ng h 10, h đ m chu n c a loài ngư i ☺ nên chương trình đ default như v y là hoàn toàn h p lý. Các b n có th luân chuy n sang các h khác r t đơn gi n thông qua các tùy ch n. L y m t ví d , tôi mu n chuy n m t con s t h 10 sang h 16 thì tôi làm th nào? T i màn hình Calculator b n ch n Dec và gõ vào m t con s b t kì, ví d : 1111) ð chuy n sang h Hex b n ch vi c nh p ch n vào tùy ch n Hex t i c a màn hình c a Calculator, ngay l p t c s h 10 c a b n s đư c chuy n sang s h 16 m t cách chính xác. 3
  4. Trên hình trên b n đã th y khi h 10 thì các ch cái t A – F đ u b disable. Kh b n ch n chuy n sang h hex thì các ch cái này s đư c enable lên đ ph c v cho các b n làm vi c h hex. Vi c chuy n đôi qua l i các h s khác cũng làm tương t như trên, qua đó b n th y công c này đã đơn gi n hóa cho chúng ta r t nhi u các công vi c liên quan đ n vi c chuy n đ i b ng tay.T t c nh ng gì b n ph i làm là gõ s và nh n ch n khà khà ☺. III. S có d u trong h 16 Ph n c ng c a máy tính c n gi i h n kích thư c c a các s đ có th lưu nó trong các thanh ghi hay các ô nh . Trong h hex v n đ s n y sinh khi chúng ta mu n bi u di n m t s âm ví d như -1 ch ng h n, chúng ta không th làm b ng cách thêm m t d u tr phía trư c con s gi ng như trong h 10 đư c.Vì n u làm th thì đơn gi n quá r i, đâu c n ph i đ c p đ n v n đ này làm gì và vì h th ng máy tính mà chúng ta đang s d ng ch làm vi c v i hai s 0 và 1 mà thôi, cho nên đ bi u di n m t s có d u ph i có qui đ nh khác. Do chúng ta đang làm vi c v i h th ng 32 bít cho nên d i s c a nó s đư c bi u di n h hex là t 00000000 – FFFFFFFF.D i này s đư c c t n a ra, m t n a dùng đ bi u di n s dương và m t n a dùng đ bi u di n s âm. V y s dương s b t đ u t 00000000 và k t thúc là 7FFFFFFF, còn s âm s b t đ u t 80000000 và k t thúc là FFFFFFFF. V y làm th nào đ nh n bi t đâu là s âm và đâu là s dương? Các b n hãy đ ý đ n m t bit đ c bi t, đó là bit n m t n cùng bên trái hay còn đư c g i v i m t cái tên khác là bit có tr ng s n ng nh t (MSB - Most significant bit). Tương t như v y ta cũng có m t bit có tr ng s th p nh t hay còn g i là bít nh nh t đó là s n m t n cùng bên ph i (LSB – Least Significant bit). N u như bit có tr ng s cao nh t là 0 thì s đó đư c hi u là s dương. Còn n u như bít có có tr ng s cao nh t là 1 thì s đư c đư c hi u là s âm. B ng 0 hay b ng 1 là khi chúng ta bi u di n s đó dư i d ng nh phân. Các s âm trong máy tính đư c lưu d ng s bù 2 (Note: s bù 2 có đư c b ng cách đ o bít c a m t s nguyên và c ng v i 1). Theo đó ta có đư c d i bi u di n như sau : S DƯƠNG : 00000000h h 16 – 0 h 10 00000001h h 16 – 1 h 10 4
  5. ………………………………………….. 7FFFFFFFh h 16 – 2147483647 h 10 (S dương l n nh t) S ÂM : FFFFFFFFh h 16 - -1 h 10 FFFFFFFEh h 16 - -2 h 10 …………………………………………. 80000000h h 16 - -2147483647 h 10 (S âm nh nh t) Tôi s làm m t ví d chuy n đ i sang s bù 2 đ các b n th y đư c m t cách tr c quan nh t. Gi s tôi có s dương là 1 , gi tôi mu n bi u di n s -1 tôi s làm th nào. ð đơn gi n tôi ch làm m u v i s 16 bit. _ ð u tiên ta tìm s bù 1 c a 1 (có đư c b ng cách đ o bít) : 1. Bi u di n 1 d ng nh phân : 0000 0000 0000 0001 2. Tìm s bù 1 c a 1 : 1111 1111 1111 1110 _ Tìm s bù 2 c a 1 b ng cách l y bù 1 đem c ng v i 1 : 1. Theo k t qu trên, bù 1 c a 1 : 1111 1111 1111 1110 2. C ng v i 1 : +1 3. K t qu là s bù 2 : 1111 1111 1111 1111 ðem s bù hai này chuy n qua h Hex các b n sé có đư c là : FFFFh Trong Olly chúng ta có th gi i quy t m i v n đ liên quan thông qua Plug-in : Command Bar. ð s d ng nó cũng r t đơn gi n, b n làm như hình minh h a dư i đây : R t tr c quan và d hi u, b n không bi t giá tr h 10 c a 7FFFFFFFh là bao nhiêu. Trong Plug-in Command Bar b n ch vi c gõ ? và theo sau là bi u th c hay giá tr mà b n c n bi t thông tin. Ta th th c hi n phép chuy n đ i v i giá tr 80000000h xem sao? Như ta bi t trên, giá tr 80000000h bi u di n m t s âm, nhưng khi s d ng Command Bar đ chuy n đ i thì k t qu ta có đư c không như nh ng gì chúng ta mong đ i, đây là m t bug c a Plug-in Command Bar. Chúng ta có th gi i quy t v n đ này thông qua c a s Register. Gi s t i c a s này tôi có giá tr thanh ghi EAX là 80000000h. Tôi mu n xem giá tr c a nó h mư i thì ph i làm th nào và giá tr âm dương c a nó ra sao? ð làm đư c đi u này, nh n chu t ph i lên thanh ghi EAX và ch n Modify.Như hình minh h a dư i đây : 5
  6. C a s Modify s hi n ra cho phép chúng ta mu n thay đ i thanh ghi EAX th nào tùy thích ☺. Trong trư ng h p này k t qu c a 80000000h đúng như nh ng gì chúng ta trông đ i đó là -214783648. Chúng ta th s a giá tr 80000000 đi và thay vào đó là m t giá tr khác xem th nào : Ok, sau khi ch nh s a các b n có th lưu l i giá tr mà b n đã ch nh ho c b b ng cách nh n Cancel. IV. B ng mã ACSII Không ph i m i s li u mà máy tính x lý đ u là các con s , các thi t b ngo i vi như màn hình, bàn phím, máy in đ u có xu hư ng làm vi c v i kí t .Cũng như t t c m i lo i d li u khác, các kí t c n ph i đư c bi u di n thành d ng nh phân đ máy tính có th x lý chúng. M t ki u mã hóa thông d ng nh t cho các kí t đó là mã ASCII. Khi làm vi c trong Ollydbg b t bu c b n cũng ph i tìm hi u sơ qua v b ng mã này. B n ph i hi u nó đ có th làm các bư c chuy n đ i gi a kí t d ng hex sang kí t cũng như nh ng symbols tương ng. Dư i đây là b ng mã ACSII mà b n có th tham kh o : 6
  7. M t ví d v i s giúp đ c a Plug-in Command Bar s cho b n th y đư c k t qu tr c quan : Ngoài ra c a s Dump trong Olly cũng giúp b n có đư c nh ng thông tin quan tr ng trong quá trình b n Debug target : 7
  8. V. STACK Như trong ph n đ u tiên tôi đã nói sơ quan v STACK, nó là m t vùng c a b nh dùng đ lưu tr t m th i các d li u và đ a ch . Stack làm vi c theo nguyên lý LIFO (Last In, First Out), t c là ph n t nào đư c c t vào cu i cùng trong stack s là ph n t đư c l y ra đ u tiên. B n c tư ng tư ng như b n đang x p m t ch ng đĩa, thì chi c đĩa cu i cùng mà b n x p s n m trên cùng, t c là đ nh c a Stack nó s là chi c đĩa đư c l y ra đ u tiên n u như b n mu n l y ti p chi c đĩa th hai bên dư i nó. C u trúc d li u làm vi c theo ki u LIFO này là ý tư ng cho vi c lưu tr nh ng d li u t m th i, ho c nh ng thông tin không c n thi t ph i đư c lưu tr trong m t th i gian dài. Stack thư ng là nơi lưu tr các local variables, nh ng l i g i hàm (function calls) và các thông tin khác đư c s d ng đ d n d p stack sau khi m t hàm hay m t th t c đư c g i. M t tính năng quan tr ng khác c a stack là nó grows down theo không gian đ a ch : có nghĩa là càng nhi u d li u đư c thêm vào trong stack, nó đư c thêm vào t i các giá tr đ a ch th p hơn theo cơ ch tăng d n. Xem hình minh h a v sơ đ không gian b nh : Làm vi c v i Stack có 2 thanh ghi chính là ESP và EBP, và các câu l nh PUSH và POP. Trong Ollydbg b n có th quan sát th y c a s Stack r t tr c quan : Okie v y là ph n hai trong lo t bài vi t v Olly đ n đây là h t, trong ph n ti p theo tôi s gi i thi u t i các b n v các thanh ghi cũng như nh ng tính năng c a t ng thanh ghi. Tôi s c g ng vi t xong trong th i gian s m nh t! ☺ 8
  9. Best Regards _[Kienmanowar]_ --++--==[ Greatz Thanks To ]==--++-- My family, Computer_Angel, Moonbaby , Zombie_Deathman, Littleboy, Benina, QHQCrker, the_Lighthouse, Merc, Hoadongnoi, Nini ... all REA‘s members, TQN, HacNho, RongChauA, Deux, tlandn, light.phoenix, dqtln, ARTEAM .... all my friend, and YOU. --++--==[ Thanks To ]==--++-- iamidiot, WhyNotBar, trickyboy, dzungltvn, takada, hurt_heart, haule_nth, hytkl v..v.. các b n đã đóng góp r t nhi u cho REA. Hi v ng các b n s ti p t c phát huy ☺ I want to thank Teddy Roggers for his great site, Reversing.be folks(especially haggar), Arteam folks(Shub-Nigurrath, MaDMAn_H3rCuL3s) and all folks on crackmes.de, thank to all members of unpack.cn (especially fly and linhanshi). Great thanks to lena151(I like your tutorials). And finally, thanks to RICARDO NARVAJA and all members on CRACKSLATINOS. >>>> If you have any suggestions, comments or corrections email me: kienmanowar[at]reaonline.net 9
Đồng bộ tài khoản