**KCSC REV Crackme Write-up** 1.**Cũng như chall kia thì ban đầu vào web ta sẽ thây được như này**![](https://hackmd.io/_uploads/S1thm-zya.png) **Tải file crackme.py về đi rồi tính gì tính** 2.**Open file crackme.py lên sẽ thấy một chương trình Py như sau:** ``` secret_flag = "ardLRyTJNc8{VJE3O8M" alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz{}_" def decode_secret(secret): rotate_const = 41 decoded = "" for c in secret: index = alphabet.find(c) original_index = (index + rotate_const) % len(alphabet) decoded = decoded + alphabet[original_index] print(decoded) def choose_greatest(): value_1 = input("What's your first number? ") value_2 = input("What's your second number? ") if not (value_1.isnumeric() and value_2.isnumeric()): print("Invalid input") else: greatest_value = value_1 if value_1 > value_2: greatest_value = value_1 elif value_1 < value_2: greatest_value = value_2 print("The number with largest positive magnitude is " + str(greatest_value)) exit() choose_greatest() ``` **Sau đó để in ra flag em sẽ chỉnh sửa một chút(có tham khảo một tí của gpt =)) )** ``` **Trước khi thực hiện chỉnh sửa, alphabet được định nghĩa như sau: alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz{}" ``` Sau đó, chuỗi `secret_flag` được giải mã sử dụng hàm `decode_secret`. Quá trình giải mã này sử dụng một hằng số `rotate_const` là 41 để dịch chuyển các ký tự trong chuỗi `secret_flag`. Sau khi thực hiện chỉnh sửa, ký tự "_" đã được thêm vào alphabet, và alphabet trở thành: ``` alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz{}_" ``` Kết quả giải mã của chuỗi `secret_flag` sẽ khác sau khi thực hiện chỉnh sửa. Kết quả giải mã được in ra: ``` Decoded flag: FLAG{EASY_ENCRYPTION} ---HẾT---