-
-
[原创]第一题流浪者WP
-
2019-3-16 09:44 2248
-
1.运行程序发现是提交密码。
2.用OD打开,Run到程序开始处,查看所有函数间相互调用
发现strlen,strcmp函数。果断下断点
3. 查看所有相关字符串发现
4.单步跟踪下去,发现对输入进行处理,将a-z 减去0x57,将0-9 减去ord(‘0’),将A-Z 减去0x1D,
5.继续跟踪,发现在strcmp 前,将第4步处理过的值当作索引,在字符串"abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ" 中取值代替。
6.最后将第五步的值与字符串 "KanXueCTF2019JustForhappy" 比较是否一致。
7.针对上述步骤,构成以下代码。找到序列号”j0rXI4bTeustBiIGHeCF70DDM”。
在原程序上进行验证,通过。提交。
Python代码如下。import requests
import string
import time
import re
charset="abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ"
flag="KanXueCTF2019JustForhappy"
low_min=ord('a')-0x57
low_max=ord('z')-0x57
num_min=ord('0')-ord('0')
num_max=ord('9')-ord('0')
up_min =ord('A')-0x1D
up_max =ord('Z')-0x1D
char=''
string=''
for c in flag:
i=charset.index(c)
if i in range(num_min,num_max+1):
char=chr(i+ord('0'))
elif i in range(low_min,low_max+1):
char=chr(i+0x57)
elif i in range(up_min,up_max+1):
char=chr(i+0x1D)
else:
char='\n'
string+=char
print(string)
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法