
ctf逆向wp
文章平均质量分 62
L4ncer_0rz
全速前进
展开
-
[FlareOn4]greek_to_me 题解
注意:python3无法发送字符类型信息,而转成byte类型又无法大于128。所以必须使用python2。下面是一段混乱的代码,上面v2取了40107c的地址,在下面异或加密,判断为smc。监听本地127.0.0.1 2222端口,接受一个char类型的参数buf。程序直接执行结束,显示失败字样。参数为v3,查看参数来源。循环后下断点,手动c分析。32位无壳,ida打开。试着打开程序发送一下。更改脚本遍历所有情况。原创 2023-12-19 17:21:09 · 415 阅读 · 1 评论 -
[SUCTF2019]Akira_Homework 题解
这是笔者近期做的比较难的一道题,学到很多东西,写下wp模拟一下当时的思路。原创 2023-12-22 20:56:03 · 1211 阅读 · 0 评论 -
[XNUCA2018]Code_Interpreter 题解
7是mov,8也是mov,9是xor,10是or,default检查操作码是不是位于0-10,否则退出。打开code文件后将内容读入ptr,然后读入三个数字做处理。开头将三个数字读入outnum数组,并设置了三个值来操作数据。题目给了两个文件,一个是机器码,用vs打开。十个case,不同的运算,明显的vm特征。3,4,5,6分别是加减乘和向右的位运算。根据判断函数,式子的结果应该等于0。64位文件,无壳,直接ida启动。(这是我改过名后的样子,方便看)不知道在干嘛,看另一个程序。case2是简单的下标--原创 2023-12-10 00:09:49 · 486 阅读 · 1 评论 -
buuctf Dig the way 题解
我们能不能通过第二个函数|x+y|-|x|-|y|+2来得到0呢,巧妙的是,我们可以通过第一个函数交换两个函数指针所指向的函数(在栈上可以看出,函数2,3分别对应v8[7],v8[8])从而实现构造0。|x|+|y|+2-|x+y|这个式子当x,y大于零时,恒等于2。观察函数,发现在第三次循环时,赋值的对象是v8[3],超出了v8的范围,观察数据,发现v8[3]正好为v9。按照正常逻辑,第三次循环的函数返回值是|x|+|y|+2-|x+y|,这个式子恒大于0。可能猫腻出在上面的加密里,看一看循环的逻辑。原创 2023-12-12 11:29:11 · 473 阅读 · 0 评论 -
BUUCTF [SCTF2019]creakme 题解
这个函数是void类型,但是在反调试函数后有一个return,这会导致程序异常。有aes加密,追踪一下,发现是sub_4020d0内进行加密,base64在aes里。没法反编译,看汇编吧。v3+=40后变成了.sctf,继续在数据段往下看看,+=40后是.data 可见是数据段的名字。异或在取反,这里笔者本来想patch掉反调试函数后自动解密,不知为何patch后一片飘红。GetModuleHandleW函数返回指定模块的句柄,进入402320看看。这段代码是设置函数的栈帧和设置数据,为异常调试做准备。原创 2023-12-04 17:28:53 · 575 阅读 · 0 评论 -
[GWCTF 2019]babyvm 详解 (vm逆向 IDA结构体)
这是笔者做的第一道vm题,虽然相较于同类题题面很简单,但是在过程中收获了很多。原创 2023-11-27 19:04:18 · 1305 阅读 · 1 评论