Cracker Handbook 1.0 part 267 potx

7 118 1
Cracker Handbook 1.0 part 267 potx

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

Thông tin tài liệu

Á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 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 ý: 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 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. 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. 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. . lệnh PUSH 800 0 ABSOLUTE ADDRESS (redirection #5): 0x 004 EB5E8 ORIGINAL INSTRUCTION: PUSH 800 0 - > 0x68 0x 00 0x 80 0x 00 0x 00 Bây giờ từ đây tôi sẽ nói về offset với nền địa chỉ 00 BA 100 0. Chúng. 0x 00 313 03 D. Tại đây ta có thể trỏ đến đoạn mã patching của ta OFFSET (redirection #6): 0x 00 3 10 F3 ORIGINAL INSTRUCTION: PUSH 800 0 - > 0x68 0x 00 0x 80 0x 00 0x 00 Nhìn một chút qua offset 0x 002 663. (redirection #4): 0x 004 EB 4 10 ORIGINAL INSTRUCTION: 0x 004 EB427 Cuối cùng rồi cũng tới 00 4EB4E1 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

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

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan