欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

暑期CTF练习——第四周

程序员文章站 2022-03-06 15:57:15
攻防世界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

下载后查壳
暑期CTF练习——第四周
无壳,ida打开

没有看到main函数,shift+F12查找字符串
暑期CTF练习——第四周
红框中的是“数据访问权限”和“拒绝访问”,跳转过去
暑期CTF练习——第四周
查一下交叉应用
暑期CTF练习——第四周

mov一下,F5反编译查看伪代码
暑期CTF练习——第四周
出现了一个条件判断,判断过后分别指向不同的,先看下第三行的sub_8048414函数
暑期CTF练习——第四周
ASCII码转换后可以看到对a2进行switch选择,通过a1来找a2

a1=[105,115,101,110,103,97,114,100]

返回看一下sub_8048538函数
暑期CTF练习——第四周
memcpy指的是C和C++使用的内存拷贝函数,这里把unk_8048760拷贝给v2,看一下unk_8048760
暑期CTF练习——第四周
这是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