SNATCHING THE H@T Final: GAOParty 400
Vo Uu | 11:03 | 0
nhận xét
Binary: https://www.dropbox.com/s/u9hjrzxu9av4vch/GAOParty.exe
Đội mình, cụ thể là mình và bạn Tấn Công, đã tiêu tốn khoảng nữa thời gian vào làm bài này. Thời gian chủ yếu là ngồi tự code hàm decrypt ...
Đến gần cuối buổi, lúc thời gian còn ít hơn một tiếng, trong thời gian sửa code của bạn Công mình có xem lại chương trình và phát hiện ra trong binary đã có sẵn hàm decrypt. Thực ra, mình đã thấy hàm này ngay từ lúc đầu khi xem các xref đến cái KEY sử dụng để encrypt. Nhưng lúc đó chỉ nghĩ đó chỉ là một hàm rác nào đó ... đến cuối buổi xem lại thì nhìn code trong hexrays gần giống như code mà mình đang viết ...
Solution cuối cùng chỉ đơn gian có thế này. Đây là đoạn windbg script mình dùng để "dynamic" patch với mục đích thay vì chương trình gọi hàm encrypt, mình sẽ patch lại chương trình để gọi hàm decrypt.
bu 00401406 " r eip = 0040151E ; g @$ra ; .printf \"%ma\", ebx ; .printf "\n"; r eip = eip + 17; g"
Trong đó
00401406 => address của hàm encrypt 0040151E => address của hàm decrypt g @$ra => run cho đến khi hàm decrypt return .printf "%ma", ebx => print ra clear-text, với ebx chưa địa chỉ r eip = eip + 17 => tăng EIP lên 0x17 bytes để bỏ qua các bước check của hàm encrypt không cần thiết lúc decrypt g => tiếp tục chay, sau 3 lần bạn sẽ nhận được flag Cuối cùng, flag nhận được là: il0v3G40R4ng3rSs0mUch!!!
Related posts:
If you enjoyed this article just click here, or subscribe to receive more great content just like it.
Nhãn:
CTF
Đăng ký:
Đăng Nhận xét (Atom)

0 nhận xét:
Đăng nhận xét