-
-
[原创]CTF竞赛中常见花指令解决方法
-
发表于:
2024-8-27 19:46
5769
-
本文简单介绍花指令的原理以及出现原因,只对CTF中出现的花指令情况进行分析以及讲解如何去修复。
常见花指令
花指令特点:调用未知函数。
解决方案:先选中,d(将代码转为数据),然后选中刚刚d的那一行nop掉,然后在下一行,c(转成code)
原理:红色的这一条影响了ida的分析,跳过红色的这一行代码,将下面的数据转成代码
这其实不能算是花指令,这是花指令对函数带来的影响
解决方案:去除这个endp,选中,edit-->functions-->delete functions,然后选中整个函数,p
原理:花指令的存在导致ida错误判断函数结束,删除整个函数,然后重新选择代码转成函数。
花指令特点:jmp跳的位置是下一个
解决方案:d,把第一个nop掉,剩下的c
本文所用题目已忘记属于什么比赛,如有侵权,请联系删除
链接: https://pan.baidu.com/s/1JWVnw4RSsNtQcdJ10Vu0Jw 提取码: cuqn
--来自百度网盘超级会员v6的分享
1.查壳,upx壳,脱壳
2.
报错,发现jnz跳到了下一条指令,说明这是加花了,把jnz下面的call的第一位(E8) nop掉,然后选中主函数直接转换为函数(p)。
main函数
根据题目这是一个maze题目,adsw控制运动,只需要找出迷宫即可
走迷宫即可
迷宫需要自己做一下还原
flag{ssaaasaassdddw}
进来就是红的,应该是有花指令,往下看看,先改花指令。
在这里,jmp花指令
先U掉jmp,可以确定第一个是混淆的,将第一个nop掉,把剩下的分块转换成code(不要一起选中转换)。
只修出来了个大概,根据case d和case s实现的功能,可以猜测case a和case w实现的功能,应该是不碰到#就一直运动,两个byte_4030正好可以组成迷宫。
dsasdwds
flag{f71516bdf07abd7bc0668db9d6352364}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!