Ta tìm được hàm này tại địa chỉ : 004937D3 |. E8 0CBBF7FF |CALL ; \Sleep - Dò ngược lên trên và đặt BreakPoint tại lệnh CALL đầu tiên của FUNCTIONnày : 004937C7 |. E8 F44FFEFF CALL ; | - Dùng PEiD kiểm tra biết chương trình không bị PACK và biết chương trìnhđược viết bằng Borland Delphi - - Chạy thử chương trình với User và Fake Serial ta nhận được NAG . Tuy nhiên ta không thể tìm thấy chuỗi này trong quá trình tìm kiếm . Nhưng ta nhận thấy chương trình có khoảng thời gian dừng trước khi xuất hiện NAG . Ta truy đến hàm . Ta tìm được hàm này tại địa chỉ 004937D3 . E8 0CBBF7FF CALL JMP. Sleep - Dò ngược lên trên và đặt Breakpoint tại lệnh CALL đầu tiên của FUNCTIONnày 004937C7 . E8 F44FFEFF CALL Set BreakPoint here II - Cracking - Load chương trình lên chạy chương trình với User và Fake Serial chương trình dừng lại tại điểm đặt BP . Trace xuống chút 00493848 . E8 1764FCFF cAlL LenS 0049384D . 837D E4 00 CMP 0 Must be input 00493851 . 74 14 JE SHORT 00493853 . 8D55 E0 LEA EDX 00493856 . 8B83 74030000 MOV eAx DWoRd PTR DS EBX 374 0049385C . E8 0364FCFF CALL LenU 00493861 . 837D E0 00 CMP 0 Must be input 00493865 . 75 33 JNZ SHORT - Trace tiếp ta đến 0049399D . E8 9AD1FFFF CALL Trace Into -------------------- Trace Into ------------------ 00490B78 . FF16 CALL DWORD PTR DS ESI Trace Into -------------------- Trace Into ------------------ 0049DD11 U . 8BF0 MOV ESI EAX 0049DD13 . 8BD6 MOV EDX ESI U 0049DD15 . B8 D0DD4900 MOV EAX ASCII D3 0049DD1A . 59 POP ECX Fake Serial 0049DD1B . E8 16FEFEFF CALL Encrypt Compare -------------------- Trace Into ------------------ -------------------- Trace Into ------------------ - Tiếp tục Trace Into ta đến quá trình mã hoá chính 0048DB6A . E8 2DFDFFFF CALL 0048DB6F . 83F8 18 CMP EAX 18 must be 24 charts 0048DB72 . 74 07 JE SHORT Continue check 0048DB74 . 33C0 XOR EAX EAX 0048DB76 . E9 C5000000 JMP 0048DB7B 803E 61 CMP BYTE PTR DS ESI 61 0048DB7E . 7C 08 JL SHORT .