【NSSCTF逆向】【2023题目】《patchme》
前段时间在忙开学和协会的事情,逆向也停了些,去玩了玩pwn,近期再起航
题目 patchme
解法
刚拿到这道题的时候有点蒙,一道逆向题目还让我去补漏洞吗。。。不太明白,反正惯例看看
elf文件,放到kali里面看看
应该是修补好漏洞之后就会出flag。
进来看到这样的,因为最近学了一段时间pwn,知道gets会存在栈溢出,printf的格式化字符串漏洞,但说实话,我不晓得怎么修。。
就卡出了,然后去网上找wp看。看到一个思路,跟着这个思路做了做
其实在这里面藏了个预处理的函数点进去看看
进去之后很明显的有一个protect,网上看了看,是linux当中的一个文件权限保护函数,保护后面箭头所指的区域,然后在后面的区域进行了一个异或,我猜测是把smc当中加密的部分给解密出来。
点进去看看
乱七八糟的,用idapython解个密
解完密再按c重新分析一下
再创建个函数,f5就可以了
加密过程就出现了,但是还要注意,里面是一个字一个字加密,ida反编译把他变成了数组,才会出现5个元素,却反复46遍的问题
所以脚本就这么写
但是。。。还是不晓得怎么修啊,看了官方wp,要写在eh_frame,跳转到这个位置,然后再跳出去,途中还要注意寄存器传参
今天有点晚了,明天再看吧