在编写加壳软件时,必须遵守栈平衡原理。将整个外壳作为一个函数或子程序来理解,执行前后遵守栈平衡原理,当其跳转到OEP时,esp的值不会变,这就是esp定律。可利用这一特性找到部分加壳软件的OEP。
流程
pushad
push rbx
upx壳跳转oep指令的附近可以找到全局唯一的特征指令。32位搜指令 popad64位搜指令 sub rsp,0xFFFFFFFFFFFFFF80搜到对应指令,下面的第一条jmp就是跳转到oep
popad
sub rsp,0xFFFFFFFFFFFFFF80
[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课
upx壳,加载后,往下翻,好像可以直接看到jmp oep
6otest upx壳,加载后,往下翻,好像可以直接看到jmp oep
你自己都说esp定律了,64位也是一样的道理
xiaohang 你自己都说esp定律了,64位也是一样的道理