哔哔两句:不是没做题,实在是最近事情太多,有点忙,,做了也就存到电脑上了,趁现在安装vs,闲着也是闲着,更新一波。
6.攻防世界--新手区--simple-unpack
前面的话:这个题是个shabi题,明明说elf加壳了,ida还能打开(我后来看了看别人的wp,发现是有壳的,我是先改成exe,然后脱壳机脱,脱了之后查壳还是有壳,但是这时候ida打开就已经脱成功了,为什么会这样不清楚原理,kali命令直接脱就行),找main函数,直接打开就是。我还专门找了篇文章学习elf脱壳。
7.攻防世界--新手区--logmein
主要问题就出在了小端存储上,我还一直以为是哪里的逻辑没搞明白
数据在内存中是小端存储
v8 = 'harambe'
v9 = ':"AL_RT^L*.?+6/46'
v7 = 7
s = ''
for i in range(len(v9)):
s=chr(ord(v8[i%v7])^ord(v9[i]))
print(s,end='')
8.攻防世界--新手区--no-strings-attached
gdb动态调试(b decrpy),直接eax查看(x/6sw $eax)就可以
9.攻防世界--新手区--getit
直接逆就行,
s = 'c61b68366edeb7bdce3c6820314b7498'
s1 = list(s)
t = 'harifCTF{????????????????????????????????}'
f = ''
v5 = 0
for i in range(len(s)):
if i&1:
v3 = 1
else:
v3 = -1
f+= chr(ord(s1[i])+v3)
print("harifCTF{"+f+"}")
重点是S,idaF5的时候,没有把S反汇编出来,需要自己还原。
第三部分是一个把flag写入文件的操作。(学习一下对文件怎么操作)
10.攻防世界--新手区--csaw2013reversing2
解题方法:
-
跳到函数,从函数再跳到显示flag的框
攻防世界re:csaw2013reversing2_Lk k k的博客-CSDN博客_csaw2013reversing2
-
dll注入(目前不会,会了回来复现)
11.攻防世界--新手区--maze
看题目:迷宫题,找迷宫(字符串视图有),看看是不是正方形迷宫,输出一下字符串长度,发现是8*8迷宫,手动画出迷宫来
str = ' ******' \ '* * *' \ '*** * **' \ '** * **' \ '* *# *' \ '** *** *' \ '** *' \ '********'
自己走出来即可:
#右下右右下下左下下下右右右右上上左左 #121122322211114433
这里我只分出来了O(左或上),o(右或下),0(右或下),.(左或上),只需实验几次就可以得出flag
str1 = '121122322211114433'
str2 = list(str1)
for i in range(len(str2)):
if str2[i] == '1':
str2[i] = 'o'
if str2[i] == '2':
str2[i] = '0'
if str2[i] == '3':
str2[i] = 'O'
if str2[i] == '4':
str2[i] = '.'
print("nctf{" + ''.join(str2) + "}")