1. Trang chủ
  2. » Công Nghệ Thông Tin

Cracking part 27 ppt

6 116 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cracking Part 27
Trường học Hà Lan
Chuyên ngành Cracking
Thể loại tut
Thành phố hà lan
Định dạng
Số trang 6
Dung lượng 153,24 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đến đây nếu các bạn nào nóng ruột không muốn tìm hiểu tiếp hay không hiểu những gì tui post và ko cần đọc tiếp các phần sau mà muốn sử dụng phần mềm này ngay thì các bạn hảy nhập số sear

Trang 1

về Olly , nên vọc từa lưa khi crack , mà Olly thì lại máy móc lưu hết những gì họ đã làm Thành thử ra, khi vào crack trong phiên làm việc sau rất khó chịu với anh chàng Olly mà mình lỡ vọc từa lưa Muốn xóa sạch “dấu vết” mà mình lỡ “khờ dại” làm ra ,các bạn hảy dùng tính năng CleanupEx Vì vậy tui mới giới thiệu tính năng này sớm cho các bạn Ehèm, muốn xóa sạch “dấu vết” trong phiên làm việc trước, các bạn vào menu Plugins trên thanh Tools Bar, chọn CleanupEx\Last Used Còn nếu muốn xóa hết tất cả các “thiên tình sử” mà mình “lỡ dại” khi crack các phần mềm trước đó , các bạn chọn

CleanupEx\All(*.udd*bak) là xong Bây giờ thì các bạn muốn “yêu” lại em nào thì yêu thỏai mái , mà ko sợ những “tội lỗi” lúc trước mình gây ra hêhê (đã nạo sạch híhí) Ước gì ngòai đời có chức năng này, vì tui gây ra rất nhiều “tội lỗi” Lạy Chúa con hối hận lém

Đến đây nếu các bạn nào nóng ruột không muốn tìm hiểu tiếp hay không hiểu những gì tui post và ko cần đọc tiếp các phần sau mà muốn sử dụng phần mềm này ngay thì các bạn hảy nhập số searial như sau:

Quote:

License Name: Single License

License Code: ZZZZZZZZZPPPPPQ

Còn nếu các bạn nào kiên trì muốn tìm hiểu tiếp các phần sau (vì tut này tui dự trù viết rất dài nhằm để các Newbiez hiểu tường tận đọan mã tạo Serial) thì các bạn ko nên nhập

số searial tui đã cho vì còn phải làm việc với cái chương trình này

Tại sao Tut này tui dự trù viết dài như thế ?? Thưa các bạn vì đến đây để vượt qua được ngưỡng cửa Newbie thì chúng ta phải tìm hiểu về các đọan code ASM Và đây lại là Tut đầu tiên của Newbie tìm hiểu về code ASM nên rất nhiều các khái niệm căn bản phải giải thích Nhưng các newbie an tâm, nhiều khi các cracker lọai trung cũng chưa chắc nắm rõ ràng những điều căn bản này (nói thiệt tui post chứ nhiều khi tui ko hiểu gì ráo, tui post ở đây giống như nói xàm cho vui) Các bạn cứ học từ từ theo Benina thì đến ngày nào đó chúng ta sẽ hôi “cái mùi cracker” nòng nặc thôi Lúc đó tắm xà bông Lux cũng chưa chắc thơm nổi như Mỹ Tâm

Các bạn hảy chờ Tut sau nhé.Bài này thực ra là một ví dụ về tính đa năng của Olly Nó giống như một bài báo bình thường ko có gì đặc biệt Hy vọng các bạn nào chưa biết các tính năng này sẽ hài lòng với TUT này

Mệt quá rồi cho Benina nghĩ xả hơi 1 chút Mấy hôm nay mới đi qua Hà Lan mua sữa của mấy “cô gái Hà Lan” về uống , nên đến giờ ghiền rồi phải đi bú thôi ai muốn, tui chia lại cho vài lít híhí

BÀI 4: FIND REAL SEARIAL

PHẦN I: KHÚC DẠO ĐẦU VỚI “FIND REAL SEARIAL”

Trang 2

Chắc các bạn cũng đã từng đọc qua lọat TUT “Craker!WhoAreYou” của Hacnho để tìm Real Searial, hay loạt tut “How To Crack” của Infinite đầy tài năng, cũng như lọat tut

“CrackSoft’s Tuts” và “Crackme for Newbie”của Moonbaby chuyên gia crack softs ,hoặc

