Reverse 迷失之门
迷失之门 writeup解题思路
打开题目是一个压缩包解压后是一个.exe程序
- 按照做题顺序第一步查壳发现并没有壳
- 将其拖入ida中进行查看
- 使用shift+F12进行字符串查看
- 发现flag字符了我们双击它
- 将光标移动到yes哪里右击空白地方打开交叉索引并按F5进行反汇编发现下面代码
6.将其里面的数字换成对应的ASCII
根据上面的代码我们可以知道a1是一个指向字符数组的指针,它作为参数传递给check_2函数。这个函数通过逐个访问a1指针所指向的字符数组来检查字符串的内容。
所以Result= FSBBhKO3debTnJPpbiaWUWVViC6
- 接下来到了查看main函数
在main函数中我们发现了cheak关键字双击进入发现里面的代码对a1进行循环,然后在放到check2当中根据以上信息,我们进行编写脚本进行解密
v16 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
v10 = "abcdefghijklmnopqrstuvwxyz"
v4 = "0123456789+/-=!#&*()?;:*^%"
v3 = "DABBZXQESVFRWNGTHYJUMKIOLPC"
result = "FSBBhKO3debTnJPpbiaWUWVViC6"
flag = []
for k in range(len(result)):
for i in range(33, 127):
if i - ord(v3[k]) > 0:
v22 = i - ord(v3[k])
if v22 > 25:
if v22 > 51:
v1 = v4[v22 - 52]
else:
v1 = v10[v22 - 26]
a1 = v1
else:
a1 = v16[v22]
if a1 == result[k]:
print(chr(i), end="")
最后得出flag为ISCC{b_|ptae~WV}c{dkaa^dnR}