THE INTRODUCTION TO THE CRACKING WITH OLLYDBG FROM CRACKLATINOS

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

0
122
lượt xem
37
download

THE INTRODUCTION TO THE CRACKING WITH OLLYDBG FROM CRACKLATINOS

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

Ricardo Narvaja thây dư(c bo tut này khá hay và rât cơ bản cho tât cả những ai muôn tìm hieu vê cracking thông qua s1 tr( giúp c"a chương trình debugger dã tr5 nên quá noi tiêng, dó chính là Ollydbg. Tôi rât khoái các tut bên Cracklatinos nhưng ngat noi toàn là tiêng TBN, nhưng thây bo tut này hay nên máu quá , quyêt d?nh trans t@ TBN qua English, rôi t@ Eng lBi hì hCc viêt lBi theo cách mình hieu de truyên dBt những gì mình biêt cho anh em....

Chủ đề:
Lưu

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

  1. INTRODUCTION TO THE CRACKING WITH OLLYDBG FROM CRACKLATINOS (_kienmanowar_) I. L i nói u : M t l n n a g i l i chào t i toàn th anh em trong REA. Tình c qua bên site c a lão Ricardo Narvaja th y ư c b tut này khá hay và r t cơ b n cho t t c nh ng ai mu n tìm hi u v cracking thông qua s tr giúp c a chương trình debugger ã tr nên quá n i ti ng, ó chính là Ollydbg. Tôi r t khoái các tut bên Cracklatinos nhưng ng t n i toàn là ti ng TBN, nhưng th y b tut này hay nên máu quá , quy t nh trans t TBN qua English, r i t Eng l i hì h c vi t l i theo cách mình hi u truy n t nh ng gì mình bi t cho anh em. Ý tư ng chính c a lo t tut này theo như tác gi c a nó nói là nh m cung c p nh ng ki n th c cơ b n nh t cho t t c nh ng ai chu n b b t u bư c vào tìm hi u ngh thu t cracking v i s tr giúp c a Ollydbg. M c dù tiêu c a tut là Introduction (t c là ch gi i thi u thôi) nhưng th c ch t b tuts này s cung c p cho chúng ta m t ki n th c n n t ng v ng ch c có th c và hi u ư c các tuts dành cho nh ng ngư i có trình advanced và c bi t là nh ng tut s p ư c gi i thi u trên C racklatinos (hehe tác gi c a nó qu ng cáo ác quá), ng th i thông qua lo t tuts này nó còn giúp chúng ta có kh năng áp d ng các kĩ thu t m i trong vi c cracking. II. T i sao l i là Ollydbg ? Tham gia vào REA i u u tiên có l chúng ta th y nhi u nh t ó là s xu t hi n c a “Ollydbg”, v y t i sao l i là Ollydbg mà không ph i là m t công c nào khác. ây chúng ta s không bàn lu n n vi c t o ra m t công c khác hay hơn, m nh hơn Ollydbg cũng như không c p t i vi c ch nh s a l i m t chương trình ã quá n i ti ng t lâu là SoftIce, ch ơn gi n là nh ng tín cu ng tín c a SoftIce ang d n d n chuy n qua xài Ollydbg b i tính d dùng, không gây crash máy b t thình lình như SoftIce, ư c h tr b i nhi u teams trên th gi i thông qua các Plugins cũng như các b n Ollydbg ư c mod l i nh m ch ng l i các cơ ch anti-debug cũng như anti-Ollydbg, và vì m t lý do ơn gi n khác n a ó là lo t tuts này dành riêng nói v Ollydbg ☺. III. Nhi m v u tiên Hì nhi m v u tiên c a chúng ta bây gi là gì ? Do ây là tut vi t v Olly nên vi c chúng ta ph i làm là i tìm Olly âu còn load v mà xài. Th nh t b n có th lên home site c a Olly là ollydbg.de download, còn không thì trong REA có ưa r t nhi u link download Ollydbg. Riêng b n thân tôi cũng sưu t m ư c có l g n ch c b n Olly khác nhau, hic hic có l là i ver 2.0 c a Olly thôi ☺ 1
  2. Khi download ư c Olly v r i thì r t ơn gi n ch vi c extract nó ra r i s d ng, tôi khuyên b n nên chung t t c công c liên quan n RE, Cracking vào 1 thư m c, ví d như c a tôi trên hình minh h a, như th ta d dàng qu n lý hơn. Okie coi như b n ã có Ollydbg, chúng ta ch vi c Run cái file OLLYDBG.exe là Olly ho t ng li n, không ph c t p v m t cài t cũng như s d ng như SoftIce. Giao di n c a Ollydbg như sau : ây là b n Ollydbg c a tôi, ã ư c ch nh s a cũng như c u hình l i. N u như các b n download b n Ollydbg trên home site ho c t các ngu n khác có th s khác c a tôi, và có th hi n th menu Plugins thì các b n làm như sau : 2
  3. C h n như hình trên ho c vào Options > Appearance , ch n tab Directories và ch nh l i ư ng d n t i thư m c Plugins và thư m c UDD. Sau ó nh n Ok và ch y l i Olly thì s th y ư c menu Plugins. Ph n ti p theo, tôi s gi i thi u t i các b n chi ti t các c a s chính trong Ollydbg và minh h a cho các ph n sau c a bài vi t, tôi s s d ng m t Crackme r t n i ti ng ó là : CRACKME.EXE c a tác gi CRUEHEAD. load crackme này vào trong Olly ta nh n chu t vào bi u tư ng sau ho c vào File > Open (or F3) : Sau ó chúng ta s ch n chính xác crackme mà chúng ta dùng minh h a cho bài vi t này. K t qu sau khi load vào Olly chúng ta có ư c như sau : 3
  4. C h c các b n nhìn vào s c m th y choáng ng p, không bi t ph i b t ut âu. Hic ngày u tiên khi tôi load m t target vào trong Olly, nhìn ngư c nhìn xuôi cũng không hi u gì h t luôn hehe, c ng i ng m mãi vì ch ng bi t làm gì hơn. Nhưng không sao m i th u có cách gi i quy t, khi chưa bi t thì ph i tìm tài li u mà c, khi c mà không hi u lúc y h ng i h i. Nhưng h i cũng ph i bi t ư ng mà h i, n u không s ch ng bao gi b n nh n ư c câu tr l i mà có khi còn khi n ngư i khác c m th y b c mình. Tôi s cùng các b n tìm hi u t ng c a s m t c a Olly. Như các b n nhìn th y trên màn hình chính c a Olly ư c phân ra làm 5 c a s chính, m i c a s có m t nhi m v và m t tên riêng : 4
  5. ây chúng ta th y có 4 c a s l n: - The Disassembler Window : c a s này các b n có th nhìn th y các o n code c a chương trình d ng ngôn ng asm, và ng th i t i c a s này các b n cũng có th chú thích cho t ng t ng dòng mã asm . - The Registers Window : ây là c a s ch a thông tin chi ti t v các thanh ghi như eax, ebx, ecx v….v…..Các c tr ng thái cũng ư c qu n lý t i c a s này - The Dump Window : T i c a s này b n có th xem ho c ch nh s a theo 2 d ng là hex và Ascii b nh c a chương trình mà b n mu n debug - The Stack Window : M t c a s không kém ph n quan tr ng , m i th trư c khi ư c th c hi n ph i ư c n p vào Stack. C u i cùng có m t c a s n m bên dư i c a s Disassembler Window : C húng ta g i nó là The Tip Window . ây không ph i là tên g i c a nó nhưng v i tôi, tôi thích g i như v y ☺ .Khi b n ang t i m t dòng code nào ó trong quá trình debug , Olly s cho b n th y thông tin chi ti t v dòng code ó . L y ví d ơn gi n như sau : n u b n debug t i dòng l nh “ mov eax , dword ptr [123]” . Thì c a s này s cho b n bi t ư c giá tr hay con s nào ang ư c lưu gi t i [123] . Và còn nhi u i u thú v khác n a mà c a s này s mang l i cho chúng ta . Trên ây là nh ng gì t ng quan nh t mà các b n nên bi t. Ph n dư i ây tôi s i vào gi i thi u v ch c năng c a t ng c a s m t thông qua các hình minh h a, t t nhiên không th gi i thi u chi ti t h t ư c, chúng ta s tìm hi u d n d n trong t ng trư ng h p c th 5
  6. các lo t tuts sau thêm vào ó các b n cũng nên ch ng t mình tìm hi u, ng nên quá l thu c vào bài vi t này. 1. The DISASSEMBLER Window : ây là c a s chính u tiên c a Olly và là c a s r t quan tr ng, chúng ta s làm vi c r t nhi u trên c a s này. Khi b n mu n debug m t chương trình, b n load file th c thi c a chương trình ó vào trong Olly.Các chương trình mà b n load vào Olly là nh ng chương trình có th ư c code b ng nh ng ngôn ng khác nhau như : VB, VC++, Borland Delphi hay MASM nhưng t i c a s này toàn b code c a chương trình s ư c list ra dư i d ng các mã ASM. Theo m c nh c a Olly thì b t c chương trình nào mà b n load vào Olly s ư c Olly ti n hành phân tích toàn b code chính c a chương trình ó và ưa ra các comment thích h p. B n có th tùy bi n ch c năng này thông qua hình minh h a dư i ây : N u như b n ch n s d ng ch c năng này c a Olly thì nh ng gì xu t hi n trên c a s b n s gi ng v i nh ng hình minh h a trư c. C òn n u như b n không ch n, chúng ta s th y ngay ư c s khác bi t, Olly s không t ng phân tích chương trình n a công vi c phân tích này chúng ta s ph i th c hi n m t cách manual sau khi chương trình ư c load vào trong Olly. Okie, tôi th b ch n và load l i C rackme vào trong Olly, ta s ư c như sau : 6
  7. Như các b n th y trên hình trên, n u như chúng ta không ch n ch c năng t ng phân tích c a Olly thì s th y các thông tin trong ph n Comment ã b lư c b i khá nhi u, i u này d n n vi c khó khăn trong quá trình debug chương trình. Tuy nhiên không ph i lúc nào ch c năng này cũng ho t ng m t cách hi u quá, nhi u khi chúng ta cho Olly t ng phân tích s l i d n n m t k t qu hoàn toàn ngư c l i, o n code ư c phân tích và th hi n ra không ư c chính xác, ví d như trư ng h p dư i ây chúng ta s nh n ư c o n code toàn ch a DB : Trong trư ng h p như th này chúng ta có th th c hiên m t cách manual remove nh ng gì mà Olly ã ti n hành phân tích ch ơn gi n b ng cách nh n chu t ph i t i màn hình này và ch n Analysis > Remove analysis from module 7
  8. Và k t qu là chúng ta có ư c o n code chính xác như sau : Do ó trong quá trình làm vi c v i Olly các b n nên linh ho t trong quá trình s d ng ch c năng này. Ngoài ra còn m t ph n khác cũng không kém ph n quan tr ng, như các b n th y trên hình minh h a Olly c a tôi các câu l nh ư c phân bi t màu s c m t cách rõ ràng, có th các b n không chú tr ng nv n này nhưng theo tôi vi c chúng ta phân bi t cũng như tinh ch nh l i màu s c trong Olly s khi n cho chúng ta nh n bi t các câu l nh d dàng hơn cũng như ph n nào th hi n năng khi u th m mĩ c a b n ☺. tinh ch nh l i màu s c trong Olly các b n vào các Tabs sau : 8
  9. 2. The REGISTERs Window : M t c a s quan tr ng ti p theo, ó chính là c a s Register. Như ã nói ây là c a s ch a thông tin chi ti t v các thanh ghi như eax, ebx, ecx v…v… Các c tr ng thái cũng ư c qu n lý t i c a s này. C a s này s cung c p cho chúng ta r t nhi u thông tin trong quá trình chúng ta làm vi c cùng Olly. N u như ch nhìn vào hình minh h a trên các b n ch c cũng s như tôi c m th y r ng nó s không có ý nghĩa nhi u l m, nhưng kì th c ây là nơi cung c p nhi u thông tin r t h u ích. 3. The STACK Window : Trư c tiên chúng ta s i tìm hi u sơ qua v Stack. ây là nơi lưu tr t m th i các d li u và a ch , nó là m t c u trúc d li u m t chi u. C ác ph n t ư c c t vào và l y ra t m t u c a c u trúc này, t c là nó ư c x lý theo phương th c “vào trư c, ra sau” (LIFO : Last In First Out). Ph n t ư c c t vào cu i cùng g i là nh c a Stack. Các b n có th hình dung Stack như là m t ch ng ĩa, chi c ĩa ư c t lên cu i cùng s n m trên nh và ch có nó m i có th ư c l y ra u tiên. Hai thanh ghi chính làm vi c v i Stack là ESP và EBP. Theo m c nh trong Olly, Stack ư c bi u di n theo thanh ghi ESP tuy nhiên chúng ta có th luân chuy n qua l i gi a ESP và EBP b ng cách nh n chu t ph i và ch n như hình sau : 9
  10. 4. The DUMP Window : ây là c a s hi n th n i dung c a b nh ho c file. Ta có th ch n nhi u nh d ng khác nhau bi u di n n i dung c a memory trong c a s này : byte, text, integer, float, address, disassembly ho c PE Header. C a s này cho phép chúng ta tìm ki m cũng như th c hi n các ch c năng ch nh s a, thi t l p các Break points v..v... V y là chúng ta ã d o qua 1 vòng các c a s chính c a Olly, tuy nhiên bên c nh ó Olly còn có r t nhi u c a s khác mà chúng ta không nhìn th y m t cách tr c ti p như các c a s trên ư c.C húng ta ph i truy c p vào các c a s ó thông qua Menu như hình minh h a dư i ây : C húng ta s lư t qua ch c năng c a t ng c a s m t. _ Nút L dùng m c a s Log c a Olly, c a s này cho chúng ta th y nh ng thông tin mà Olly ghi l i. Theo m c nh thì c a s này s lưu các thông tin v các module, import library ho c các Plugins ư c load cùng chương trình t i th i i m u tiên khi ta load chương trình vào Olly. Bên c nh ó c a s này cũng ghi l i các thông tin v các Break points mà chúng ta t trong chương trình. Trong trư ng h p crackme c a chúng ta, ta có ư c thông tin như sau : 10
  11. M t tính năng n a c a c a s này là khi chúng ta mu n lưu l i nhưng thông tin v Log c a s này cũng cung c p cho chúng ta kh năng ghi ra file. _ Nút E dùng m c a s Executables, c a s này s ưa ra danh sách nh ng file có kh năng th c thi ư c chương trình s d ng như file exe, dlls, ocxs , v..v.. T i c a s này n u như b n click chu t ph i s th y có r t nhi u tùy ch n khác nhau, trong khuôn kh có h n c a bài vi t không th nói h t ư c. S có nh ng ph n ti p theo c p n chúng. _ Nút M dùng m c a s Memory, c a s này s cho chúng ta thông tin v b nh ang ư c s d ng b i chương trình c a chúng ta và còn nhi u thông tin b ích khác n a : 11
  12. T i c a s này chúng ta cũng có th s d ng tính năng Search tìm ki m thông tin v các strings, các o n hexa c th hay unicode v..v.. thêm vào ó nó còn cung c p cho chúng ta nh ng ki u thi t l p Break points khác nhau t i các Sections. Vi c thi t l p các BPs là tùy thu c vào yêu c u và m c ích c a chúng ta. _ Nút T dùng m c a s Threads, c a s này li t kê các Threads c a chương trình : _ Nút W dùng m c a s Windows _ Nút H dùng m c as Handles _ Nút C thì kh i nói , b n c nh n vào là kh c bi t ngay ☺ _ Nút / m c a s Patches, c a s này s cho chúng ta các thông tin v nh ng gì mà chúng ta ã edit trong chương trình. _Nút K m c a s Call Stack, hi n th m t danh sách các l nh call mà chương trình c a chúng ta ã th c hi n khi chúng ta Run b ng F9 và dùng F12 t m d ng chương trình. _ Nút B m c a s Break Points, c a s này s hi n th t t c các BPs mà chúng ta t trong chương trình. Tuy nhiên nó ch hi n th các BPs ư c set b ng cách nh n F2 thôi, còn các d ng BPs khác như : hardware breakpoint ho c memory breakpoints thì không ư c li t kê ra ây: _ Nút R m c a s References, c a s này là k t qu cho nh ng gì chúng ta th c hi n ch c năng Search trong Olly, k t qu s ư c hi n ra ây : 12
  13. Phù khá nhi u c a s ph i không các b n, tôi s không i vào chi ti t thêm n a b i vì chúng ta s còn g p l i trong các tuts ti p theo, 1 yêu c u r t quan tr ng ngoài vi c b n bi t s d ng Olly ra thì b n còn ph i bi t v Asm language, n u không bi t v nó thì hii các b n nên dành th i gian tìm hi u m t s ki n th c cơ b n trư c khi c ti p các ph n sau c a bài vi t. Ngoài ra các b n d làm quen hơn trong các ph n sau tôi s c g ng h th ng l i ☺. IV. C u hình Olly thành JIT (Just-in-time debugging) Khi m t s chương trình th c thi và nó t o ra Exception, Windows có th g i Registered Debugger (các debuggers ư c c u hình thành JIT) và attach nó vào chương trình. Tính năng này ư c g i là Just-in-time debugging. M t vài JIT debuggers d ng l i t i System breakpoint. Ollydbg thì ti p t c th c thi cho n khi nó i n câu l nh ã t o ra Exception. c u hình Ollydbg tr thành 1 JIT b n làm như sau : N u như b n không mu n s d ng tính năng này thì b n có th Restore l i. 13
  14. V. M t s phím cơ b n làm vi c v i Olly : F7 : Khi b n nh n F7 s th c thi t ng dòng l nh 1. N u trong quá trình Trace mà g p l nh Call thì s i vào trong lòng c a l nh Call ó và th c thi t ng câu l nh trong l nh Call này cho n khi g p l nh Retn tr l i chương trình chính, t c là câu l nh ti p theo sau l nh Call. F8 : C ũng tương t như F7 nhưng có 1 i m khác bi t là khi Trace code, n u như g p l nh Call nó b qua không c n quan tâm các l nh bên trong l nh C all mà th c thi luôn l nh Call ó và d ng l i t i câu l nh ti p theo dư i l nh Call. F2 : t m t Break point trong chương trình. V y Break point là gì , ơn gi n nó ch là vi c chúng ta t o 1 i m ng t trong chương trình theo m t i u ki n nào ó khi th c thi chương trình, n u th a i u ki n mà chúng ta t ra thì chương trình s d ng l i t i v trí mà chúng ta ã t BP. Ví d , trong hình minh h a dư i ây : Bây gi tôi mu n t m t BP t i hàm C all g i t i API: LoadIconA. T c là khi tôi th c thi chương trình, chương trình g i t i hàm này thì ngay l p t c nó s d ng l i t i ây.Vi c ti p theo là tôi có th tùy bi n l i hàm này theo m c ích c a tôi, ch ng h n tôi NOP nó chương trình không còn g i n hàm này n a v..v.. làm ư c i u này b n nh n chu t t i v trí c n Set BP, sau ó nh n F2. Ch chúng ta Set BP s ư c ánh d u màu : b BP mà chúng ta ã set thì ch vi c ch n v trí ánh d u màu và nh n F2. F9 : C ho phép th c thi chương trình trong ch Debug, tương t như vi c chúng ta nh p úp chu t vào chương trình th c thi nó. Tuy nhiên khác v i vi c nh p úp chu t, n u chúng ta nh n F9 thì Olly s tìm xem có BP nào ư c Set hay không, chương trình có tung ra các Exception gì không, hay n u chương trình có cơ ch ch ng Debug thì nó s terminate ngay l p t c. N u như không có b t kì c n tr nào thì chương trình s Run hoàn toàn và trên status bar c a Olly s báo cho chúng ta bi t i u này : 14
  15. F12 : T m d ng chương trình l i. VI. L i k t : Trên ây là nh ng gì t ng quan nh t v Olly, như ã nói các b n không nên quá l thu c vào bài vi t này c a tôi, các b n có th t mình tìm hi u thêm nh ng tính năng khác c a Olly. Các ph n sau c a lo t tuts này làm vi c trên C rackme c a tác gi CRUEHEAD, ti n cho các b n m t công tìm ki m tôi ã kèm luôn target cùng v i bài vi t này. Hi v ng nh ng gi tôi ã vi t trên ã giúp cho các b n ph n nào hi u ư c t i sao Ollydbg ang ngày càng tr nên ph bi n. Best Regards _[Kienmanowar]_ --++--==[ Greatz Thanks To ]==--++-- My family, C omputer_Angel, Moonbaby , Zombie_Deathman, Littleboy, Benina, QHQC rker, the_Lighthouse, Merc, Hoadongnoi, Nini ... all REA‘s members, TQN, HacNho, RongC hauA, 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: kienbigmummy[at]gmail.com 15
Đồng bộ tài khoản