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

📄 chap4-1.htm.primary

📁 加密与解密,软件加密保护技术与解决方案,看雪文档!
💻 PRIMARY
字号:
<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>>>第4章</p>
<p align="center" class="shadow1Copy"><b class="p3">第4章 静态分析技术</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"><span class="p9">第一节 <a href="Chap4-1.htm"><font color="#FFFFFF">基础知识</font></a></span></div>
    </td>
    <td class="shadow1" width="20%"> 
      <div align="center"><span class="p9">第二节 <a href="Chap4-2.htm"><font color="#FFFFFF">W32Dasm简介</font></a></span></div>
    </td>
    <td class="shadow1" width="20%"> 
      <div align="center">第三节 <a href="Chap4-3.htm"><font color="#FFFFFF">IDA 
        Pro 简介</font></a></div>
    </td>
    <td class="shadow1" width="19%"> 
      <div align="center"><span class="p9">第四节 <a href="Chap4-4.htm"><font color="#FFFFFF">HIEW简介</font></a></span></div>
    </td>
    <td class="shadow1" width="21%"> 
      <div align="center"><span class="p9">第五节 <a href="Chap4-5.htm"><font color="#FFFFFF">拆解教程</font></a> 
        </span></div>
    </td>
  </tr>
</table>
<blockquote> 
  <p align="center"><span class="p9"><b>第一节 基础知识</b></span></p>
</blockquote>
<p>一、虚拟地址和偏移量转换</p>
<p>   由于Windows程序是运行在386保护模式下,在保护模式下,程序访问存储器所使用的逻辑地址称为虚拟地址(Virual Address,VA)。与实地址模式下的分段地址类似,虚拟地址也可写成&quot;段:偏移量&quot;的形式,这里的段是指段选择器。<br>
  <br>
    文件执行时将被映像到指定内存地址中,这个初始内存地址称为基址(ImageBase)。在Windows NT中,缺省的值是10000h;对于DLLs,缺省值为400000h。在Windows 
  9x中,10000h不能用来装入32位的执行文件,因为该地址处于所有进程共享的线性地址区域,因此Microsoft将Win32可执行文件的缺省基地址改变为400000h。<br>
  <br>
    相对虚拟地址(Relative Virual Address,RVA)表示此段代码在内存中相对于基地址的偏移。即:相对虚拟地址(RVA)=虚拟地址(VA)-基址(ImageBase)。<br>
  <br>
    文件中的地址与内存中表示不同,它是用偏移量(File offset)来表示的。<br>
  <br>
    在SoftICE和W32Dasm下显示的地址值是内存地址(memory offset),或称之为虚拟地址(Virual Address,VA)。而十六进制工具里,如:Hiew、Hex 
  Workshop等显示的地址就是文件地址,称之为偏移量(File offset) 或物理地址(RAW offset)。</p>
<p>   在实际操作时,使用 RVA-Offset之类的转换器很容易查出字串RVA和偏移量的值。<br>
  以Pc_offset(光盘\tools\offset)此工具为例说说如何将SoftICE下看到的虚拟地址(Virual Address,VA)转换成十六进制工具里的偏移量(File 
  offset),运行该软件打开记事本程序,在Memory Address(内存地址)输入虚拟地址(Virual Address,VA)的值:40117D,点击&quot;Do 
  it&quot;按钮将显示己转换成文件偏移量(File offset),如图一所示。<br>
</p>
<p align="center"><img src="Image/1.gif" width="294" height="172"> </p>
<p align="center">(图一)内存虚拟地址转换成文件偏移量</p>
<p align="left">二、文件类型分析</p>
<p align="left">   文件分析是静态分析程序的第一步,通过相关工具显示欲调试文件的信息,如它是用什么语言写的,是否加壳等。常用的文件分析工具有TYP、Gtw或FileInfo。其中FileInfo(光盘\tools\file\File 
  analysers)由于识别文件类型较多,使用方便,在这一节简单地讲讲它的用法。<br>
  FileInfo运行时是DOS界面,支持Windows长文件名,能识别DOS、NE、PE等各种文件类型和壳。<br>
    语法:fi &lt;drive:\path\&gt;&lt;*.*&gt; &lt;/r&gt; &lt;/f&gt; &lt;/d-&gt; &lt;/l+&gt; 
  &lt;/p+&gt;<br>
       &quot;fi /r&quot;or &quot;/s&quot; 列出当前目录和子目录所有的文件信息;<br>
       &quot;fi /f&quot; 仅列出能识别的文件<br>
    由于每次要进入DOS窗口运行程序相当不便,在这可创建快捷方式,把要分析的文章复制到FileInfo目录下,用鼠标双击FileInfo主文件即可。FileInfo快捷方式如图二。在快捷方式中的命令行中可以键入相关参数,如:FI.EXE 
  /l /p+,此后用鼠标双击FileInfo快捷方式,会自动分析出FileInfo当前目录内的所有文件,不包含子目录。</p>
