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

📄 lesson814.htm

📁 为所有对破解感兴趣的朋友准备的礼物。希望大家能够喜欢。
💻 HTM
字号:
<html>
<head>
<title>看雪学苑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
.p8 {  font-size: 8pt}
.p9 {  font-size: 9pt}
a:hover {  color: #00FF00}
a {  text-decoration: none}
.p12 {  font-size: 12pt; font-weight: bold; color: #FF3333}
-->
</style>
</head>

<body bgcolor="#FFFFFF" vlink="#0033CC">
<table width="80%" border="1" cellspacing="0" cellpadding="0" align="center" bgcolor="#99CCFF" bordercolorlight="#99CCFF" bordercolordark="#99CCFF">
  <tr> 
    <td width="72%" class="p9"><a href="javascript:if(confirm('http://toye.yeah.net/  \n\n这个文件不能通过 Teleport Pro 取回, 因为 它被访问于一个域或在它的起始地址边界外部的路径上.  \n\n你想从服务器打开它吗?'))window.location='http://toye.yeah.net/'" tppabs="http://toye.yeah.net/">看雪教学</a></td>
    <td width="10%" class="p9">&nbsp; </td>
    <td width="10%"><a href="index.htm" tppabs="http://toye.dihou.org/index.htm" class="p9">返回<br>
      首页 <br>
      </a></td>
    <td width="8%"><a href="molu.htm" tppabs="http://toye.dihou.org/molu.htm" class="p9">返回<br>
      目录 </a></td>
  </tr>
</table>
<table width="80%" cellspacing="0" cellpadding="0" align="center" bordercolorlight="#99CCFF" bordercolordark="#99CCFF">
  <tr bgcolor="#E1F1F1"> 
    <td> 
      <table width="100%" cellspacing="0" cellpadding="0">
        <tr bgcolor="#FFFF33"> 
          <td> 
            <div align="center" class="p12">第八课 静态反汇编</div>
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
</table>
<table width="80%" cellspacing="0" align="center">
  <tr bgcolor="#CCFFFF" class="p9"> 
    <td width="20%" bgcolor="#CCFFFF"> 
      <div align="center"><a href="lesson811.htm" tppabs="http://toye.dihou.org/lesson811.htm">W32Dasm简介</a></div>
    </td>
    <td width="20%" bgcolor="#CCFFFF"> 
      <div align="center"><a href="lesson812.htm" tppabs="http://toye.dihou.org/lesson812.htm">HIEW使用说明</a></div>
    </td>
    <td width="20%" bgcolor="#CCFFFF"> 
      <div align="center"><a href="lesson813.htm" tppabs="http://toye.dihou.org/lesson813.htm">IDA使用手册</a></div>
    </td>
    <td width="20%" bgcolor="#FFFFFF"> 
      <div align="center">折解教程</div>
    </td>
    <td width="20%"> 
      <div align="center"><a href="lesson815.htm" tppabs="http://toye.dihou.org/lesson815.htm">习题</a></div>
    </td>
  </tr>
</table>
<p class="p9" align="left">实验对象:第五课的例题<a href="javascript:if(confirm('http://toye.dihou.org/exercise/lesson5-eg-1.zip  \n\n这个文件不能通过 Teleport Pro 取回, 因为 没有遇到方案的文件类型说明.  \n\n你想从服务器打开它吗?'))window.location='http://toye.dihou.org/exercise/lesson5-eg-1.zip'" tppabs="http://toye.dihou.org/exercise/lesson5-eg-1.zip">lesson5-eg-1.zip</a><font color="#FF3333" class="p9"><span class="p9"><font color="#000000"> 
  ; </font></span></font></p>
<p class="p9" align="left"><font color="#000000">破解工具:W32Dasm,Hiew;</font></p>
<p class="p9" align="left"><font color="#000000">1、思路提示:首先要试运行要破解的程序,了解其一些提示信息,如:文本/NAG屏/按钮等等.最重要的就是出错信息 
  .如: "Wrong serial.."记下,因为你在后面要用到它,你需要它来找到call出错messagebox的地方.当 W32Dasm反编译后你会看到一屏幕难懂的汇编码 
  .你还记得刚要你记下的那个message么? 此时单击在工具栏里的<i><b>串式数据参考SDR (=String Data Reference)</b></i>.这个功能可是非常有用的. 
  </font></p>
<p class="p9" align="left">在<font color="#000000"><i><b>串式数据参考SDR</b></i></font>中找到那个提示信息(它也许只显示了信息的一部分) 
  ,此时双击它,来到相关代码处,再分析源代码。</p>
<p class="p9" align="left">2、运行crackme,输入假的序列号,点击CHECK,出现错误提示:&quot;Incorrect 
  try again!! &quot;记下。</p>
<p class="p9" align="left">3、将crackmer备份一份,用W32DASM反汇编它。</p>
<p class="p9" align="left">4、一旦完成反汇编 , 点<font color="#000000"><i><b>串式数据参考</b></i></font><b><i>(string 
  data reference)</i></b>按钮 , 在列出的字符串列表中找到 : "Incorrect try again!! " 并双击它 . (注:如代码中有多处有此字串,你再次双击后,光标将出现在下一代码上)</p>
<p class="p9" align="left">5、关闭这个窗口回到主窗口 , 你应该能够看到下面这一行 :</p>
<table width="100%" cellspacing="0" align="center">
  <tr bgcolor="#F2FFFF"> 
    <td> 
      <p class="p9">* Referenced by a (U)nconditional or (C)onditional Jump at 
        Address: <br>
        |:00401595(C) <br>
        | <br>
        :004015AD 6A40&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; push 00000040 <br>
        <br>
        * Possible StringData Ref from Data Obj ->"CrackMe"//错误提示窗口的标题 <br>
        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | <br>
        :004015AF 686C304000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; push 
        0040306C <br>
        <br>
        * Possible StringData Ref from Data Obj ->"Incorrect try again!!"//错误提示处,我们来到这一行 
        <br>
        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | <br>
        :004015B4 6874304000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; push 
        00403074 <br>
        :004015B9 8B4DE0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; mov ecx, dword ptr [ebp-20] </p>
      </td>
  </tr>
</table>
<p class="p9" align="left">6、现在你必须从这行起向上找 , 直到找到有这样的命令为止 :cmp,jne,je,test 等等 . 
</p>
<p class="p9" align="left">CMP = 比较 (如 CMP EAX, EBX) &lt;- 比较EAX和EBX<br>
  JE = 如果相等就跳转<br>
  JNE = 如果不相等就跳转<br>
  JL = 如果小于就跳转<br>
  JLE = 如果小于等于就跳转<br>
  JA = 如果大于就跳转<br>
  JAE = 如果大于等于就跳转<br>
  JMP = 无条件跳转 </p>
<p class="p9" align="left">7、注意这一行代码:</p>
<p class="p9" align="left">* Referenced by a (U)nconditional or (C)onditional 
  Jump at Address: <br>
  |<font color="#FF3333">:00401595(C) </font><br>
  | <br>
  :004015AD 6A40&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; push 00000040 <br>
</p>
<p class="p9" align="left"><font color="#FF3333">:00401595(C) </font>是代码位置而不是offset,表示指令由<font color="#FF3333">00401595<font color="#000000">一行跳转到此</font> 
  </font>.此时你在利用菜单的<b><i>转到代码位置</i></b>功能或按<b><i>shift+F12</i></b>,在对话框中输入<font color="#FF3333">:00401595,<font color="#000000">你将来到此: 
  </font></font><br>
</p>
<table width="100%" cellspacing="0" align="center">
  <tr bgcolor="#F2FFFF"> 
    <td> 
      <p class="p9">:00401585 8D4DE4&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; &nbsp; lea ecx, dword ptr [ebp-1C] <br>
        :00401588 51&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; push ecx <br>
        :00401589 8D55F4&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; lea edx, dword ptr [ebp-0C] <br>
        :0040158C 52&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; push edx <br>
        <br>
        * Reference To: KERNEL32.lstrcmpA, Ord:02FCh <br>
        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | <br>
        :0040158D FF1500204000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call dword 
        ptr [00402000] <br>
        :00401593 85C0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; test eax, eax <br>
        :00401595 7516&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; jne <font color="#FF3333">004015AD</font> </p>
    </td>
  </tr>
</table>
<p class="p9" align="left">8、上面这段代码和第五课的一样的,此时你借助SOFTICE动态调试能很快找到序列号,在这我们今天用暴力法破解,注意 
  :</p>
<p class="p9" align="left">:0040158D FF1500204000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; Call dword ptr [00402000]//真假序列号比较核心(调用函数lsrcmpa比较) <br>
  :00401593 85C0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; test eax, eax//用eax当旗帜,如相等,则eax=0 <br>
  :00401595 7516&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; jne <font color="#FF3333">004015AD</font>//如不跳转则注册成功 </p>
<p class="p9" align="left">看明白了吗?要让程序接受任何注册码就只要把JNE (=不相等就跳)改成JE (=相等就跳).或把改成空指令nop(什么也不执行),这样前一各改法要注册就只能输入错误的注册码,后者可任意注册码。</p>
<p class="p9" align="left">9、将绿色的光条移到 <font color="#FF3333">:00401595 7516 jne 
  004015AD</font>上 , 在窗口底部有一行字指示这句命令的偏移地址 , 此处为 @Offset 00001595h. 这就是应该修改的地方了 
  . </p>
<p class="p9" align="center"><img src="lesson81401.gif" tppabs="http://toye.dihou.org/img/lesson81401.gif" width="539" height="85"></p>
<p class="p9" align="left">10、启动hiew, 打开crackme.exe,按 F4 然后选择 decode mode, 按 F5 
  输入偏移地址1595(@Offset 00001595h). 你应该看到下面这几行 : </p>
<p class="p9" align="left">

⌨️ 快捷键说明

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