高校战“疫”网络安全分享赛Re:天津垓WP

复现题

我下载的时候这个题缺了个dll,补上后运行下程序,观察。
在这里插入图片描述
需要输入授权字符串。拖入IDA查看,查看字符串,发现有限制调试工具的代码,解除。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找到第一个输入点。需要输入符号位运算的合法输入,写个脚本破解,如下:

str = [0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x48, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x21]
arr = [17, 8, 6, 10, 15, 20, 42, 59, 47, 3, 47, 4, 16, 72, 62, 0, 7, 16]

flag = ''
for i in range(18):

    for j in range(127):
        v43 = ~(j & str[i % 14]) & (j | str[i % 14])
        if v43 == arr[i]:
            flag += chr(j)
print(flag)

得到结果:
在这里插入图片描述
输入验证后发现程序直接退出了。
在这里插入图片描述
接着往下看,发现text代码段有一段数据,没有解析为指令。
在这里插入图片描述
使用IDA分析下看看,没有解析成功,应该是人为加密了。用交叉引用查哪里曾经调用了这段代码。发现有段汇编call了那段数据,说明是个函数。此处查看下伪代码,找到了一个加密数据的函数。
在这里插入图片描述
这个函数调用了一个win32API,而根据微软msdn中给出的描述,这个API的作用是指定某段区域设置访问保护,然后这个函数紧接着对保护区域与输入进行异或以加密。
我们只需要对保护区域的数据进行解密即可用IDA分析得到保护区域的原数据,也就是汇编指令。
在这里插入图片描述
参考大佬的脚本后发现,可以直接用IDAPython的API进行操作,实在是太方便了。脚本如下(必须要在IDA中跑):

input =[67, 97, 117, 99, 97, 115, 117, 115, 64, 115, 95, 97, 98, 105, 108, 105, 116, 121]
for i in range(1045):
    address = 0x10040164D + i
    byte = get_bytes(address, 1)#IDApythonAPI,作用是获取指定地址的指定字节数
    byte = ord(byte) ^ input[i%18]
    patch_byte(address, byte)#IDApythonAPI,更改指定地址的字节为byte

分析解密的数据段,并创建函数,查看伪代码。
在这里插入图片描述
上图红框同样和第一次输入时做了类似的事情。写个逆向脚本破解即可,如下:

data = [
2007666,
2125764,
1909251,
2027349,
2421009,
1653372,
2047032,
2184813,
2302911,
2263545,
1909251,
2165130,
1968300,
2243862,
2066715,
2322594,
1987983,
2243862,
1869885,
 2066715,
 2263545,
 1869885,
 964467,
 944784,
 944784,
 944784,
 728271,
 1869885,
 2263545,
 2283228,
 2243862,
   2184813,
   2165130,
   2027349,
 1987983,
2243862,
1869885,
2283228,
2047032,
1909251,
2165130,
1869885,
2401326,
1987983,
2243862,
2184813,
885735,
2184813,
2165130,
1987983,
2460375]

v61 = 0x4CE3
v62 = 0x8000000B
flag = ''
for i in range(51):
    for j in range(127):
        v60 = v61 * j % v62
        if v60 == data[i]:
            flag += chr(j)
print(flag)

运行获得flag
在这里插入图片描述

flag{Thousandriver_is_1000%_stronger_than_zero-one}

发布了19 篇原创文章 · 获赞 2 · 访问量 2537

猜你喜欢

转载自blog.csdn.net/SC_king/article/details/104909821