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

Cracker Handbook 1.0 part 377 ppt

8 81 1

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 446,36 KB

Nội dung

Về lại “CPU Window”. Nhấn F9. Chương trình sẽ break tại 401000 : Đây chính là OEP của ta. II. Dump chương trình : Dùng OllyDump để dump. Chọn giống trong hình : Đặt tên file là “a.exe”  III. Rebuild IAT : Dùng Imprec nạp chương trình. Điền các thông số giống hình sau, nhấn “IAT AutoSearch” rồi nhấn “Get Imports” Nhấn nút “Show Invalid”. Nhấn nút phải lên các dòng được đánh dấu chọn rồi chọn “Trace Level 1” Nhấn nút “Show Invalid” lần nữa. Chúng ta thấy chỉ còn 2 API là chưa tìm thấy (2 cái tô xanh ở dưới) : Chúng là 402020 (400000 + 2020). 402034 (400000 + 2034). Quay trở lại OllyDbg. Chúng ta đang ở 401000. Nhấn Ctrl-B. Nhập vào FF 25 giống hình dưới : Nhấn OK. Chúng ta dừng ở đây : Dạng của API là JMP DWORD PTR DS:[XXXXXX]. Nhấn Ctrl-F. Nhập vào JMP DWORD PTR DS:[402020]. Nhấn Find. Chúng ta dừng ở đây : Nhấn Ctrl-R để xem dòng code nào gọi hàm này. Chúng ta được : Kích đôi chuột vào dòng đầu tiên (401002). Chúng ta đang ở 401000. Nhấn F8. Chúng ta ở dòng 401002. Chú ý giá trị của thanh ghi EAX = 401000. Nhấn F8 một lần để thực hiện hàm. Chúng ta nhìn lại giá trị của EAX = 400000 -> Đây là hàm GetModuleHandleA. Đối với giá trị API thứ nhì (402034) cần tìm chúng ta làm tương tự. Nhấn Ctrl-F. Nhập vào JMP DWORD PTR DS:[ 402034]. Nhấn Find. Chúng ta ở đây : Cũng nhấn Ctrl-R. Kích đôi chuột vào dòng đầu tiên (401058). Nhấn F2 để đặt breakpoint. Nhấn Alt-M vào lại “Memory Map” bỏ chọn “Breakpoint memory on acess” Quay về “CPU Window”. Nhấn F9 để chạy chương trình. Khi ta kích nút “Exit” để đóng chương trình thì OllyDbg break tại 401058 (chỗ ta đặt breakpoint). Trong Imprec ta đã biết 402034 thuộc kernel32.dll. Vào “Memory Window” đặt “Breakpoint memory on acess” trên section text của kernel32.dll như trong hình : Quay về “CPU Window”. Nhấn F9 3 (hay 4) lần. Chúng ta sẽ ở trong kernel32.dll. Chú ý địa chỉ ta đang đứng là 77E77963. Nhấn Ctrl-N. Nhấn vào cột Address để sắp xếp lại thứ tự API cho dễ kiếm. Tìm dòng 77E77963 Đó là hàm CloseHandle. Vậy ta có kết quả : 402020 là GetModuleHandleA 402034 là CloseHandle Trong Imprec sửa lại 2 hàm cho đúng : 402020 : 402034 : . tô xanh ở dưới) : Chúng là 402 0 20 ( 400 000 + 202 0). 402 034 ( 400 000 + 203 4). Quay trở lại OllyDbg. Chúng ta đang ở 4 01 0 00 . Nhấn Ctrl-B. Nhập vào FF 25 giống hình dưới : . Chúng ta đang ở 4 01 0 00 . Nhấn F8. Chúng ta ở dòng 4 01 0 02 . Chú ý giá trị của thanh ghi EAX = 4 01 0 00 . Nhấn F8 một lần để thực hiện hàm. Chúng ta nhìn lại giá trị của EAX = 400 000 -> Đây là hàm. CloseHandle. Vậy ta có kết quả : 402 0 20 là GetModuleHandleA 402 034 là CloseHandle Trong Imprec sửa lại 2 hàm cho đúng : 402 0 20 : 402 034 :

Ngày đăng: 03/07/2014, 18:20

TỪ KHÓA LIÊN QUAN