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

📄 chap6-1-31.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>>>第6章</p>
<p align="center" class="shadow1Copy"><b class="p3">第6章 软件保护技术</b></p>
<table width="80%" border="0" cellspacing="0" cellpadding="3" align="center" bgcolor="#bcbcbc" bordercolor="#111111" class="shadow1">
  <tr> 
    <td class="shadow1" width="25%"> 
      <div align="center"><a href="Chap6-1.htm"><font color="#FFFFFF">第一节 常见保护技巧</font></a></div>
    </td>
    <td class="shadow1" width="25%"> 
      <div align="center"><a href="Chap6-2.htm"><font color="#FFFFFF">第二节 反跟踪技术</font></a></div>
    </td>
    <td class="shadow1" width="25%"> 
      <div align="center"><a href="Chap6-3.htm"><font color="#FFFFFF">第三节 加密算法</font></a></div>
    </td>
    <td class="shadow1" width="25%"> 
      <div align="center"><a href="Chap6-4.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="center" class="p"><span class="p9"><span class="p9">1、<a href="Chap6-1-1.htm">序列号方式</a> </span></span></div>
    </td>
    <td width="33%" valign="middle" align="center" class="p9" height="23"> 
      <div align="center">2、<a href="Chap6-1-2.htm">警告(NAG)窗口</a></div>
    </td>
    <td width="34%" valign="top" class="p9" height="23"> 
      <div align="center"><span class="p9">3、<a href="Chap6-1-3.htm">时间限制</a></span></div>
    </td>
  </tr>
  <tr> 
    <td width="33%" valign="middle" align="center" class="p9" height="23"> 
      <div align="center">4、<a href="Chap6-1-4.htm">Key File保护</a></div>
    </td>
    <td width="33%" valign="middle" align="center" class="p9" height="23"> 
      <div align="center">5、<a href="Chap6-1-5.htm">功能限制的程序</a> </div>
    </td>
    <td width="34%" valign="top" class="p9" height="23"> 
      <div align="center">6、<a href="Chap6-1-6.htm">CD-check</a></div>
    </td>
  </tr>
</table>
<p align="center"><span class="p9"><span class="p9"><b>3、</b><a href="Chap6-1-3.htm"><b>时间限制</b></a> <b><font color="#FF3366">【习题】</font></b></span></span></p>
<p align="left" class="p9"><b><span class="p9">1、习题一</span></b><span class="p9"> 
  <a href="Exercise/section03/chap6-1-3-01.zip">chap6-1-3-01</a> 153K 每次20秒使用时间 
  易</span></p>
<p align="left" class="p9"><b><span class="p9">2、习题二</span></b><span class="p9"> 
  <a href="Exercise/section03/chap6-1-3-02.zip">chap6-1-3-02</a> 15K 时间限制 ( 需<a href="Exercise/cw3220.zip">cw3220.dll</a> 
  ) 易</span></p>
<p align="left" class="p9"> 
  <script language="JavaScript1.2">
NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
ver4 = (NS4 || IE4) ? 1 : 0;

if (ver4) {
    with (document) {
        write("<STYLE TYPE='text/css'>");
        if (NS4) {
            write(".parent {position:absolute; visibility:visible}");
            write(".child {position:absolute; visibility:visible}");
            write(".regular {position:absolute; visibility:visible}")
        }
        else {
            write(".child {display:none}")
        }
        write("</STYLE>");
    }
}

function getIndex(el) {
    ind = null;
    for (i=0; i<document.layers.length; i++) {
        whichEl = document.layers[i];
        if (whichEl.id == el) {
            ind = i;
            break;
        }
    }
    return ind;
}

function arrange() {
    nextY = document.layers[firstInd].pageY +document.layers[firstInd].document.height;
    for (i=firstInd+1; i<document.layers.length; i++) {
        whichEl = document.layers[i];
        if (whichEl.visibility != "hide") {
            whichEl.pageY = nextY;
            nextY += whichEl.document.height;
        }
    }
}

function initIt(){
    if (!ver4) return;
    if (NS4) {
        for (i=0; i<document.layers.length; i++) {
            whichEl = document.layers[i];
            if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
       }
        arrange();
    }
    else {
        divColl = document.all.tags("DIV");
        for (i=0; i<divColl.length; i++) {
            whichEl = divColl(i);
            if (whichEl.className == "child") whichEl.style.display = "none";
        }
    }
}

function expandIt(el) {
    if (!ver4) return;
    if (IE4) {
        whichEl = eval(el + "Child");
        if (whichEl.style.display == "none") {
            whichEl.style.display = "block";
        }
        else {
            whichEl.style.display = "none";
        }
    }
    else {
        whichEl = eval("document." + el + "Child");
        if (whichEl.visibility == "hide") {
            whichEl.visibility = "show";
        }
        else {
            whichEl.visibility = "hide";
        }
        arrange();
    }
}

onload = initIt;

</script>
</p>
<div id="KB1Parent" class="parent"> <span class="p9"><a href="#" onClick="expandIt('KB1'); return false"> 
  1、习题一 答案</a> </span></div>
