• ESP定律脱壳


       ESP定律是比较常用的脱壳方式,作为新手用的也比较多简单写一下我的看法。

      esp定律的使用过程大致为:

        1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色),并且只有sp和ip为红色。

        

        2.Command窗口中输入dd 0012FFA4 后回车,跟随esp寄存器后的地址。

        3.选中下断的地址,断点--->硬件访--->WORD断点

        4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP(程序入口)

      花了很长时间理解了一下原理,简单谈一下,可能有错。

    我们把壳理解为一个对程序进行压缩和解压的子程序,相当于调用call指令:call xxxx,call指令遵循堆栈平衡,所以esp作为堆栈指针,程序前后入栈和出栈必须相同。

    可刚开始的程序:

    0040D000  60 pushad //注意这里ESP=0012FFC4(入栈)

    0040D001 E8 00000000 call ASPACK.0040D006 //ESP=0012FFA4
    PUSHAD就是把所有寄存器压栈!我们在到壳的最后看看:
    代码:
    0040D558 61 popad //ESP=0012FFA4(出栈)
    0040D559 75 08 jnz short ASPACK.0040D563 //注意这里ESP=0012FFC4

    我们在0012ffa4处设置下物理断点,壳在出栈时调用ESP=0012FFC4是截断。按下f8到达程序入口。

    适用范围:

    几乎全部的压缩壳,部分加密壳。只要是在JMP到OEP后,ESP=0012FFC4的壳,理论上我们都可以使用

      

  • 相关阅读:
    ch2_CaseStudy_CanonicalNASLScript.txt
    树形数据广度排序处理示例.sql
    编程管理SQL SERVER的帐号.sql
    索引影响查询结果顺序的示例
    校验表中数据是否有循环编码的通用存储过程.sql
    BackupAndRestoreSmallWorks.sql
    cPanel下安装GodaddySSL教程
    ExcludingRNG.cs
    SymmetricAlgorithmEvaluator.cs
    操作SQLSERVERAGENT服务的扩展存储过程.sql
  • 原文地址:https://www.cnblogs.com/hatkids/p/8886325.html
Copyright © 2020-2023  润新知