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

📄 chap6-1-11.htm.primary

📁 加密与解密,软件加密保护技术与解决方案,看雪文档!
💻 PRIMARY
📖 第 1 页 / 共 5 页
字号:
          :00401162 8D4DF4                
          &nbsp; lea ecx, dword ptr [ebp-0C] <br>
          :00401165 51&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; push ecx <br>
          :00401166 E811FFFFFF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          call 0040107C&lt;----此CALL计算密码 <br>
          :0040116B 59&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; pop ecx <br>
          <br>
          按F8进入00401166的CALL <br>
          :0040108D B9E7030000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          mov ecx, 000003E7 <br>
          :00401092 81C2495F0E00&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; add 
          edx, 000E5F49&lt;----用000E5F49加12345678(十六进制BC614E) <br>
          :00401098 81C1A93E0F00&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; add 
          ecx, 000F3EA9&lt;----用000F3EA9加上固定数字999(十六进制03e7) <br>
          :0040109E 90&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; nop <br>
          :0040109F 90&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; nop <br>
          ...................................... <br>
          :004010A7 90&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; nop <br>
          :004010A8 83C258&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; add edx, 00000058&lt;----加上58(十六进制 )<br>
          :004010AB 83C1A9&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; add ecx, -57&lt;----减 57 (十六进制 )<br>
          :004010AE 3BD1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; cmp edx, ecx&lt;----比较这两个数字 <br>
          :004010B0 7518&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; jne 004010CA&lt;----如不正确就跳到错误信息 <br>
          :004010B2 6800100000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          push 00001000 <br>
          <br>
          在004010AE (cmp EDX, ECX)键入: <br>
          ? EDX &lt;---- 13287663 (我们输入经过计算的密码) <br>
          ? ECX &lt;---- 999993 (正确的数字) <br>
          下面全部以十六进制表示计算: <br>
          ECX + 999 - 87 = 999993 <br>
          EDX + 941897 + 88 = 13287663 <br>
          <br>
          因此我们反推密码: <br>
          999993 - 88 - 941897 = 58008 
  </table>
</div>
<div id="KB8Parent" class="parent"> <a href="#" onClick="expandIt('KB8'); return false" class="p9"> 
  4、习题四 答案</a> </div>
