暑期CTF练习——第四周
程序员文章站
2022-06-28 09:35:03
攻防世界reverse进阶区elrond32下载后查壳无壳,ida打开没有看到main函数,shift+F12查找字符串红框中的是“数据访问权限”和“拒绝访问”,跳转过去查一下交叉应用mov一下,F5反编译查看伪代码出现了一个条件判断,判断过后分别指向不同的,先看下第三行的sub_8048414函数ASCII码转换后可以看到对a2进行switch选择,通过a1来找a2a1=[105,115,101,110,103,97,114,100]返回看一下sub_8048538函数...
攻防世界reverse进阶区elrond32
下载后查壳
无壳,ida打开
没有看到main函数,shift+F12查找字符串
红框中的是“数据访问权限”和“拒绝访问”,跳转过去
查一下交叉应用
mov一下,F5反编译查看伪代码
出现了一个条件判断,判断过后分别指向不同的,先看下第三行的sub_8048414函数
ASCII码转换后可以看到对a2进行switch选择,通过a1来找a2
a1=[105,115,101,110,103,97,114,100]
返回看一下sub_8048538函数
memcpy指的是C和C++使用的内存拷贝函数,这里把unk_8048760拷贝给v2,看一下unk_8048760
这是v2,再看一下后面的for循环语句
是将v2中的每一个值和a1 + i % 8进行异或并取字符
编写脚本
key=[105,115,101,110,103,97,114,100]
v2=[0x0F,0x1F,0x04,0x09,0x1C,0x12,0x42,0x09,0x0C,0x44,0x0D,0x07,0x09,0x06,0x2D,0x37,0x59,0x1E,0x00,0x59,0x0F,0x08,0x1C,0x23,0x36,0x07,0x55,0x02,0x0C,0x08,0x41,0x0A,0x14]
a=''
for i in range(33):
a+=chr(v2[i]^key[(i%8)])
print(a)
flag是:flag{s0me7hing_S0me7hinG_t0lki3n}
本文地址:https://blog.csdn.net/AlienEowynWan/article/details/107608512