【CTF-Reverse】花指令

 参考自(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脚本清除

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LeeOrange_13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值