ESP定律原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。疫情期间闲着也是闲着,在逆向某软件时深入了解了下ESP定律,然后就想写个文章记录并分享下。相当于高级语言中的函数调用。 当执行call指令时,进行两步操作: 将下一条的指令的地址压入栈中,再跳转到该地址处。 相当于:这是我写的一个带壳的32位小程序,用来当做esp定律应用的一个示例。这是一个比较机械的方法,但可以对esp定律有一个感性的免费云主机域名认识。首先用Exeinfo Pe查壳,发现是nspack壳。接下来用od载入程序,单步步入后,如箭头所示发现ESP寄存器变红。此时单击右键选中该寄存器进行数据窗口跟随。然后选中数据窗口任意字符下硬件断点(byte,word,dword均可)。f9运行后,f8连续单步步过找到OEP( 程序的入口点 )。选中该地址单击右键选中用OllyDump脱壳调试进程,然后进行脱壳(如果发现程序不能打开,可以试试勾选重建输入表)。接着用Exeinfo Pe查壳,壳已经被去掉了。首先,壳实质上是一个子程序,它在程序运行时首先取得控制权并对程序进行压缩。 同时隐藏程序真正的OEP。大多数病毒就是基于此原理,从而防止被杀毒软件扫描。壳的类型:而脱壳的目的就是找到真正的OEP(入口点)。而我们所讲到的ESP定律的本质是堆栈平衡,具体如下:让我们看下加了壳的这个小程序的入口的各个寄存器的情况然后是到OEP时各寄存器的情况我们发现只有EIP和EAX寄存器的数值发生了变化,而EAX保存的是OEP的地址,这是什么原因呢?我自己总结了一个比较小白的方法,那就是载入程序后只有esp寄存器内容发生变化,那么这个程序多半可以用ESP定律(如有错误多谢指正)。几乎全部的压缩壳, 一些早期的加密壳 (这是在网上收集到的资料总结的,经过我自己的实践,基本准确)。看完上述内容,你们掌握ESP定律原理是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注云编程开发博客行业资讯频道,感谢各位的阅读!
相关推荐: Cisco UBR10012使用DRL保护cpu,防止high cpu问题
Cisc免费云主机域名o UBR10012在日常维护的过程中出现high cpu问题,经检查是DHCPD Receive进程占用过高。说明设备受到了过量的DHCP报文,为避免影响正常业务流量,配置DRL(Divert Rate Limit)对UBR10012的…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。