参考自(5条消息) CTF逆向基础----花指令总结_非著名不专业Re选手的博客-CSDN博客_c++ 花指令
本文仅仅属于个人学习笔记,以便知识体系化
花指令是啥?
1.垃圾指令,不影响程序逻辑,用以增加静态分析的难度。
2.花指令也可以被用在病毒或木马上,通过加入花指令改变程序的特征码,躲避杀软的扫描,从而达到免杀的目的
有哪些分类?
会被执行的花指令and 不会被执行的花指令
int main()
{
example{
xor eax,eax;
jz label1;
huazhiling;
huazhiling;
huazhiling;//花指令
label1:
}
return 0;
}
a:(不会被执行)花指令是操作码,花指令后面原本的机器码会被误认为操作数,从而导致反汇编解析错误
b:(不会被执行)花指令是平衡堆栈的代码,ida解析时,会由于该指令是堆栈操作而认为对战不平衡,使得F5失效
c:(会被执行)花指令是正常的汇编指令,可以改变堆栈操作,但不会改变原来程序的堆栈寄存器,但是能起到干扰静态分析的作用。示例:
int main()
{
example{
push eax;//32位下,push eax 分为两个步骤:1:esp-=4;2:mov [esp],eax
add esp,4;//正常情况下,push要对应pop来保持堆栈平衡,但是这里是add,即使使得平衡,但ida识别不出,从而产生花指令
}
return 0;
}
d:(会执行)利用call增加复杂度。call执行是会向堆栈中压入返回地址,可以修改返回地址配合ret跳转到任意地方。参考2018网鼎杯_give_a_try:
如何解决?
对于ab:可手动解决:参考这个大佬的花指令解决方式[原创]某春秋平台22年赛题CTF逆向题-Random - 『脱壳破解区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
idc脚本清除
最后
以上就是多情裙子最近收集整理的关于【CTF-Reverse】花指令花指令是啥?有哪些分类?如何解决?的全部内容,更多相关【CTF-Reverse】花指令花指令是啥?有哪些分类?如何解决内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复