Điểm kết thúc vòng lặp có thể được định vị ở địa chỉ 0x004EB1AA.. Đặt Một breakpoints tại địa chỉ này và nhấn shift+F9, ta thấy Olly sẽ ngưng tại vị trí đó và ta nhìn một chút vị trí mà
Trang 1Điểm kết thúc vòng lặp có thể được định vị ở địa chỉ 0x004EB1AA Đặt Một breakpoints tại địa chỉ này và nhấn shift+F9, ta thấy Olly sẽ ngưng tại vị trí đó và
ta nhìn một chút vị trí mà lệnh nhảy này sẽ jump
Trang 2Bây giiờ, Reatart Olly, rồi thực thi tới vị trí 0x004EB1AA:
Trang 3Chúng ta thấy đoạn mã rõ ràng hơn, điều này có nghĩa rằng lệnh nhảy này chưa được đả động đến khi chương trình ở EntryPoint và nó cũng đi đến cuối vòng lặp
mã hoá đầu tiên Đây là một dấu hệiu rất tốt cho chúng ta bởi vì đây sẽ là con trỏ
tái điều hướng đến vùng mã patching củ chúng ta, sau đó chúng ta ghi chép lại địa chỉ này
END OF THE LOOP #1 (redirection #1): 0x004EB1AA
ORIGINAL INSTRUCTION: JMP 0x004EB1CA
Sau khi thực thi vòng lặp chúng ta cũng phải kiểm tra nếu đoạn mã ở địa chỉ của lời VirtualAlloc API đầu tiên có được ghi hay không
Sau đó nhấn Crl+G và đánh 0x004EB4E1, đoạn mã này vẫn chưa được decrypt, sau đó chúng ta F7, qua một vài những chỉ thị chúng ta sẽ gặp một vòng lặp decryt mới với mã xáo trộn
Trang 4Ở vị trí 004EB267 là vị trí kết thúc vòng lặp, tiếp tục đặt một breakpoints trên địa chỉ này (F2) và nhấn Shift+F9 để thực thi ttất cả việc lặp một cách nhanh chóng
Trang 5Như vậy 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 #2 (redirection #2): 0x004EB267
INSTRUCTION ORIGINATES THEM: JMP 0x004EB290
Sau đó chúng ta cũng làm như lần trước, xem coi API VirtualAlloc Caller xuất hiện hay chưa, và cũng chưa thấy nó xuất hiện, như vậy ta tiếp tục cuộc chiến với lửa một lần nữa:
Chúng ta có một vòng lặp decryption khác: