首页
社区
课程
招聘
[原创]CTF赛题-PC逆向之异常处理
发表于: 2020-7-26 10:24 7913

[原创]CTF赛题-PC逆向之异常处理

2020-7-26 10:24
7913

本篇文章通过一到看雪签到CTF试题来进行pc逆向,通过练习规范化自己的解题步骤提炼出自己的解题流程。

涉及到知识点:

并且解题过程中需要对md5算法了解一哈,要不然只能用猜的了。

解题

分析赛题,找到赛题中隐藏的flag

运行程序找到输出的中文字符,也可以用通用的字符sucess等

1568801686279

接着搜索字符串,利用交叉引用找到关键函数

1568802009917

由于堆栈不平衡引起F5大法失败,网上有很多解决方法,参考【1】,先开启栈指针、然后将报错位置的上一条指令的栈指针设置为对应的值,依次往下直到让返回地址的栈指针值为000

1568802199036

根据命令行的输出内容可以判断sub_401410是输出函数,sub_401410应该是获取用户输入的函数。

但是从伪代码中并未看见sucess这样的返回字符。

1568802690523

查看当前函数的汇编代码,可以看见sucess字符出现在除0异常处理函数中,F5大法并未生成对应的伪代码。那么现在需要找到函数中哪里有除法运算(DIV)

1568802982501

继续在汇编代码中找DIV指令,伪代码中并未显示除法运算。

如果要满足除0异常也就是要esi寄存器的值为0,往上看可以看见只要eax的值等于esi的值就可以让esi的值为0

1568803714857

上面第一个红框内关于esi赋值的伪代码。输入的每一个字节经过运算后相加。

1568804884649

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 499
活跃值: (2184)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
2
要是同有题目附件就好了  我们还能同步练习一下
2020-7-26 21:27
0
雪    币: 8395
活跃值: (4951)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
3
Zard_ 要是同有题目附件就好了 我们还能同步练习一下[em_71]
题目:https://ctf.pediy.com/game-season_fight-102.htm
2020-7-27 00:57
0
游客
登录 | 注册 方可回帖
返回
//