”How to use OllDbg” của RongChauA đã viết rất lâu, các bạn có hiểu gì ko nào? Nếu các bạn đã hiểu những lọat Tut tui kể trên thì các bạn ko phải là đối tượng cho lọat TUT này Ở đây Benina chỉ muốn chia sẽ với các bạn còn đang khó khăn khi chưa hiểu những

gì viết trong các lọat TUT trên Cái quan trọng là các bạn Newbie chưa biết đọc mã ASM Khi ko biết đọc thì ko thể biết viết được ( Ở đây tui muốn nói đọc và hiều).Benina sẽ cùng học với các bạn đọc và hiểu các đọan mã ASM qua lọat tut này,như vậy là đã đủ cho 1 cracker Newbie rồi Còn để viết được một chương trình ASM , hêhê chuyện dài hơi

Như trên tui đã nói, các bạn Newbie rất khó khăn khi đọc các lọat TUT trên Không phải

vì các tác giả viết dỡ , nhưng vì chúng ta mất “cãn bản” trầm trọng Không hiểu được mã ASM Vì vậy Benina sẽ cố gắng hết sức mình, trình bày thật dễ hiểu cho các bạn Newbie như benina đây Thành thử khi các bạn ko hiểu những gì benina viết thì please báo với benina để điều chỉnh cách viết ngay Đồng thời như thế benina cũng học hỏi rất nhiều ở các bạn

Trong lọat TUT này , vì trình độ của các bạn cũng có phần nâng cao so với “thuở ban đầu lưu luyến ấy” , và cũng để cho nó thêm phần hấp dẫn, Benina sẽ chọn các softs “mới cáo” làm ví dụ Và một quy tắc nữa của benina là trong quá trình hướng dẫn , benina sẽ cố tình post một vài điểm sai, nếu các bạn làm “y chang” với những gì benina posted thì sẽ ko crack được đâu (hihi) Cái này ko phải là “giấu nghề” (có nghề đâu mà giấu) mà là tránh phiền phức về sau Mong các bạn thông cảm Đó là quy tắc “nhát như thỏ” của benina Benina chưa bao giờ phạm pháp chỉ dịch TUT thôi mà hêhê Tóm lại, mục đích cuối cùng của lọat TUT này chỉ là giúp các bạn thực hành Olly và đọc hiểu mã ASM có thế thôi

Các bạn thấy đó, trong các tut trên , các cracker chỉ comment vắn tắc như sau mà một Newbie thì ko thể nào hiểu được:

Ví dụ:

Quote:

Target: Ripple Screensaver 3.0

Dùng phương pháp search string của “bad boy” ta đến đọan mã sau đây và đặt bp như sau:

Quote:

00402204 > \50 PUSH EAX

00402205 B9 20454000 MOV ECX,RSRemind.00404520

0040220A E8 87010000 CALL RSRemind.00402396

0040220F 8B46 64 MOV EAX,DWORD PTR DS:[ESI+64]

00402212 B9 20454000 MOV ECX,RSRemind.00404520

00402217 50 PUSH EAX

00402218 E8 95010000 CALL RSRemind.004023B2

Trang 3

0040221D B9 20454000 MOV ECX,RSRemind.00404520

00402222 E8 05030000 CALL RSRemind.0040252C<<<<<<<< đặt bp Toggle

00402227 85C0 TEST EAX,EAX

00402229 75 2A JNZ SHORT RSRemind.00402255

0040222B 85F6 TEST ESI,ESI

0040222D 74 03 JE SHORT RSRemind.00402232

0040222F 8B76 20 MOV ESI,DWORD PTR DS:[ESI+20]

Press F9, Nhập Fake Name: benina và Fake Code: 0123456789 Rồi press F7 step into vào hàm :

========================

0040252C /$ 55 PUSH EBP ; Thủ tục đầu tiên của hàm call

0040252D | 8BEC MOV EBP,ESP

0040252F | 81EC 0C010000 SUB ESP,10C

00402535 | 53 PUSH EBX

00402536 | 56 PUSH ESI

00402537 | 8BD9 MOV EBX,ECX

00402539 | 33F6 XOR ESI,ESI ; esi=0

0040253B | 3973 04 CMP DWORD PTR DS:[EBX+4],ESI

0040253E 74 08 JE SHORT RSRemind.00402548

00402540 | 6A 01 PUSH 1

00402542 | 58 POP EAX

00402543 | E9 DB000000 JMP RSRemind.00402623

00402548 |> 80A5 F4FEFFFF>AND BYTE PTR SS:[EBP-10C],0

0040254F | 57 PUSH EDI

00402550 | 6A 40 PUSH 40

00402552 | 33C0 XOR EAX,EAX ; eax=0

00402554 | 59 POP ECX