<div id="KB8Child" class="child"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <table width="100%" align="center" cellspacing="0">
    <tr bgcolor="#EFEFEF"> 
      <td height="952"> 
        <p class="p9">破解chap6-1-1-04 <br>
          <br>
          * Reference To: USER32.DialogBoxParamA, Ord:0000h <br>
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | <br>
          :0040121E E87D020000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          Call 004014A0 <br>
          :00401223 83F800&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; cmp eax, 00000000 <br>
          :00401226 74BE&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; je 004011E6 <br>
          :00401228 688E214000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          push 0040218E <br>
          :0040122D E84C010000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          call 0040137E&nbsp; &nbsp; &nbsp; ----通过NAME算出一个数字 <br>
          :00401232 50&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; push eax <br>
          :00401233 687E214000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          push 0040217E <br>
          :00401238 E89B010000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          call 004013D8&nbsp; &nbsp; &nbsp; ----通过输入的SERIAL算出一个数字 <br>
          :0040123D 83C404&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; add esp, 00000004 <br>
          :00401240 58&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; pop eax <br>
          :00401241 3BC3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; cmp eax, ebx&nbsp; &nbsp; &nbsp; &nbsp; ----比较两个数字是否相同 
          <br>
          :00401243 7407&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; je 0040124C <br>
          :00401245 E818010000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          call 00401362 <br>
          :0040124A EB9A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; jmp 004011E6 <br>
          <br>
          * Referenced by a CALL at Address: <br>
          |:0040122D&nbsp; <br>
          | <br>
          :0040137E 8B742404&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          mov esi, dword ptr [esp+04] <br>
          :00401382 56&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; push esi <br>
          :00401383 8A06&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; mov al, byte ptr [esi]&nbsp; ----ESI中放的是输入的姓名 <br>
          :00401385 84C0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; test al, al <br>
          :00401387 7413&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; je 0040139C <br>
          :00401389 3C41&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; cmp al, 41 <br>
          :0040138B 721F&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; jb 004013AC <br>
          :0040138D 3C5A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; cmp al, 5A <br>
          :0040138F 7303&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; jnb 00401394 <br>
          :00401391 46&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; inc esi <br>
          :00401392 EBEF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; jmp 00401383 <br>
          :00401394 E839000000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          call 004013D2&nbsp; &nbsp; &nbsp; &nbsp; ----把输入的名字变成大写 <br>
          :00401399 46&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; inc esi <br>
          :0040139A EBE7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; jmp 00401383 <br>
          :0040139C 5E&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; pop esi <br>
          :0040139D E820000000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          call 004013C2&nbsp; &nbsp; &nbsp; &nbsp; ----变后的姓名算出值放入EDI (1) <br>
          :004013A2 81F778560000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; xor 
          edi, 00005678&nbsp; &nbsp; ----再变化&nbsp; &nbsp; (2) <br>
          :004013A8 8BC7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; mov eax, edi <br>
          :004013AA EB15&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; jmp 004013C1&nbsp; &nbsp; &nbsp; <br>
          :004013AC 5E&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; pop esi <br>
          :004013AD 6A30&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; push 00000030 <br>
          :004013AF 6860214000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          push 00402160 <br>
          :004013B4 6869214000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          push 00402169 <br>
          :004013B9 FF7508&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; push [ebp+08] <br>
          :004013BC E879000000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          Call 0040143A <br>
          :004013C1 C3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; ret <br>
          <br>
          * Referenced by a CALL at Address: <br>
          |:00401238&nbsp; <br>
          | <br>
          :004013D8 33C0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; xor eax, eax <br>
          :004013DA 33FF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; xor edi, edi <br>
          :004013DC 33DB&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; xor ebx, ebx <br>
          :004013DE 8B742404&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          mov esi, dword ptr [esp+04] ----把输入的的密码放入ESI <br>
          :004013E2 B00A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; mov al, 0A <br>
          :004013E4 8A1E&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; mov bl, byte ptr [esi]&nbsp; &nbsp; &nbsp; <br>
          :004013E6 84DB&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; test bl, bl <br>
          :004013E8 740B&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; je 004013F5 <br>
          :004013EA 80EB30&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; sub bl, 30&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ----BL-30 
          <br>
          :004013ED 0FAFF8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; imul edi, eax&nbsp; &nbsp; &nbsp; &nbsp; ----EDI*EAX(此处EAX=0A=10!!!!!) 
          <br>
          :004013F0 03FB&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; add edi, ebx&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ----EDI+EBX 
          <br>
          :004013F2 46&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; inc esi <br>
          :004013F3 EBED&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; jmp 004013E2 <br>
          :004013F5 81F734120000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; xor 
          edi, 00001234&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
          :004013FB 8BDF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; mov ebx, edi&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; ----把处理后的放入EBX <br>
          :004013FD C3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; ret <br>
          <br>
          模拟运算: <br>
          输入姓名:zxem <br>
          输入密码:123456 <br>
          我们可以看到(1)处算出的EDI=144, (2)处为EDI=573C. <br>
          我们知道密码的处理中为乘10再类加.所以从EDI=573C反推真密码,如下: <br>
          XOR&nbsp; 573C, 1234 得到4508, <br>
          而4508换成10进制为17672 <br>
          所以真的密码为:17672 <br>
          <br>
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;ZXEM 2000.3.20 
      </table>
</div>
<div id="KB9Parent" class="parent"> <span class="p9"><a href="#" onClick="expandIt('KB9'); return false"> 
  5、习题五 答案</a> </span></div>
<div id="KB9Child" class="child"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <table width="100%" align="center" cellspacing="0">
    <tr bgcolor="#EFEFEF"> 
      <td height="28"> 
        <p class="p9">bpx hmemcpy设断来到: <br>
          &nbsp; &nbsp; :00427B7E E80DE2FEFF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; call 00415D90 <br>
          &nbsp; &nbsp; :00427B83 8B45FC&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; mov eax, dword ptr [ebp-04] <br>
          &nbsp; &nbsp; :00427B86 50&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; push eax <br>
          &nbsp; &nbsp; :00427B87 8D55F8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; lea edx, dword ptr [ebp-08] <br>
          &nbsp; &nbsp; :00427B8A 8B83DC010000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; mov eax, dword ptr [ebx+000001DC] <br>
          &nbsp; &nbsp; :00427B90 E8FBE1FEFF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; call 00415D90 <br>
          &nbsp; &nbsp; :00427B95 8B45F8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; mov eax, dword ptr [ebp-08] <br>
          &nbsp; &nbsp; :00427B98 5A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pop edx;;在这D EDX你将看到姓名、你输入号码、正确号码 
          <br>
          &nbsp; &nbsp; :00427B99 E882FEFFFF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; call 00427A20&nbsp; &nbsp; &nbsp; ;; 比较序列号设置旗标 <br>
          &nbsp; &nbsp; :00427B9E 3D4E61BC00&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; cmp eax, 00BC614E&nbsp; ;; eax与BC614E比较 <br>
          &nbsp; &nbsp; :00427BA3 7D1E&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
          &nbsp; &nbsp; &nbsp; &nbsp; jge 00427BC3&nbsp; &nbsp; &nbsp; &nbsp; 

⌨️ 快捷键说明

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