normal32(普通的动调和流程判断)

多次敲击f5有惊喜

应该是第一次解析不完整

毕竟原汇编不止这么一点

异或和密钥

进入加密,这里先生成一个Data数组

此处的v26[25]就是之前的Data,v24+v25-4就是存放加密后的数据的位置

用xor 过的数据和data异或

得出结果

写脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

import struct
key1=[0xCA3E0C86, 0x19AED798, 0xA66B77E2, 0xB077A16A, 0x05379169, 0x307BF97A, 0x104B5A43, 0x28D47D86]
key='SWPU_2019_CTF'
data=[0xF80F37B3, 0x5DAEBCBC, 0x864D5ABA, 0xD3629744, 0x1624BA4F, 0x1A729F0B, 0x266D6865, 0x67C86BBA]
temp=''
flag=''
for i in range(len(data)):
data[i]^=key1[i]
for a in range(len(data)):
temp+=str(struct.pack("<L",data[a]),encoding='utf8')
print(temp)
for x in range(len(temp)):
flag+=chr(ord(temp[x])^ord(key[x%len(key)]))
print(flag)