00402555 | 8DBD F5FEFFFF LEA EDI,DWORD PTR SS:[EBP-10B]

0040255B | F3:AB REP STOS DWORD PTR ES:[EDI]

0040255D | 3973 0C CMP DWORD PTR DS:[EBX+C],ESI ; Tham so [ebx+c]=esi=0 ?

00402560 | 8975 FC MOV [LOCAL.1],ESI ;Biến Local local.1=0=esi

00402563 | 66:AB STOS WORD PTR ES:[EDI]

00402565 | 8975 F8 MOV [LOCAL.2],ESI ;Biến local.2=0

00402568 | AA STOS BYTE PTR ES:[EDI]

00402569 74 07 JE SHORT RSRemind.00402572 ; Nhay ko dùng Fake Name de tinh toan

0040256B | 68 34444000 PUSH RSRemind.00404434 ; ASCII "Single License"

00402570 | EB 07 JMP SHORT RSRemind.00402579

00402572 |> 8D83 14010000 LEA EAX,DWORD PTR DS:[EBX+114] ;

[ebx+114]=Fake name='benina'

00402578 | 50 PUSH EAX

Trang 4

00402579 |> 8D85 F4FEFFFF LEA EAX,[LOCAL.67] ; |

0040257F | 50 PUSH EAX ; |dest

00402580 | E8 69040000 CALL <JMP.&MSVCRT.strcpy> ; \eax='Single License' Name default

00402585 | 59 POP ECX ; 'Single License'

00402586 | 8D85 F4FEFFFF LEA EAX,[LOCAL.67] ; 'Single License'

0040258C | 59 POP ECX

0040258D | 33FF XOR EDI,EDI ; edi=0 ===> khoi tao counter i=0

0040258F | 50 PUSH EAX ; /eax=Name default = 'Single License'

00402590 | E8 5F040000 CALL <JMP.&MSVCRT.strlen> ; \strlen

00402595 | 85C0 TEST EAX,EAX ; eax=0E ===> chieu dai Name df=15 ky tu

00402597 | 59 POP ECX ; ecx= Name default : 'Single License'

00402598 | 7E 1D JLE SHORT RSRemind.004025B7

0040259A |> 0FBE843D F4FE>/MOVSX EAX,BYTE PTR SS:[EBP+EDI-10C] ; eax=Ky tu thu [i] cua chuoi Name

004025A2 | 0145 FC |ADD [LOCAL.1],EAX ; Bien Local.1=Local.1+eax

004025A5 | 8D85 F4FEFFFF |LEA EAX,[LOCAL.67] ; eax=[Local.67]= chieu dai Name df

004025AB | 50 |PUSH EAX ; /Name

004025AC | 47 |INC EDI ; |edi=edi+1 ===>Counter i=i+1

004025AD | E8 42040000 |CALL <JMP.&MSVCRT.strlen> ; \strlen

004025B2 | 3BF8 |CMP EDI,EAX ; edi=eax ?

004025B4 | 59 |POP ECX

004025B5 |.^ 7C E3 \JL SHORT RSRemind.0040259A ; cuoi vong lap local.1=545 (dump: d loacal.1)

004025B7 |> 8DB3 18020000 LEA ESI,DWORD PTR DS:[EBX+218] ; esi= code '0123456789'

004025BD | 33FF XOR EDI,EDI ; edi=0 ===>counter i=0

004025BF | 56 PUSH ESI ; /s

004025C0 | E8 2F040000 CALL <JMP.&MSVCRT.strlen> ; \strlen

004025C5 | 85C0 TEST EAX,EAX ; eax=0A chieu dai Lincense code: '0123456789' 004025C7 | 59 POP ECX

004025C8 | 7E 13 JLE SHORT RSRemind.004025DD

004025CA |> 0FBE043E /MOVSX EAX,BYTE PTR DS:[ESI+EDI] ; eax= ky tu thu i cua License code

004025CE | 0145 FC |ADD [LOCAL.1],EAX ; local.1=local.1+eax

004025D1 | 56 |PUSH ESI ; /edi='0123456789'

004025D2 | 47 |INC EDI ; |edi=edi+1 ===>counter i=i+1

004025D3 | E8 1C040000 |CALL <JMP.&MSVCRT.strlen> ; \strlen

004025D8 | 3BF8 |CMP EDI,EAX ; eax=len License code ‘0123456789’ = 0A so sanh voi counter i

004025DA | 59 |POP ECX

Trang 5

004025DB |.^ 7C ED \JL SHORT RSRemind.004025CA ; local.1=752

004025DD |> 8A8D F4FEFFFF MOV CL,BYTE PTR SS:[EBP-10C] ; cl= ky tu dau tien cua Name df =53= 'S'

