百度空间 | 百度首页 
 
查看文章
 
脱壳基础知识入门之寻找OEP
2009-06-16 03:07
一般的压缩壳,如Aspack等都有专用的脱壳机 。而加密壳(如ASProtect,Armadillo)一般很少有脱壳机,必须手工脱壳。手工脱壳一般情况是分三步:一是查找程序的真正入口点(OEP);二是抓取内存映像文件;三是输入表重建。(当然现在的加密壳复杂些,要考虑更多的东西)

  OEP是OriginalEntryPoint缩写,即程序加壳前的真正的入口点。

  外壳初始化的现场环境(各寄存器值)与原程序的现场环境是相同的。加壳程序初始化时保存各寄存器的值,外壳执行完毕,会恢复各寄存器内容。其代码形式一般如下:

  PUSHFD    ;将标志寄存器入栈保存
  
PUSHAD    ;pusheax,ecx,edx,ebx,esp,ebp,esi,edi
   ……     ;外壳代码部分
  
POPAD     ;popedi,esi,ebp,esp,ebx,edx,ecx,eax
  
POPFD     ;恢复标志寄存器
  
JMPOEP    ;
OEP:……     ;解压后的程序原代码

upx的壳直接寻找POPAD即可


类别:默认分类 | 添加到搜藏 | 分享到i贴吧 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
本篇日志被作者设置为禁止发表新评论

     

©2009 Baidu