How to write a program to steal the key
by dqtln
Victim : ImTOO WMA MP3 Converter 2.0.36 Build 713
Home : www.imtoo.com
Tool : OllyDbg 1.10 , masm32 , WinAsm Studio
Phần tìm đoạn mã kiểm tra tương đối dễ nên mình nói sơ thôi
Nhấn F9 để chạy chương trình , nhập name và serial , ta sẽ nhận được thông báo "Invalid registration info!" ... Chuyển qua OllyDbg , nhấn F12 , nhấn Alt+K , nhấn đúp lên hàm MessageBoxExA , đặt breakpoint ... Nói chung Ctrl+F9 để về cuối hàm rồi F8.. , cuối cùng ta thấy như sau :
0035858B E8 D0F4FFFF CALL UILib71.?SaveRegInfo@ImRegDlg@@IAEX> |
Đặt breakpoint tại 00358590 , đi vào hàm kiểm tra này , F8 trace cho đến khi thấy như sau :
00358088 FF15 24273600 CALL DWORD PTR DS:[<&MFC71.#2902>] ; MFC71.7C146AB0 |
Sau khi thỏa điều kiện serial 39 ký tự , ta tiếp tục trace cho đến 003583B9 , nhìn thanh ghi ECX ta sẽ thấy serial đúng ... Như vậy , ta cần viết 1 loader có chức năng chạy chương trình , đặt điểm ngắt tại 003583B9 , và show thanh ghi ECX vào thời điểm đó
Để đặt điểm ngắt tại một địa chỉ , ta viết chương trình sửa 2 bytes tại đó thành EB FE , dòng lệnh tại đó sẽ thành lệnh nhảy đến chính nó
003583B9 -EB FE JMP SHORT UILib71.003583B9
Chép loader vào thư mục cài đặt , chạy loader
Nhấn nút Generator , victim sẽ chạy
Nhập name và serial (39 ký tự bất kỳ) , OK , victim tắt
Cửa sổ loader sẽ hiện ra serial đúng
Mã nguồn tương đối ngắn gọn , các bạn xem mã nguồn và target trong file đính kèm bài viết này
dqtln 05 June 2007
Download:
http://www.esnips.com/doc/92062c3e-d2fa-42d5-b142-56d3af82c4f7/Tutorial_0141_How-to-write-a-program-to-steal-the-key