004025E3 | 5F POP EDI

004025E4 | 84C9 TEST CL,CL

004025E6 | 0FBEF1 MOVSX ESI,CL ; esi='S'

004025E9 | 74 1B JE SHORT RSRemind.00402606

004025EB | 8D85 F4FEFFFF LEA EAX,[LOCAL.67] ; eax= 'Single License'

004025F1 |> 0FBEC9 /MOVSX ECX,CL ; ecx=ky tu trong name thu i

004025F4 | 014D F8 |ADD [LOCAL.2],ECX ; local.2=local.2+ecx

004025F7 | 3BCE |CMP ECX,ESI ; ecx=esi ?

004025F9 | 7E 03 |JLE SHORT RSRemind.004025FE

004025FB | 0FBE30 |MOVSX ESI,BYTE PTR DS:[EAX] ; esi= ky tu hien ton tai 004025FE |> 8A48 01 |MOV CL,BYTE PTR DS:[EAX+1] ; cl=byte [eax+1]

00402601 | 40 |INC EAX ; eax=eax+1

00402602 | 84C9 |TEST CL,CL ; cl=0 khi het chuoi name df

00402604 |.^ 75 EB \JNZ SHORT RSRemind.004025F1 ;dump local.2=545 cuoi vong lap loop

00402606 |> 8B5B 08 MOV EBX,DWORD PTR DS:[EBX+8] ; ebx=const =406

00402609 | 8D85 F4FEFFFF LEA EAX,[LOCAL.67] ; eax= name df

0040260F | 50 PUSH EAX ; /s

00402610 | E8 DF030000 CALL <JMP.&MSVCRT.strlen> ; \eax= len name df = 0E

00402615 | 0FAFC6 IMUL EAX,ESI ; ===> eax=eax*esi=eax*73=0E*73=64A (esi=ky

tu cuoi cung cua chuoi name df la ky tu ‘s’=73h)

00402618 | 03C3 ADD EAX,EBX ; eax=eax+ebx= eax + esi=eax+406=A50 (esi la hang

so = 406)

0040261A | 59 POP ECX

0040261B | 2B45 FC SUB EAX,[LOCAL.1] ; eax=eax-local.1

0040261E | F7D8 NEG EAX ; eax= neg eax

00402620 | 1BC0 SBB EAX,EAX ; eax=eax-eax Neu eax=FFFFFFFF===> bad boy ; eax=0 good boy

00402622 | 40 INC EAX ; eax=eax+1

00402623 |> 5E POP ESI

00402624 | 5B POP EBX

00402625 | C9 LEAVE

00402626 \ C3 RETN

======================

Trong quá trình trace F8 ta thấy chương trình trial này nó ko tính tóan License Name của

ta nhập vào mà nó lấy chuổi License Name default: ”Single License” để tính tóan

Theo đọan mã cuối hàm call:

Trang 6

0040261B | 2B45 FC SUB EAX,[LOCAL.1] ; eax=eax-local.1

0040261E | F7D8 NEG EAX ; eax= neg eax

00402620 | 1BC0 SBB EAX,EAX ; eax=eax-eax Neu eax=FFFFFFFF===> bad boy ; eax=0 good boy

00402622 | 40 INC EAX ; eax=eax+1

Để có Good boy thì eax=0 tại :

0040261B | 2B45 FC SUB EAX,[LOCAL.1] ; eax=eax-local.1

Theo như trên ,vì eax=eax-local.1

Nên để eax=0 sau khi thực kiệm phép tóan trên thì : local.1=eax

Theo routine:

00402618 | 03C3 ADD EAX,EBX ; eax=eax+ebx= eax + esi=eax+406=A50 (esi la hang

so = 406)

Vậy Local.1=eax=A50

Chúng ta lại thấy trong quá trình trace:

Local.1= Tổng các ký tự Name df + Tổng các ký tự của License Code

Thay các giá trị vào:

A50= 545+ Tổng các ký tự của License Code (545 là tổng các ký tự Name df: “Single License”

Hêhê, vậy:

Tổng các ký tự của License Code= A50-545=50B

Tui chọn chuổi này “ZZZZZZZZPPPPPQ” có tồng các ký tự =50B

Chuổi này là ngắn nhất đó , có ai tìm ra chuổi ngắn hơn tui dẫn đi nhậu hêhê

(Để tính tổng ta các ký tự ta dùng calc.exe mà máy nào cũng có)

Vậy là OK, hảy nhập thử License code vừa tìm xem nào

==========================

 

Ngày đăng: 01/07/2014, 13:20