- 博客(11)
- 收藏
- 关注
原创 陇原战”疫“findmeWP
陇原战”疫“findmeWP 进入IDA 发现只是判断了长度还和一个字符串进行比较,很明显第一个函数另有玄机,进入sub_4024E0查看。 sub_4024E0 发现这里面利用函数表(不知道叫什么名)执行了两个函数,其中一个函数把之前看到的指向strcmp的指针修改到了真正的验证函数那里,这样我们就找到了真正的逻辑sub_401866。 sub_401866 可以看到传进来的SETCTF2021被变换成了一个256长的串,并和输入一起进入一个函数加密,加密后的串和一个数组比较。但是这里有个问题,最后
2021-11-08 19:58:21 146
原创 陇原战“疫”EazyReWP
陇原战“疫”EazyReWP 吐个槽: 晚了半个小时左右开始打的比赛,eazyre已经被20多解出了,最后二百多解出,然后下午放了个只改了一个数据的EasyRE_Revenge,不到20解出,emmm,不想说啥。 进入IDA 发现读入input后进行了一个加密操作得到一个新的串和目标串比较,所以进入sub_311406查看。 sub311406 进行一次函数跳转后到了这个函数,发现栈帧有异常,看了半天也没看出来这是做了什么操作,但可以肯定的是一定通过这些奇怪操作让函数执行到了其他地方,于是这里我选
2021-11-08 19:30:34 183
原创 攻防世界流浪者WP
题目来源:https://adworld.xctf.org.cn/task/answer?type=reverse&number=4&grade=1&id=5570&page=2攻防世界流浪者 运行程序发现让你输入password。拖入IDA利用字符串搜索找到主要部分仔细观察可以发现,先进行了一次变换,将0到9,a到z,A到Z,映射到了0到61,然后再进行第二次变换,利用一个表进行对应变换,最后和目标字符串进行比较,总体比较简单。给出代码: key="abcdefghiABC
2021-01-11 13:07:52 225
原创 攻防世界elrond32WP
题目来源:https://adworld.xctf.org.cn/task/answer?type=reverse&number=4&grade=1&id=4750&page=1攻防世界elrond32 检查文件类型发现这居然是个elf32的文件。有点罕见。 拖进IDA直接进入main函数思路非常清晰,通过main函数传参的方式进行输入,然后就是一个套了递归的检验,容易得知我们的输入应该是isengard。不过这题却是elf32类型无法调试(或单纯我无法调试),所以只能去看f
2021-01-11 12:39:33 188
原创 攻防世界hackmeWP
题目来源:https://adworld.xctf.org.cn/task/answer?type=reverse&number=4&grade=1&id=4881&page=1攻防世界hackme 拖入IDA利用字符串搜索找到主要部分 可以看出这个dowhile循环是主要的难点,sub_406D90难以看懂(IDA显示可能不一样)。但实际上可以发现,v6无论是什么,对于输入和目标都是一样的,v6具体是什么其实是可以忽略的。只需要直接进行逆向就可以了。 给出代码: goal=
2021-01-11 12:08:42 231
原创 纵横杯mosaicWP
题目来源https://race.ichunqiu.com/competition?k=Xj9SZAs0UGABe1Y4UDtQMwtoBWNePVBlBG0DZwJlBjAFb1psXWcGNQY3VmRTbg%3D%3D纵横杯马赛克 下载下题目发现是一张涂满马赛克的的图片,根据解题人数我猜测这题可做,于是上网搜了一下怎样还原马赛克。然后发现居然有一个叫Depix的工具:https://github.com/beurtschipper/Depix下载下来使用即可得到flag 使用方法:命令行输入pytho
2020-12-27 21:35:37 345 2
原创 纵横杯babymaze1WP
题目来源:https://race.ichunqiu.com/competition?k=Xj9SZAs0UGABe1Y4UDtQMwtoBWNePVBlBG0DZwJlBjAFb1psXWcGNQY3VmRTbg%3D%3D纵横杯babymaze1 根据题目进行远程连接,发现直接跳出一个迷宫,手动走完之后提示用时太长,考虑写脚本进行搜索。给出关键函数代码: def dfs(s,x,y): if map[x][y]=='$': p.sendline(s) return
2020-12-27 21:21:26 1314 1
原创 攻防世界eazy_MazeWP
题目来源:https://adworld.xctf.org.cn/task/answer?type=reverse&number=4&grade=1&id=5586&page=2攻防世界eazy_Maze 拖入IDA后发现直接进入main函数,根据题目名称,得知这是一道迷宫题。迷宫题一般要求你走一段程序中的迷宫,输入一般是路径。这道题逻辑很好猜,通过赋初值和step0,step1进行了迷宫的构造,然后进行输入,再通过step2来进行check。那么进入step2 可以发现我们
2020-12-27 21:08:34 188
原创 eazytreeWP
题目来源:http://10.102.32.142:8000/challengeseazytree 拖入IDA查找字符串很轻易的可以进入main函数: 易知读入的input应是长度为10,由01234组成的字符串 如果你学过并熟悉二叉树,那么也应该很轻易的得出本题用input构建了一棵二叉树,然后将其中序遍历存在了a2a中——没学过也不要急,最后我再补充——然后将a2a填在了一个有空缺的数组中。最后进行check。check函数也很简单,就是让那个数组中的25个数五个一组分成五组,每组数字各不相同,然后各
2020-12-20 19:54:40 89
原创 eazyvmWP
题目来源:http://10.102.32.142:8000/challengeseazyvm 拖入IDA中可以把整体框架捋顺: 首先读入input,然后经历一系列变换最后check.结束条件是x==31 观察两个关键的变换函数,即图中两个没有重命名的函数,易得他们是交替进行的,第二个函数每次都让input指向了下一个字符,那么来看第一个函数。 注意a1是&x,而input的地址比x高4,input的类型是字符类型的指针,而比x地址高8的是一个int类型的计数器,用于记录变换了多少次。那么这个函数就
2020-12-20 19:21:38 125
原创 crazyWP
题目来源:https://adworld.xctf.org.cn/task/answer?type=reverse&number=4&grade=1&id=5509&page=3 攻防世界crazy 这题进去之后发现要求输入32长度的字符串,然后会提示第几位有错误,就想到了可以穷举。 先给出代码: from pwn import* key="!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[
2020-12-20 18:46:33 1005
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人