用堆栈平衡定律脱壳【附图】
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_1.jpg)
用PEiD查壳,看【图1】
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_2.jpg)
用OD载入,【图2】,注意ESP的值变化
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_3.jpg)
F8单步,来到这,看见ESP值变化,在命令窗口中输入【图3】
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_4.jpg)
继续F8,单步,走到我们想到的地方【图4】
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_5.jpg)
现在到了OEP了,接下来脱壳【图5】
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_6.jpg)
看清【图6】,记下修正值,如果程序需要修复要用到这个值
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_7.jpg)
用PEiD查看已经脱壳的程序【图7】
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_8.jpg)
用修复软件,先运行没有脱壳的程序,然后选中他的进程【图8】
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_9.jpg)
输入【图6】中记下的OEP,点击自动搜索TAT,【图9】
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_10.jpg)
获取输入表【图10】,看见输入表函数都是有效的。
![](https://p-blog.csdn.net/images/p_blog_csdn_net/qingye2008/342576/o_11.jpg)
抓取需要修复的程序【图11】