⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap8-5-2.htm.primary

📁 加密与解密,软件加密保护技术与解决方案,看雪文档!
💻 PRIMARY
📖 第 1 页 / 共 2 页
字号:
<html>
<head>
<title>Crack Tutorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="style/css.css" type="text/css">
<link rel="stylesheet" href="../STYLE/Css.css" type="text/css">
</head>

<body bgcolor="white" text="#000000" link="#004080" vlink="#004080" background="../image/Back.gif">
<p><a href="../catalog.htm">目录</a>>>第8章</p>
<p align="center" class="shadow1Copy"><b class="p3">第8章 压缩与脱壳</b></p>
<table width="80%" border="0" cellspacing="0" cellpadding="3" align="center" bgcolor="#bcbcbc" bordercolor="#111111" class="shadow1">
  <tr> 
    <td class="shadow1" width="20%"> 
      <div align="center"><a href="Chap8-1.htm"><font color="#FFFFFF">第一节 PE文件格式</font></a></div>
    </td>
    <td class="shadow1" width="20%"> 
      <div align="center"><a href="Chap8-2.htm"><font color="#FFFFFF">第二节 认识脱壳</font></a></div>
    </td>
    <td class="shadow1" width="20%"> 
      <div align="center"><a href="Chap8-3-1.htm"><font color="#FFFFFF">第三节 自动脱壳</font></a></div>
    </td>
    <td class="shadow1" width="20%"> 
      <div align="center"><a href="Chap8-4.htm"><font color="#FFFFFF">第四节 手动脱壳</font></a></div>
    </td>
    <td class="shadow1" width="20%"> 
      <div align="center"><a href="Chap8-5.htm"><font color="#FFFFFF">第五节 脱壳高级篇</font></a></div>
    </td>
  </tr>
</table>
<p align="center"><span class="p9"><b>第五节 脱壳高级篇</b></span></p>
<table border="1" width="80%" cellpadding="5" bordercolor="#111111" bgcolor="#efefef" align="center" cellspacing="0">
  <tr> 
    <td width="33%" valign="middle" align="center" class="p9" height="23"> 
      <div align="left"><span class="p9"><span class="p9"> <span class="p9">1、<a href="Chap8-5-1.htm">认识Import表</a></span></span></span></div>
    </td>
    <td valign="middle" align="center" class="p9" height="23" width="34%"> 
      <div align="left"><span class="p9"><span class="p9"><span class="p9"> </span>2、<a href="Chap8-5-2.htm">Import表的重建</a></span></span></div>
    </td>
    <td valign="middle" align="center" class="p9" height="23" width="33%"> 
      <div align="left"><span class="p9"><span class="p9"> 3、<a href="Chap8-5-3.htm">IceDump和NticeDump使用</a></span></span></div>
    </td>
  </tr>
  <tr> 
    <td width="33%" valign="middle" align="center" class="p9" height="23"> 
      <div align="left"><span class="p9"><span class="p9"> <span class="p9"></span></span></span>4、<a href="Chap8-5-4.htm">Import 
        REConstructor使用</a></div>
    </td>
    <td valign="middle" align="center" class="p9" height="23" width="34%"> 
      <div align="left"><span class="p9"><span class="p9"><span class="p9"> </span>5、<a href="Chap8-5-5.htm">ASProtect保护</a></span></span></div>
    </td>
    <td valign="middle" align="center" class="p9" height="23" width="33%"> 
      <div align="left"><span class="p9">  </span></div>
    </td>
  </tr>
