tailieunhanh - Cracking part 13

Tài liệu hướng dẫn làm cracking phần 13 | với TaskLock chúng ta nhấn F11 để trở về đoạn lệnh gọi function. Chúng ta nhấn Ctrl-Up để kéo màn hình lên trên và sẽ thấy đoạn code sau MOV ESI ESP 0C PUSH 1E_ PUSH 0040A680_ PUSH 000003ED_ PUSH ESI CALL USER32 GetDlgItemTextA Lưu chiều dài lớn nhất của FN Địa chỉ đến buffer Control handle _Dialog handle Các bác có thấy cái gì không Đó là số 40A680. Để xem nó giấu cái gì nào okey chúng ta hãy đánh d 40A680 Và cái gì hiện ra trong data window vậy các bác. Well chúng ta hãy nhìn vào phần đầu của đoạn code PUSH 00 PUSH 00 PUSH 000003F6_ MOV EDI 00401680 PUSH EdI CALL USER32 GetDlgItemInt Control handle Lưu địa chỉ đến buffer Dialog handle Chắc các bác đang thắc mắc GetDlgItemInt là cái quái gì phải không Ở đây em xin nói ngoài lề 1 chút GetDlgItemInt là 1 function giống với GetDlgItemText nó trả về giá trị integer từ hộp thoại text. Nó được trả về trong EAX vì vậy chúng ta nhảy qua đoạn lệnh này và nhìn vào register window . Của em là nó như thế này EAX 00003039 Và để biết 3039 là cái gì chúng ta đánh 3039 Okey chúng ta sẽ có gì nào 00003039 0000012345 09 hex dec ascii Như các bác thấy nó hiện ra FS mà chúng ta đã đánh vào ban nãy. Bây giờ chúng ta típ tục các bác hãy nhìn vào đoạn code theo sau trước tiên là FS đã được lưu lại MOV 0040A548 EAX _ Lưu FS MOV EdX EAX đặt FS vào EDX Đoạn code tính số serial Và đây chính là đoạn code tính số serial MOV ECX FFFFFFFF Tính chiều dài FN SUB EAX EAX REPNZ SCASB NOT ECX DEC ECX EAX chứa chiều dài FN MOVSX EAX BYTE PTR 0040A680 Nhận byte tại 40A680 IMUL ECX EAX__ECX ECX EAX SHL ECX 0A__Đổi chỗ 0A ADD ECX 0002F8CC Thêm 2F8CC vào kết quả MOV 0040A664 ECX Và đây mới là đoạn code mà ta mong đợi nhất cố lên các bác sắp xong rùi CMP EcX EDXSo sánh EAX Và EDX JZ 00402DA6 Nhảy nếu bằng Sau khi nhảy đến CMP ECX EDX các bác có thể