[CodeEngn] Basic RCE – Level 20

http://codeengn.com/challenges/basic/20

This program needs a key file.
What does the data in the file crackme3.key have to be to make it print the above message.
Ex) 41424344454647
(This problem has multiple answers, so post your answer on the messageboard in a private thread and we will verify it for you.)

Bài này hơi dài dòng, nếu so với các bài trước đó. Chúng ta sẽ mở nó trong IDA, kết hợp giữa việc debug và đọc code để hiểu xem nó làm gì. Kết quả có thể để như sau:

Thông tin tóm tắt:

  1. Đọc 18 byte từ file CRACKME3.KEY.
  2. Can thiệp 14 byte đầu, tính tổng của các giá trị thu được bằng việc XOR 14 byte này lần lượt với các giá trị từ 65 đến 78.
  3. XOR tổng thu được với 0x12345678, chuyển kết quả về ASCII.
  4. So sánh với 4 byte cuối trong 18 byte ở trên (little-endian).

Chúng ta sẽ đi theo một hướng mất ít công sức thôi, vì giờ cũng khuya rồi.

Tạo file CRACKME3.KEY có nội dung:

123456789012345678

Đặt BP tại 00401093:

F9 và xem kết quả:

Trong đó EAX = 38373635 chính là 5678 – 4 byte cuối đọc từ file của ta, còn 12345022 sẽ là giá trị ta cần để đạt được goodboy. Tiến hành thay đổi 5678 bằng x22x50x34x12. Chạy lại:

---------------------------
Good work cracker!
---------------------------
Cracked by: pppppppppzz~~z!
Now try the next crackme!
---------------------------
OK   
---------------------------

Bài này có nhiều đáp án, nên sẽ không có → flag = xxx. như mọi khi nữa. :xô xát: too_sad

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *