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

Cracker Handbook 1.0 part 267 potx

7 118 1
Tài liệu đã được kiểm tra trùng lặp

Đ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 7
Dung lượng 789,96 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Áp dụng cách làm trứơc, đặt một breakpoints trên địa chỉ thoát khỏi vòng lặp và nhấn Shift+F9 để đeến địa chỉ vừa mới đặt breakpoints.. Chúng ta cũng lưu ý ghi chép lại địa chỉ trên, đây

Trang 2

Áp dụng cách làm trứơc, đặt một breakpoints trên địa chỉ thoát khỏi vòng lặp và nhấn Shift+F9 để đeến địa chỉ vừa mới đặt breakpoints

Chúng ta cũng lưu ý ghi chép lại địa chỉ trên, đây là nơi trỏ đến đoạn mã của chúng

ta

END OF THE LOOP #3 (redirection #3): 0x004EB32D

ORIGINAL INSTRUCTION: JMP 0x004EB373

Tiếp tục nhìn xem tại 004EB4E1 vẫn chưa thấy xuất hiện ta tiếp tục thử lửa

Ta có một vòng lặp khác nữa

Trang 3

Làm giống như trên F2 tại điểm kết thúc vòng lặp, cho shift+F9 tiếp tục lưu ý:

Trang 4

END OF THE LOOP #4 (redirection #4): 0x004EB410

ORIGINAL INSTRUCTION: 0x004EB427

Cuối cùng rồi cũng tới 004EB4E1 xuất hiện lời gọi hàm VirtualAlloc API

Được gồi,tại đây chúng ta làam bước này:

1 Chúng ta ở tại vị trí Entrypoint của trình packer

2 Vòng lặp decryption thứ 1 thực thi, con trỏ thoát khỏi vòng lặp ở

004EB1AA

3 Vòng lặp decryption thứ 2 thực thi, con trỏ thoát khỏi vòng lặp ở 004EB267

4 Vòng lặp decryption thứ 3 thực thi, con trỏ thoát khỏi vòng lặp ở 004EB32D

5 Vòng lặp decryption thứ 4 thực thi, con trỏ thoát khỏi vòng lặp ở 004EB410

6 Chúng ta thấy sự xuất hiện củalời gọi hàm VirtualAlloc API xuất hiện ở 0x004EB4E1

Danh sách breakpoints:

Sau đó, chúng ta trace thì se gặp ời gọi hàm VirtualAlloc API

Trang 5

Lệnh Push 0BA1000 trước lệnh RETN , điều này sẽ điều hướng chương trình nhảy tới vị trí mới được xác định Nhưng cũng có điểm thú vị khi ta nhìn lệnh PUSH

8000 bởi vì nó có thể recover trong EDI địa chỉ nền của vùng nhớ mới đã được định vị

TA có thể triển khai việc táai điều hướng đến đoạn mã patching của chúng ta bằng việc dùng những BYTE của lệnh PUSH 8000

ABSOLUTE ADDRESS (redirection #5): 0x004EB5E8

ORIGINAL INSTRUCTION: PUSH 8000 - > 0x68 0x00 0x80 0x00 0x00

Bây giờ từ đây tôi sẽ nói về offset với nền địa chỉ 00BA1000

Chúng ta bắt đầu ở trong đoạn mã Decompression đối với OEP

Trang 6

Nhìn vào mã ở offset 0x002663, chúng ta thấy mã ở đây khá là khác biệt so với đoạn mã chúng ta thấy lúc bắt đầu của việc mô tả của chúng ta, vì chúng ta còn phải từng bứơc thông qua mọt vài lớp decompression khác trước khi đến đuợc đoạn mã unpack tất cả mã chương trình đích

Ta tiếp tục mô tả mã ở địa chỉ0x00BA1007, chúng ta có một lời gọi hàm

VirtualAlloc khác trên 0x00BA10C4, sau đó chúng ta sẽ có một vài vòng lặp ghi

mà decrypt vào đoạn mã khác

Đến đây, ta sắp phải đến một offset mới 0x0031303D

Trang 7

Tại đây ta có thể trỏ đến đoạn mã patching của ta

OFFSET (redirection #6): 0x00310F3

ORIGINAL INSTRUCTION: PUSH 8000 - > 0x68 0x00 0x80 0x00 0x00

Nhìn một chút qua offset 0x002663 trong cửa sổ dump của Olly xem coi có được decrypt chưa, tất nhiên là chưa, ta tiếp tục thui

Ngày đăng: 03/07/2014, 17:21

TỪ KHÓA LIÊN QUAN