<div id="KB1Child" class="child"> <span class="p9">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 
  <table width="100%" align="center" cellspacing="0">
    <tr bgcolor="#EFEFEF"> 
      <td height="7" class="p9">这程序用上了SetTimer函数,设置断点:bpx setimer,将中断如下: <br>
        &nbsp; :0043D3DF&nbsp; 66837B2E00&nbsp; CMP&nbsp; &nbsp; WORD PTR [EBX+2E],00 
        <br>
        &nbsp; :0043D3E4&nbsp; 7433&nbsp; &nbsp; &nbsp; &nbsp; JZ&nbsp; &nbsp; 
        &nbsp; 0043D419 <br>
        &nbsp; :0043D3E6&nbsp; 6A00&nbsp; &nbsp; &nbsp; &nbsp; PUSH&nbsp; &nbsp; 
        00&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        ;处理定时过程的程序入口地址<br>
        &nbsp; :0043D3E8&nbsp; 56&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PUSH&nbsp; 
        &nbsp; ESI&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        ;暂停时间值 (21 seconds) <br>
        &nbsp; :0043D3E9&nbsp; 6A01&nbsp; &nbsp; &nbsp; &nbsp; PUSH&nbsp; &nbsp; 
        01&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        ; 定时器ID 标识符<br>
        &nbsp; :0043D3EB&nbsp; 8B4328&nbsp; &nbsp; &nbsp; MOV&nbsp; &nbsp; EAX,[EBX+28] 
        <br>
        &nbsp; :0043D3EE&nbsp; 50&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PUSH&nbsp; 
        &nbsp; EAX&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        ; 句柄 <br>
        &nbsp; :0043D3EF&nbsp; E8648FFCFF&nbsp; CALL&nbsp; &nbsp; USER32!SetTimer 
        <br>
        &nbsp; :0043D3F4&nbsp; 85C0&nbsp; &nbsp; &nbsp; &nbsp; TEST&nbsp; &nbsp; 
        EAX,EAX&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; 时间是否到期? <br>
        &nbsp; :0043D3F6&nbsp; 7521&nbsp; &nbsp; &nbsp; &nbsp; JNZ&nbsp; &nbsp; 
        0043D419&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; 没到JMP <br>
        &nbsp; &nbsp; ...&nbsp; &nbsp; &nbsp; ... <br>
        &nbsp; :0043D419&nbsp; 33C0&nbsp; &nbsp; &nbsp; &nbsp; XOR&nbsp; &nbsp; 
        EAX,EAX <br>
        <br>
        现在我们可修改:0043D3E4 一行,让其直接跳过SetTimer函数,这样就没时间限制了。 <br>
        将: JZ 0043D419改成JMP 0043D419 <br>
        66837B2E007433改成66837B2E00EB33即可。 
  </table>
</div>
<div id="KB2Parent" class="parent"> <span class="p9"><a href="#" onClick="expandIt('KB2'); return false"> 
  2、习题二 答案</a></span></div>
<div id="KB2Child" class="child"> <span class="p9">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 
  <table width="100%" align="center" cellspacing="0">
    <tr bgcolor="#EFEFEF"> 
      <td height="7" class="p9">这是个时间限制程序。 <br>
        一运行程序,我注意到跳出一对话框,说:trial-period has ended,这对话是调用messagebox函数的,今天我们不用此函数设断,这程序肯定调用了取系统时间函数,这样才能判断当前时间是否过期。因此用GetLocalTime函数设断。 
        <br>
        bpx GetLocalTime <br>
        中断如下: <br>
        <br>
        * Reference To: cw3220._getdate, Ord:0000h <br>
        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | <br>
        :0040108A E83F040000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call 
        004014CE&nbsp; ->GetLocalTime函数 <br>
        :0040108F 59&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; pop ecx <br>
        :00401090 817DF8CD070000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cmp dword ptr 
        [ebp-08], 000007CD <br>
        //这一行觉得熟吧,7CD的十进制是1997,而当前时间在EAX里,是07D0 <br>
        // <br>
        :00401097 7F0F&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        &nbsp; &nbsp; jg 004010A8 ->如当前日期大于1997则出错。 <br>
        <br>
        剩下的工作太简单了,结束。 
  </table>
  <span class="p9"> </span></div>
<div id="KB3Parent" class="parent"> <span class="p9"><a href="#" onClick="expandIt('KB3'); return false"> 
  </a></span></div>
<span class="p9"> 
<script language='JavaScript'>
    if (NS4) {
        firstEl = "KB1Parent";
        firstInd = getIndex(firstEl);
        arrange();
    }
</script>
</span> 
<p align="center"><a href="../Catalog.htm"><img src="../image/navtoc.gif" width="84" height="23" border="0"></a><a href="Chap6-1-3.htm"><img src="../image/Navprev.gif" width="80" height="23" border="0"></a><a href="Chap6-1-4.htm"><img src="../image/navnext.gif" width="83" height="23" border="0"></a></p>
<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>
</body>
</html>

⌨️ 快捷键说明

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