开发学院网络安全黑客技术 脱壳基础知识入门 阅读

脱壳基础知识入门

 2007-01-14 20:15:39 来源:WEB开发网   
核心提示: 第六课寻找OEP一般的压缩壳,如Aspack等都有专用的脱壳机,脱壳基础知识入门(8),而加密壳(如ASProtect,Armadillo)一般很少有脱壳机,必须手工脱壳,方法是开个DOS窗口,用命令upxnotepad.exe,手工脱壳一般情况是分三步:一是查找程序的真正入口点(OEP)

第六课寻找OEP 

一般的压缩壳,如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加壳的Win98记事本来演示。首先用PEid查看加壳前的记事本:

PEid显示Notepad.exe程序是用MicrosoftVisualC++6.0编译的,接下来用UPX来加壳,方法是开个DOS窗口,用命令upxnotepad.exe。如下图所示:

这时再用PEid查看加壳的文件,PEid会给出如下信息:UPX0.89.6-1.02/1.05-1.24->Markus&Laszlo

上一页  3 4 5 6 7 8 9 10  下一页

Tags:脱壳 基础知识 入门

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接