318 words
2 minutes
PicoCTF Reverse Challenge - Vault Door 1 - 6.

Lời mở đầu#

Phần này sẽ giải thích cách để giải các bài Vault-door được viết dưới dạng .java. Để giải được các bài này chỉ cần có kiến thức cơ bản về java language thì mọi thứ sẽ khá là đơn giản.

alt text

#Vault-door-1#

alt text

NOTE

Trước đây sẽ có 2 bài nữa là vault-door-0vault-door-2. Nhưng vì một lí do nào đó thì chúng bị xóa đi - có vẻ là do quá dễ để được coi là Reverse Engineering.

Bắt đầu với vault-door-1 thì ta có một đoạn in flag (Thứ mình sẽ bỏ qua) và một đoạn check_password. Ta có thể phân tích từ đây

alt text

Nhìn vào thì có lẽ ta đã có flag trong đầu rồi nhưng khá vất vả khi chúng bị xáo trộn chứ không được theo như thứ tự ban đầu.

Bạn có thể chọn viết tay - nhưng bài này mình sẽ chọn viết bằng script python.

Sử dụng list của python để nhằm phục vụ cho việc sắp xếp nhanh hơn. Ta sẽ cho các dòng password theo dạng sau:

  • flag[0] = ‘a’
  • flag[1] = ‘b’
  • flag[32] = ‘c’

alt text

Sau khi viết xong nó sẽ có dạng như sau:

flag = [None] * 32
flag[0]  = 'd' 
flag[29] = '9' 
flag[4]  = 'r' 
flag[2]  = '5' 
flag[23] = 'r' 
flag[3]  = 'c' 
flag[17] = '4' 
flag[1]  = '3' 
flag[7]  = 'b' 
flag[10] = '_' 
flag[5]  = '4' 
flag[9]  = '3' 
flag[11] = 't' 
flag[15] = 'c' 
flag[8]  = 'l' 
flag[12] = 'H' 
flag[20] = 'c' 
flag[14] = '_' 
flag[6]  = 'm' 
flag[24] = '5' 
flag[18] = 'r' 
flag[13] = '3' 
flag[19] = '4' 
flag[21] = 'T' 
flag[16] = 'H' 
flag[27] = '5' 
flag[30] = '2' 
flag[25] = '_' 
flag[22] = '3' 
flag[28] = '0' 
flag[26] = '7' 
flag[31] = 'e';

print("picoCTF{" + ''.join(flag[i] for i in range(32)) + "}")'

Vậy là giải quyết được phần sắp xếp và viết tất cả trong một dòng code duy nhất ^_o.

Flag: picoCTF{d35cr4mbl3_tH3_cH4r4cT3r5_75092e}

PicoCTF Reverse Challenge - Vault Door 1 - 6.
https://stewmalwarehunter.id.vn/posts/vaultdoor-1-6/vault_door/
Author
Stew
Published at
2025-07-26
License
CC BY-NC-SA 4.0