<p align="center"><img src="Image/2.gif" width="279" height="120"><br>
  <br>
  图二FileInfo快捷方式中命令参数配制</p>
<p align="left">  双击此快捷方式就可执行带参数的FileInfo,显示结果如图三所示。</p>
<p align="center"><img src="Image/3.gif" width="357" height="133"><br>
  <br>
  图三 FileInfo分析文件的报告</p>
<p align="left">  在此例中,文件CHAP301.EXE被分析出是用VC6.0编译的, CHAP303.EXE文件类型是Win GUI,就是Windows图形用户界面程序(一般FileInfo分析不出类型就报此类型)。另外此工具也可分析出程序是被何种软件所加密的等。<br>
</p>
<p align="center"><a href="../Catalog.htm"><img src="../image/navtoc.gif" width="84" height="23" border="0"></a><a href="../chap3/Chap3-4.htm"><img src="../image/Navprev.gif" width="80" height="23" border="0"></a><a href="Chap4-2.htm"><img src="../image/navnext.gif" width="83" height="23" border="0"></a> 
  <!-- Start bouncing image  --> </p>
<div id="img" style="position:absolute;"> <a href="http://www.pediy.com/book.htm"><img src="http://www.pediy.com/tutorial/image/book.gif" onMouseDown="pauseResume();" border="0"></a> 
</div>
<script language="JavaScript">
<!-- Begin
var step = 5;
var delay = 100;
var height = 0;
var Hoffset = 0;
var Woffset = 0;
var yon = 0;
var xon = 0;
var pause = true;
var interval;
var name = navigator.appName;
if(name == "Microsoft Internet Explorer") name = true;
else name = false;
var xPos = 20;
if(name) var yPos = document.body.clientHeight;
else var yPos = window.innerHeight;
function changePos() {
if(name) {
width = document.body.clientWidth;
height = document.body.clientHeight;
Hoffset = img.offsetHeight;
Woffset = img.offsetWidth;
img.style.left = xPos + document.body.scrollLeft;
img.style.top = yPos + document.body.scrollTop;
}
else {
height = window.innerHeight;
width = window.innerWidth;
Hoffset = document.img.clip.height;
Woffset = document.img.clip.width;
document.img.pageY = yPos + window.pageYOffset;
document.img.pageX = xPos + window.pageXOffset;
}
if (yon) {
yPos = yPos + step;
}
else {
yPos = yPos - step;
}
if (yPos < 0) {
yon = 1;
yPos = 0;
}
if (yPos >= (height - Hoffset)) {
yon = 0;
yPos = (height - Hoffset);
}
if (xon) {
xPos = xPos + step;
}
else {
xPos = xPos - step;
}
if (xPos < 0) {
xon = 1;
xPos = 0;
}
if (xPos >= (width - Woffset)) {
xon = 0;
xPos = (width - Woffset);
   }
}
function start() {
if(name) img.visibility = "visible";
else document.img.visibility = "visible";
interval = setInterval('changePos()',delay);
}
function pauseResume() {
if(pause) {
clearInterval(interval);
pause = false;
}
else {
interval = setInterval('changePos()',delay);
pause = true;
   }
}
start();
//  End -->
</script>
<!-- End bouncing image  --> 
<hr width=735>
<div align="center"><span class="p9"><font size="2"><span class="p9"><font size="2"><span class="p9">Copyright 
  &copy; 2000-2001 <a href="http://www.pediy.com/">KanXue Studio</a> All Rights 
  Reserved.</span></font></span></font></span> </div>
<p align="left"><br>
</p>
</body>
</html>

⌨️ 快捷键说明

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