Cracker Handbook 1.0 part 224 pot

6 161 2
Cracker Handbook 1.0 part 224 pot

Đang tải... (xem toàn văn)

Thông tin tài liệu

Thanks To: Benina,Kiemanowar, Hacnho, QHQCrker, Merc, TQN, light.phoenix, iamidiot, takada, haule_nth, trickyboy, thienthanden, stringer …. all my friend, and YOU. Để chúng ta có nhiều nguồn tham khảo, tôi xin add một số link. Ai biết trang nào add thêm nhé. http://members.fortunecity.com/quine/ http://www.idapro.ru/ http://assarbad.net/en/stuff/IDA.idc/ http://home.arcor.de/idapalace/ http://members.fortunecity.com/quine/ http://pilorama.com.ru/library/ida1.php http://pilorama.com.ru/library/ida2.php http://www.jasonweiler.com/idcrt.html http://www.woodmann.com/crackz/Tutorials/Quine3.htm http://www.woodmann.com/fravia/enh_ida.htm http://www.woodmann.com/fravia/quine1.htm http://www.woodmann.com/fravia/quine_21.htm http://www.woodmann.com/fravia/quine_51.htm http://www.datarescue.com/idadoc/919.htm http://www.hexblog.com/ http://www.the-interweb.com/serendipity/index.php http://www.xs4all.nl/~itsme/projects blers/ida.html http://home.arcor.de/idapalace/links.htm http://www.program-transformation.org/Transform/WebHome http://sourceforge.net/projects/openaudit/ http://dennis.backtrace.de/ http://www.sabre-security.com/ http://www.datarescue.com/ http://www.datarescue.com/idabase/idasupport.htm Benina(reaonline.net) Using Olly Using Olly Tác giả : Sgi Biên dịch : the_lighthouse Như các bác thường thấy, các good cracker thường sử dụng SoftICE như 1 vụ khí để "hạ sát" các soft. Nhưng đó là dành cho các good craker, còn chúng ta - em và các bác - là những newbie thì cảm thấy rất khó khi dùng nó (các bác thì không biết thế nào chứ mỗi lần em crack soft với SoftICE thì soft crack đâu không thấy, chỉ thấy máy tính phải format lại thôi ;) Nhưng từ khi có cái chân lý của bác benina : W32DASM + HIEW + SI = OLLDBG thì em cũng đỡ khổ hơn (mà cái computer của em cũng đỡ mệt). Hôm rồi trốn học > lang thang trên mạng thấy được cái bài này khá hay dành cho newbie > mừng lém :w00t: (mừng như lúc người yêu nói : ). Nay xin mạn phép trans ra cho các newbie đọc (các bác admin đọc đừng có cười nha), nếu các bác thấy có gì sai thì cho ý kiến nha. Thanks ================================================== ======= Crackme : hxxp://www.xs4all.nl/%7Eanvile/n2c/tuts/n2c-OllyTut1.zip Đầu tiên, các bác dùng PEiD để check xem crackme có bị pack không (Ở đây em xin giải thích 1 xíu : để bảo vệ cho chương trình không bị "phơi bày" khi disassemble và cũng để cho kích thước file nhỏ lại thì các programmer thường sẽ pack chương trình đó lại, các bác cứ hiểu nôm na pack nghĩa là nén lại, nhưng không phải là zip hay rar đâu nhé bởi vì mặc dù nén lại nhưng chương trình vẫn chạy được bình thường. Okey, các bác đã hiểu pack là gì chưa ? Qua PEiD ta biết chương trình không bị pack (quá khỏe) và được code bằng Microsoft Visual C++ 6.0. Sau khi biết chương trình không bị pack, chúng ta mở OllyDBG lên ( OllyDBG là 1 chương trình debug khá tốt, phiên bản mới nhất là 1.10, down tại hxxp://home.t- online.de/home/Ollydbg - ở đây em xin không giới thiệu nhiều về Olly, các bác có thể tham khảo bài của bác rongchaua để biết nhiều hơn về công cụ đa tính năng này ). Sau đó chúng ta vào File\Open hoặc nhấn F3, sau đó chọn file để Olly load lên , nếu các bác không muốn phải làm đi làm lại điều này mỗi khi muốn load 1 file nào đó thì các bác có thể cho nó vào menu chuột phải bằng cách vào Options\Add to Explorer chọn Add OllyDbg to menu in Windows Explorer, khi muốn xóa thì chọn Remove OllyDbg from menu in Explorer, xong nhấn Done. Bây giờ chúng ta load file crackme1 lên, sau khi chương trình load xong chúng ta sẽ ở đây : Code: 00401B70 | $55 PUSH EBP Đến đây chúng ta có 2 cách để tìm real serial (1 cách của em, 1 cách của tác giả) nhưng vì đây là bài viết dành cho newbie nên em xin chỉ post 1 cách (của tác giả). Okey, chúng ta tiếp tục nào. Bây giờ ta hãy nhấn F9 (hoặc vào Debug\Run) để run chương trình. Trong crackme, chúng ta nhập 1 fake serial, của em là 1234567890, nhấn Check. Và bùm 1 cái nag văng ra kèm theo thông tin Incorect try again!! Mặc xác nó. Bây giờ chúng ta ấn ALT-TAB để chuyển qua Olly, xong ấn ALT-E để mở cửa sổ Executable modules. Cửa sổ Executable modules hiện lên, các bác thấy trong list có file crackme của chúng ta > click chuột phải vào dòng đó, chọn View names (hoặc nhấn Ctrl-N). 1 cửa sổ khác hiện ra với title Names in crackme1. Trong list các bác tìm dòng như sau : Code: 00402000 | .rdata | Import | KERNEL32.lstrcmpA Đây là hàm so sánh > cần set breakpoint > click chuột phải vào dòng đó, chọn Toogle breakpoint on import. Bây giờ các bác có thể tắt bớt các cửa sổ trong Olly cho dễ nhìn (nhưng nhớ để lại cửa sổ CPU nha) . Xong các bác nhấn ALT-TAB để chuyển qua file crackme, chúng ta nhấn check lại và hãy nhìn xem, cửa sổ Olly nhảy ra => Breakpoint của chúng ta đã hoạt động. Thú vị không các bác, đúng là cái thàng Olly này nó hay thật. Nhưng cái hay chưa phải đã hết. Nếu như trong SoftICE để xem giá trị trong các thanh eax, ecx, edx chúng ta phải đánh d eax , d ecx, d edx thì với Olly mọi thứ đều tự động cả. Các bác không tin ư ? Hãy nhìn sang cửa sổ Registers (FPU) bên phải xem. Hehehe, có phải các bác thấy 2 số serial không : Code: ECX 0012F8B4 ASCII "<BrD-SoB>" EDX 0012F8C4 ASCII "123456789" Nhưng đó là 2 số nào, chúng ta hãy tiếp tục nhìn xuống dưới chỗ khung Address : Code: 0012F8A4 | 00401593 | CALL to lstrcmpA from crackme1.0040158D 0012F8A8 | 0012F8C4 | String1 = "1234567890" 0012F8AC | 0012F8B4 | String2 = "<BrD-SoB>" Thì ra ở đây chương trình so sánh 2 số serial : 1 số thì do chúng ta đánh vào rồi, vậy số kia là gì ? chắc chắn là real serial. Okie, chúng ta hãy ghi nó ra giấy nào (hoặc nếu bác nào nhớ được thì cảng tốt). Đóng Olly lại, mở crackme lên, nhập vào <BrD-SoB> và :) (còn tiếp) Using Olly - Phần 2 Using Olly II Chào các bác, chúng ta lại tiếp tục "sự nghiệp đen tối" của mình nào !!! Chà, crackme xấu số tiếp theo sẽ là evdcm2 (http://www.xs4all.nl/%7Eanvile/n2c/t c-OllyMan2.zip) Ở phần 1, em đã hướng dẫn các bác tìm real serial bằng 1 cách, với crackme này em sẽ hướng dẫn các bác tìm real serial theo 1 cách khác. Chúng ta open cái crackme lên, nhập name : the_lighthouse, serial : 1234567890. Bấm check và 1 nag văng ra : Sorry, Serial not valid. Nhấn OK và bụp nó biến mất tiêu. Ah, dzậy là cái crackme này khác cái ở phần 1 là sau khi bắn nag ra xong là nó tự động close lại liền. Okey, tiếp theo chúng ta dùng PEiD để check nó, khỏe quá không bị pack. Dùng Olly load nó lên, chúng ta dừng lại ở đây : Code: 00401099 | $EB 27 | JMP SHORT evdcm2.004010C2 Khác với cách ở phần 1, đến đây chúng ta sẽ tìm nơi mà cái nag Sorry ở trên được gọi. Cách làm như sau : click chuột phải chọn Search for\All referenced text strings. Cửa sổ Text strings referenced hiện ra, trong list chúng ta thấy dòng sau : Code: 00401223 | PUSH evdcm2.00402117 | ASCII "Sorry, Serial not valid !" Double click vào dòng đó, chúng ta đến đây : Code: 0040120E | . E8 79000000 | CALL <JMP.&USER32.GetDlgItemTextA | GetDlgItemTextA <== set breakpoint ở đây 00401213 | . A3 FB204000 | MOV DWORD PTR DS:[4020FB], EAX 00401218 | . 33C0 | XOR EAX, EAX 0040121A | \ EB 19 | JMP SHORT evdcm2.00401235 0040121C | > 6A 00 | PUSH 0 | Style= MB_OK:MB_APPLMODAL 0040121E | . 68 0F214000 | PUSH evdcm2.0040210F | Title = "CrackMe" 00401223 | . 68 17214000 | PUSH evdcm2.00402117 | Text = "Sorry, Serial not invalid !" <== Chúng ta đang ở đây 00401228 | . 6A 00 | PUSH 0 | hOwner = NULL 0040122A | . E8 69000000 | CALL <JMP.&USER32.MessageBoxA> | MessageBoxA 0040122F | . 50 | PUSH EAX | ExitCode 00401230 | . E8 7B000000 | CALL <JMP.&KERNEL32.ExitProcess> | ExitProcess 00401235 | > 68 50204000 | PUSH evdcm2.00402050 0040123A | . 5E | POP ESI 0040123B | . E8 C0FDFFFF | CALL evdcm2.00401000 00401240 | . A3 FF204000 | MOV DWORD PTR DS:[4020FF], EAX 00401245 | . E8 B6FDFFFF | CALL evdcm2.00401000 0040124A | . 55 | PUSH EBP 0040124B | . B8 07214000 | MOV EAX, evdcm2.00402107 00401250 | . 8BE8 | MOV EBP, EAX 00401252 | . FE45 00 | INC BYTE PTR SS:[EBP] 00401255 | . E8 A6FDFFFF | CALL evdcm2.00401000 Nhìn lên trên chúng ta biết địa chỉ nên đặt breakpoint là 0040120E , click vào đó nhấn F2, xong nhấn F9 để Run chương trình. Nhập name : the_lighthouse và serial : 1234567890. Bấm check và ngay lập tức Olly nhảy ra => breakpoint của chúng ta đã hoạt động và chúng ta ice tại địa chỉ 0040120E. Nhìn xuống dưới chúng ta thấy có 3 lệnh CALL càn chú ý là ở các địa chỉ : 0040123B, 00401245 và 00401255. Nhìn sơ qua thì chúng ta thấy cả 3 lệnh CALL này khá giống nhau, chẳng biết chọn cái nào bây giờ. Nhưng em mách cho các bác nhá, chúng ta hãy trace đến lệnh call thứ 3 đó, lí do bởi thường thì lệnh CALL cuối cùng sẽ làm nhiệm vụ CHECK serial (cái này ngộ quá ta :)). Okey, bây giờ chúng ta trace over đến đó bằng cách dùng F8 - lưu ý ở đây các bác phải dùng trace over nếu không chưa kịp đến "nhà nàng" 00401255 đã bị lạc giữa mê cung assemble thì dễ xa nhau lắm ;) Xong, đến được nhà nàng rồi, bây giờ chúng ta nhấn F7 (trace into) để mở cửa vào nhà thôi. Và đây là bên trong nhà nàng ( hơi bị rộng đấy :sick: ) : Code: 00401000 | $ 807D 00 01 | CMP BYTE PTR SS:[EBP], 1 <== chúng ta đang ở đây 00401004 | .\ 74 22 | JE SHORT evdcm2.00401028 00401006 | . 33C0 | XOR EAX, EAX 0040108B | . 5E | POP ESI 0040108C | . 3B16 | CMP EDX, DWORD PTR DS:[ESI] <== rất quan trọng 0040108E | .\ 75 01 | JNZ SHORT evdcm2.00401091 00401090 | . C3 | RET Okie, chúng ta trace into đến 0040108C thôi. Và hãy nhìn vào khung nhỏ nhỏ bên dưới, chúng ta thấy như sau : Code: DS : [004020FF]=499602D2 EDX=00472A37 Lệnh CMP dùng để so sánh, vậy ở đây chắc là so sánh 2 số serial giống như ở phần 1 rồi. Nhưng mà sao lạ quá , 499602D2 là cái số nào, lúc này ta nhập 1234567890 mà. Ah, thì ra đây là hệ hex (hex là hệ thập lục phân) của nó. Nếu các bác không tin thì có thể dùng calculator có sẵn trong windows để tính lại. Chúng ta quay lại vấn đề thôi. Vậy thì chắc 472A37 là real serial rồi, nhưng mà fake serial được chuyển sang hệ hex thì chắc real serial cũng được chuyển sang hex. Vậy ta phải chuyển nó sang hệ dec (hệ thập phân) thôi. Và số mà ta tìm được là 4663863. Đóng Olly lại, mở file evdcm2 lên, nhập name : the_lighthouse và serial : 4663863 và ;) ======THE END====== Hi vọng qua bài viết này có thể giúp được các bác phần nào về việc crack soft với OllyDBG - 1 công cụ đa tính năng đa tác dụng mà lại free nữa chứ !!! Cảm ơn các bác đã theo dõi bài viết của 1 kẻ newbie như em Chúc các bác may mắn Thelighthouse(reaonline.net) NOP một soft = Olly for Newbie . 00 4 01 2 40 | . A3 FF 204 000 | MOV DWORD PTR DS:[ 402 0FF], EAX 00 4 01 2 45 | . E8 B6FDFFFF | CALL evdcm2 .00 4 01 0 00 00 4 01 2 4A | . 55 | PUSH EBP 00 4 01 2 4B | . B8 07 214 00 0 | MOV EAX, evdcm2 .00 40 2 10 7 00 4 01 2 50. ) : Code: 00 4 01 0 00 | $ 807 D 00 01 | CMP BYTE PTR SS:[EBP], 1 <== chúng ta đang ở đây 00 4 01 0 04 | . 74 22 | JE SHORT evdcm2 .00 4 01 0 28 00 4 01 0 06 | . 33C0 | XOR EAX, EAX 00 4 01 0 8B | . 5E. breakpoint ở đây 00 4 01 2 13 | . A3 FB 204 000 | MOV DWORD PTR DS:[ 402 0FB], EAX 00 4 01 2 18 | . 33C0 | XOR EAX, EAX 00 4 01 2 1A | EB 19 | JMP SHORT evdcm2 .00 4 01 2 35 00 4 01 2 1C | > 6A 00 | PUSH 0 | Style=

Ngày đăng: 03/07/2014, 17:21

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan