首页
社区
课程
招聘
[原创]CTF竞赛中常见花指令解决方法
发表于: 2024-8-27 19:46 5769

[原创]CTF竞赛中常见花指令解决方法

2024-8-27 19:46
5769

本文简单介绍花指令的原理以及出现原因,只对CTF中出现的花指令情况进行分析以及讲解如何去修复。

常见花指令

image-20221020154620283

花指令特点:调用未知函数。

解决方案:先选中,d(将代码转为数据),然后选中刚刚d的那一行nop掉,然后在下一行,c(转成code)

原理:红色的这一条影响了ida的分析,跳过红色的这一行代码,将下面的数据转成代码

image-20221020154829993

这其实不能算是花指令,这是花指令对函数带来的影响

解决方案:去除这个endp,选中,edit-->functions-->delete functions,然后选中整个函数,p

原理:花指令的存在导致ida错误判断函数结束,删除整个函数,然后重新选择代码转成函数。

image-20221031191500172

花指令特点:jmp跳的位置是下一个

解决方案:d,把第一个nop掉,剩下的c

本文所用题目已忘记属于什么比赛,如有侵权,请联系删除

链接: https://pan.baidu.com/s/1JWVnw4RSsNtQcdJ10Vu0Jw 提取码: cuqn
--来自百度网盘超级会员v6的分享

1.查壳,upx壳,脱壳
2.

image-20221012205639464

报错,发现jnz跳到了下一条指令,说明这是加花了,把jnz下面的call的第一位(E8) nop掉,然后选中主函数直接转换为函数(p)。

image-20221012210554566

main函数

image-20221012210650559

根据题目这是一个maze题目,adsw控制运动,只需要找出迷宫即可

image-20221012210803281

走迷宫即可

迷宫需要自己做一下还原

flag{ssaaasaassdddw}

image-20221031171607471

进来就是红的,应该是有花指令,往下看看,先改花指令。

image-20221031172201201

image-20221031191638253

在这里,jmp花指令

先U掉jmp,可以确定第一个是混淆的,将第一个nop掉,把剩下的分块转换成code(不要一起选中转换)。

image-20221031192349535

只修出来了个大概,根据case d和case s实现的功能,可以猜测case a和case w实现的功能,应该是不碰到#就一直运动,两个byte_4030正好可以组成迷宫。

image-20221031191313178

dsasdwds

flag{f71516bdf07abd7bc0668db9d6352364}


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 2
支持
分享
最新回复 (1)
雪    币: 189
活跃值: (126)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
思路清晰,谢谢分享,要是有相关工具分享就好了。
2024-10-12 09:23
0
游客
登录 | 注册 方可回帖
返回
//