我是靠谱客的博主 多情裙子,这篇文章主要介绍【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脚本清除

最后

以上就是多情裙子最近收集整理的关于【CTF-Reverse】花指令花指令是啥?有哪些分类?如何解决?的全部内容,更多相关【CTF-Reverse】花指令花指令是啥?有哪些分类?如何解决内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部