[WhiteHat Contest 8] RE100, RE300
RE100
Hàm main.
Dữ liệu được đọc vào và được xử lý qua hàm genkey() và mang so sánh với 1 giá trị có trước.
Hàm genkey():
Lần lượt từng byte của dữ liệu đầu vào được xử lý. Theo thứ tự:
Đến đây thì dễ dàng viết 1 đoạn code thực hiện việc tìm key từ giá trị được sử dụng để so sánh trong hàm main().
Key = ryHaaDHF
Flag = 529635f422a9ae863e5ec3863fc4063341643006
RE300
Gần giống bài RE100.
Phức tạp hơn ở việc genkey được thực hiện 4 lần.
Với mỗi lần tính được 1 giá trị 8 byte, một hàm thực hiện công việc đổi thứ tự các phép tính xor, cộng, trừ được gọi 1 lần. (sub_905)
Phép toán ở cuối cùng được đẩy lên đầu tiên.
Key1 = zcontest
Key2 = WHITEHAT
Hàm main.
Dữ liệu được đọc vào và được xử lý qua hàm genkey() và mang so sánh với 1 giá trị có trước.

Hàm genkey():

Lần lượt từng byte của dữ liệu đầu vào được xử lý. Theo thứ tự:

Đến đây thì dễ dàng viết 1 đoạn code thực hiện việc tìm key từ giá trị được sử dụng để so sánh trong hàm main().
Key = ryHaaDHF
Flag = 529635f422a9ae863e5ec3863fc4063341643006
RE300
Gần giống bài RE100.
Phức tạp hơn ở việc genkey được thực hiện 4 lần.

Với mỗi lần tính được 1 giá trị 8 byte, một hàm thực hiện công việc đổi thứ tự các phép tính xor, cộng, trừ được gọi 1 lần. (sub_905)

Phép toán ở cuối cùng được đẩy lên đầu tiên.

Key1 = zcontest
Key2 = WHITEHAT