📄 lesson1401.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; color: #3333CC}
.p12 { font-size: 12pt; font-weight: bold; color: #FF3333}
-->
</style>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#000000" vlink="#000000" alink="#000000">
<a name="top"></a>
<script src="fubiao.js" tppabs="http://toye.dihou.org/img/fubiao.js"></script>
<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"> </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">
<tr bgcolor="#FFFF33">
<td>
<div align="center"><span class="p"><b><font color="#FF3333" class="p11">第十课
crack常见技巧</font></b></span></div>
</td>
</tr>
</table>
<table border="1" width="80%" cellpadding="0" bordercolor="#86D8FF" bgcolor="#FBFDFF" align="center">
<tr>
<td width="50%" valign="middle" align="center" class="p9" height="20">
<div align="left"><span class="p9"><span class="p9">1、<font color="#FF3366">一些常用方法</font></span></span></div>
</td>
<td width="50%" valign="top" class="p9" height="20">
<div align="left"><span class="p9"><span class="p9">5、<a href="lesson1406.htm" tppabs="http://toye.dihou.org/lesson1406.htm">Key
File保护</a></span></span></div>
</td>
</tr>
<tr>
<td width="50%" valign="middle" align="center" class="p9" height="20">
<div align="left"><span class="p9"><span class="p9">2、<span class="p9"><span class="p9"><a href="lesson1402.htm" tppabs="http://toye.dihou.org/lesson1402.htm">序列号方式</a></span></span></span></span></div>
</td>
<td width="50%" valign="top" class="p9" height="20"><span class="p9"><span class="p9">6、<span class="p9"><span class="p9"><a href="lesson1407.htm" tppabs="http://toye.dihou.org/lesson1407.htm">功能限制的程序</a></span></span> </span></span></td>
</tr>
<tr>
<td width="50%" valign="middle" align="center" class="p9" height="20">
<div align="left"><span class="p9"><span class="p9">3、<a href="lesson1403.htm" tppabs="http://toye.dihou.org/lesson1403.htm">NAG方式(警告窗口)</a></span></span></div>
</td>
<td width="50%" valign="top" class="p9" height="20"><span class="p9"><span class="p9">7、<a href="lesson1408.htm" tppabs="http://toye.dihou.org/lesson1408.htm">InstallSHIELD
Setups </a></span></span></td>
</tr>
<tr>
<td width="50%" valign="middle" align="center" class="p9" height="20">
<div align="left"><span class="p9"><span class="p9">4、<a href="lesson1404.htm" tppabs="http://toye.dihou.org/lesson1404.htm">运行时间限制</a></span></span></div>
</td>
<td width="50%" valign="top" class="p9" height="20">8、<a href="lesson1410.htm" tppabs="http://toye.dihou.org/lesson1410.htm">CD-check</a></td>
</tr>
</table>
<p align="center" class="p9"><span class="p9"><span class="p9">1、<span class="p9">一些常用方法</span></span></span></p>
<p align="left" class="p9"><b><font color="#000000">1、利用S命令查找字符串</font></b><br>
<br>
S命令是在在内存中搜寻特定数据,很常用,其一般格式:<br>
<b>S [-<font color="#FF6666">cu</font>][<font color="#FF3366">address</font>
L <font color="#FF6666">length</font> <font color="#FF3366">data-list</font>]</b><br>
<font color="#FF0099">address</font> :搜索的起始地址<br>
<font color="#FF3366">length </font> :搜索的长度(字节长)<br>
<font color="#FF3366">data-list</font> :可以是一系列字节,也可以是字符串, 字符串可以用单引号,也可以用双引号括住.<br>
<font color="#FF6666">-c </font> :使查找区分大小写<br>
<font color="#FF3333">-u</font> :查找Unicode 编码的字符串. </p>
<p align="left" class="p9">例: <br>
S 0 L FFFFFFFF 'string' (从0到FFFFFFFF找'string')<br>
S 0 L FFFFFFFF 42,75,4C,4C 65 54 (查找十六进制串42754C4C6554)<br>
S 30:0 L ffffffff 'string' 这条命令是在整个4GB虚拟地址范围里搜寻字符串 'string'</p>
<p align="left" class="p9"><font color="#3333FF">在此例中30:0中的“0030”是什么意思?</font></p>
<p align="left" class="p9">在win的保护模式下CS,DS,ES,FS,GS不叫段寄存器,叫段选择器! 在保护模式中,内存分为了好多的段,在trw下用gdt就可以看到段的<span class="p9">编号,类型,开始物理地址,SIZE,属性。让我们看看编号0030是什么东西!
</span></p>
<table width="80%" cellspacing="0" bgcolor="#E6E6F4">
<tr>
<td width="19%">
<div align="center"><span class="p9">编号</span></div>
</td>
<td width="12%">
<div align="center"><span class="p9">类型</span></div>
</td>
<td width="26%">
<div align="center"><span class="p9">开始物理地址</span></div>
</td>
<td width="23%">
<div align="center"><span class="p9">SIZE</span></div>
</td>
<td width="20%">
<div align="center"><span class="p9">属性</span></div>
</td>
</tr>
<tr>
<td width="19%">
<div align="center"><span class="p9">0030</span></div>
</td>
<td width="12%">
<div align="center"><span class="p9">data32</span></div>
</td>
<td width="26%">
<div align="center"><span class="p9">0000000</span></div>
</td>
<td width="23%">
<div align="center"><span class="p9">FFFFFFFF</span></div>
</td>
<td width="20%">
<div align="center"><span class="p9">0ewa</span></div>
</td>
</tr>
</table>
<p><span class="p9"> 这个段是32位数据类型,长度为4G ,我们还可以看到很多的段,它们有可能会指向同一个物理地址,但它们的类型,属性可能不同!
如一些段指向的地址是不可读写的,但另外一个段指向的同一物理地址是可读写的! 如果我们通过不可写的那段的编号放到段选择器,然后进行读写操作,肯定死掉了。
但换了另外一个段对同一个地方读写那就没问题! 保护模式的内存管理挺有趣的,大家不妨看看这方面的书! (D.Boy) </span></p>
<p align="left" class="p9"><b>2、如何比较两文件的不同</b><br>
<br>
2.1、用Wdasm反来后,用ultraedit来比较;<br>
<br>
2.2、用hex workshop 3.0来直接比较两EXE;<br>
<br>
2.3、你也可用补丁制作工具CodeFusion 3.0来比较两文件,具体参考补本制作一课。<br>
<br>
等等; </p>
<p align="left" class="p9"><b>3、如何截取汇编文本代码</b><br>
<br>
3.1 SOFTICE 第一步运行SOFTICE的symbol loader快捷方式,打开菜单的“SoftICE initialisation settings”选项。将历史缓冲区(history
buffer)调大些(默认为256,不能放足够多的缓冲数据)。然后切换到SOFTICE调试画面下,来到你要抓取的地方,反汇编这些代码,如:U CS:EIP
L 1000 ,立即按CTRL+D返回到windows环境,再次来到symbol loader程序,选择File/Save SoftICE History
As ... 。<br>
<br>
3.2 在SOFTICE基础下,装载Icedump 6.016,用:/Screendump抓取。 不加参数命令:/Screendump 选取模式,重复执行,会在0、1、2、3、4五种模式下转换。
模式1(默认)是以文本方式存盘,模式2是以HTML文件存盘。其它的请参考其readme. 模式选好后,就可用命令: /SCREENDUMP [路径]文件名
抓取整个SOFTICE的屏幕。<br>
<br>
3.3 在TRW2000下:u 401000,402000 >myfile或 u 401000 L 100 >myfile <br>
<br>
3.4 用W32DASM反汇编后截取,具体参考第八课。 </p>
<p align="left" class="p9"><b>4、充分利用条件中断</b><br>
<br>
4.1 在SOFTICE下: BPX <APIName> <Condition> 或 <COMMAND> DO "<COMMAND>"<br>
如:bpx GetWindowTexta if EAX==00000008 // 当 EAX=8中断GetWindowTexta<br>
BPX GetWindowTexta do "x"// 当 GetWindowTexta被中断SOFTICE自动回到windows界面。<br>
BPX GetWindowTexta do "d EAX"// 当 GetWindowTexta被中断,自动显示EAX的值。 <br>
<br>
4.2 在TRW2000下: BP?? <parameters> [IF (conditions)] [DO "statement"] <br>
如:g if ((byte)*eip==c2&&eip>401000&&al==ff) <br>
bpx loadlibrarya do "dd *(esp+4)" (注:该命令需在TRW2000 1.22版以上)<br>
</p>
<p align="left" class="p9"><b>5、利用宏来可方便平时的操作</b><br>
<br>
如我们经常把GetDlgItemText/GetDlgItemTextA/GetWindowText/GetWindowTextA同时设断,这样 SoftICE
就一定会拦住(至少在初级阶段是这样).这些是最常使用的 BPX,几乎对所有的程序都有效.我们可以在winice.dat里加上这一宏命令:<br>
MACRO bpxgeta="bpx GetDlgItemTextA; bpx getwindowtexta; bpx getdlgitemint; bpx
getdlgitemtext;"<br>
以后,只要下命命令令:bpxgeta就可。 <br>
</p>
<p align="left" class="p9"><b>6、其它一些技巧</b><br>
<br>
例:用两行指令设置EAX为1.<br>
①XOR EAX,EAX // 设置EAX为0<br>
MOV EAX,00000001 //把1放到EAX<br>
②XOR EAX,EAX // 设置EAX为0<br>
INC EAX // EAX加1<br>
③PUSH 00000001 // Push 1进栈<br>
POP EAX // 出栈1到EAX</p>
<p align="left" class="p9"><b>7、NOP指令</b><br>
<br>
尽量少用NOP指令补丁原程序,除非实在必要。可用其它更好的方法代替,如:INC EAX, DEC EAX 可替代两个NOP指令等。 </p>
<p align="left" class="p9">最后特别感谢RuFeng帮助。</p>
<table width="80%" border="1" cellspacing="0" cellpadding="0" align="center" bgcolor="#99CCFF" bordercolorlight="#99CCFF" bordercolordark="#99CCFF">
<tr>
<td width="82%" class="p8" height="34">Copyright @看雪 2000 All rights reserved
<a href="mailto:toye@126.com">与我联系</a></td>
<td width="10%" class="p9" height="34"><a href="index.htm" tppabs="http://toye.dihou.org/index.htm">返回<br>
首页</a></td>
<td width="8%" class="p8" height="34"><a href="molu.htm" tppabs="http://toye.dihou.org/molu.htm" class="p9">返回<br>
目录</a></td>
</tr>
</table>
<p> </p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -