Tham khảo tài liệu 'cracker handbook part 87', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | 00499E39 . 55 PUSH EBP 00499E3A . 68 909E4900 PUSH 00499E3F . 64 FF30 PUSH DWORD PTR FS EAX 00499E42 . 64 8920 MOV DWORD PTR FS EaX ESP 00499E45 . B3 01 MOV BL 1 00499E47 . 8D55 F8 LEA EDX DWORD PTR SS EBP-8 00499E4A . 8B86 DC010000 MOV EAX DWORD PTR DS ESI 1DC 00499E50 . E8 9F95F8FF CALL 00499E55 . 8B45 F8 MOV EAX dWoRD PTR SS EBP-8 00499E58 . 8D55 FC LEA EDX DWORD PTR SS EBP-4 00499E5B . E8 E8E1F6FF CALL -- Gọi hàm kiểm tra name nhập vào 00499E60 . 837D FC 00 CMP DWORD PTR SS EBP-4 0 00499E64 . 75 0C JNZ SHORT -- Nhảy nếu không bắng. 00499E66 . B8 A89E4900 MOV EAX ASCII Please enter your User ID. 00499E6B . E8 3881FAFF CALL 00499E70 . 33DB XOR EBX EBX 00499E72 33C0 XOR EAX EAX 00499E74 . 5A POP EDX 00499E75 . 59 POP ECX 00499E76 . 59 POP ECX 00499E77 . 64 8910 MOV DWORD PTR FS EAX EDX 00499E7A . 68 979E4900 PUSH 00499E7F 8D45 F8 LEA EAX dWoRD PTR SS EBP-8 00499E82 . E8 799DF6FF CALL 00499E87 . 8D45 FC LEA EAX DWORD PTR SS EBP-4 00499E8A . E8 719DF6FF CALL 00499E8F . C3 RETN He he vì soft được code bằng Delphi6 nên ta không thể đặt breakpoint là getdlgitemtexta hay getwindowtexta được. Nhưng hacnho nhận thấy dòng 00499E2C 55 PUSH EBP là nơi bắt đầu doạn mã kiểm tra nên chúng ta đặt breakpoint tại đây xem sao . Okie nhấn F2 để set breakpoint. Nhấn F9 để chạy chương trình. Nhập name và serial như trên. OllyDBG liền ice tại đây. Nhấn F8 để trace downward tới dòng 00499E8F . C3 RETN nó sẽ đưa bạn tới chỗ này 0049A81F . 84C0 TEST AL AL 0049A821 . 0F84 2E010000 JE 0049A827 . A1 6CB15100 MOV EAX DWORD PTR DS 51B16C 0049A82C . 8038 00 CMP BYTE PTR DS EAX 0 0049A82F . 74 39 JE SHORT 0049A831 . 8D55 E8 LEA EDX DwORD PTR SS EBP-18 0049A834 . 8B83 DC010000 MOV EAX DWORD PtR DS EBX 1DC 0049A83A . E8 B58BF8FF CALL 0049A83F . 8B45 E8 MOV EAX DWORD PTR SS EBP-18 .