</table>
<p align="center"><b>2、<span class="p9"><span class="p9"><span class="p9">Import表的重建</span></span></span></b></p>
<blockquote>
  <p><span class="p9">标题:重建 PE 文件的输入表</span></p>
  <p><span class="p9">原著:TiTi/BLiZZARD</span></p>
  <p><span class="p9">翻译:Sun Bird [CCG]</span></p>
  <p><span class="p9">日期:2000年5月24日</span></p>
  <p><span class="p9"><br>
    1. 前言<br>
    =======</span></p>
  <p><span class="p9"> 大家好 :) 我之所以写这篇短文,是由于我在 Dump 时发现,很多加压、加密软件都使<br>
    得输入表(Import Table)不可用,所以 Dump 出的可执行文件必须要重建输入表。而在普<br>
    通的讲授 Win32 汇编的站点上我没有找到这样的介绍,所以如果你对此感兴趣,那么这篇<br>
    短文对你会有些帮助。</span></p>
  <p><span class="p9"> 例如,为了让从内存中 Dump 出的经 PETite v2.1 压缩过的可执行文件正常运行,必<br>
    须重建输入表。(对于 ASPack、PEPack、PESentry……也同样)这就是所有 Dump 软件都<br>
    具备重建输入表功能的原因(例如 G-RoM/UCF 制作的 Phoenix Engine(ProcDump 内含),<br>
    或者由 Virogen/PC 和我制作的 PE Rebuilder)。</span></p>
  <p><span class="p9"> 鉴于这个问题十分特殊,而且比较复杂,所以我假定你已经了解了 PE 文件结构。(你<br>
    需要阅读有关 PE 文件的文档)</span></p>
  <p><span class="p9">2. 预备知识<br>
    ===========</span></p>
  <p><span class="p9"> 首先是一些关于输入表和 RVA/VA 的简介。</span></p>
  <p><span class="p9"> 输入表的相对虚拟地址(RVA)储存在 PE 文件头部的相应目录入口(它的偏移量为<br>
    [ PE 文件头偏移量+80h ])。由于是虚拟偏移量,所以它和文件输入表中的偏移量(VA)<br>
    是不匹配的(除非文件纯粹是刚刚从内存中 Dump 出来的)。于是我们首先要做的事情是,<br>
    找到 PE 文件的输入表,将 RVA 转换为相应的 VA。为此,我们可以采用不同的办法:你可<br>
    以自行编制软件来分析块(Sections)目录并计算 VA,但最简单的办法是使用专门为此设<br>
    计的应用程序接口(API)。这个 API 包括在 IMAGEHLP.DLL(Win9X 和 NT 系统都使用的<br>
    一个库)中,名为 ImageRvaToVa。下面是对它的描述(完整的内容详见 MSDN 库):</span></p>
  <p><span class="p9"># LPVOID ImageRvaToVa(<br>
    # IN PIMAGE_NT_HEADERS NtHeaders,<br>
    # IN LPVOID Base,<br>
    # IN DWORD Rva,<br>
    # IN OUT PIMAGE_SECTION_HEADER *LastRvaSection<br>
    #);<br>
    #<br>
    # 参数:<br>
    #<br>
    # NtHeaders <br>
    #<br>
    # 指示一个 IMAGE_NT_HEADERS 结构。通过调用 ImageNtHeader 函数可以获得这个结构。<br>
    #<br>
    # Base<br>
    #<br>
    # 指定通过调用 MapViewOfFile 函数映射入内存的一个映象的基址(Base Address)。<br>
    #<br>
    # Rva <br>
    #<br>
    # 指定相对虚拟地址的位置。<br>
    #<br>
    # LastRvaSection <br>
    #<br>
    # 指向一个指定的最终 RVA 块的 IMAGE_SECTION_HEADER 结构。这是一个可选参数。当被<br>
    #指定时,它指向一个变量,该变量包含指定映象的最后块值,以便将 RVA 转换为 VA。</span></p>
  <p><span class="p9"> 就这么简单。你只需要将 PE 文件映射入内存,然后调用这个函数就能够得到输入表的正<br>
    确 VA。</span></p>
  <p><span class="p9"> 注意,下面我会忽略所有的 RVA/VA 注释,但是,当你对重建的 PE 文件进行读出或写入<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -