用SOFTICE破解WINZIP的过程
fcrackzip用法

fcrackzip用法fcrackzip是一款用于破解zip文件密码的工具。
它可以通过暴力破解、字典攻击和混合攻击的方式快速找到密码,从而解压加密的zip文件。
本文将逐步介绍fcrackzip的使用方法,帮助读者理解和掌握这个强大的密码破解工具。
第一步:安装fcrackzip要使用fcrackzip,首先需要在计算机上安装它。
在Linux系统中,可以通过包管理器直接安装fcrackzip。
如果你使用的是Debian或Ubuntu系统,可以打开终端并输入以下命令进行安装:sudo apt-get install fcrackzip如果你使用的是其他Linux发行版,可以根据自己的发行版文档进行安装。
第二步:理解基本语法在使用fcrackzip之前,我们需要了解一些基本的语法规则。
fcrackzip命令的基本格式如下:fcrackzip [OPTIONS] <zipfile>其中,<zipfile>是要破解的zip文件的路径。
而[OPTIONS]是可选的命令参数,用于指定破解的方式和其他设置。
第三步:使用字典攻击字典攻击是一种基于事先准备好的字典文件进行尝试的破解方法。
fcrackzip支持使用字典文件进行攻击。
假设我们有一个字典文件dict.txt,可以使用以下命令进行字典攻击:fcrackzip -D -p dict.txt <zipfile>其中-D命令参数表示使用字典攻击,-p命令参数后面指定了字典文件的路径。
第四步:使用暴力破解暴力破解是一种尝试所有可能的组合来寻找正确密码的破解方法。
fcrackzip通过设置密码的最小长度和最大长度来限制破解范围。
可以使用以下命令进行暴力破解:fcrackzip -b -c 'aA1!' -l 4-6 <zipfile>其中-b命令参数表示使用暴力破解,-c命令参数后面指定了密码的字符集合,-l命令参数指定了密码的长度范围。
zip压缩包解压密码的方法

zip压缩包解压密码的方法
要解压一个zip压缩包,你需要知道该压缩包的解压密码。
以下是一些方法可以尝试解压密码:
1. 尝试常用密码:使用一些常见的密码,如“123456”、“password”、“qwerty”等来尝试解压密码。
2. 使用密码破解软件:有一些专门用于破解压缩包密码的软件,如“ZIP Password Cracker”、“Passware Kit”等。
这些软件通常使用暴力破解或字典攻击等技术,来尝试猜解密码。
3. 使用在线密码破解工具:有一些在线工具可以帮助破解压缩包密码,如“CrackStation”、“OnlineHashCrack”等。
你可以上传压缩包到这些网站,让它们进行密码猜测。
4. 使用自定义密码字典:你可以创建一个包含各种可能的密码组合的字典文件,并使用这个字典文件进行密码破解。
5. 使用压缩包的相关信息:如果你对压缩包的创建者或相关信息有了解,你可以尝试使用这些信息来猜测解压密码。
例如,创建者的姓名、生日或其他个人信息可能会成为密码的一部分。
需要注意的是,以上方法并不能保证一定能够成功破解压缩包密码。
破解密码是一项复杂的任务,需要用到计算资源和时间。
此外,破解压缩包密码可能会涉及到非法行为,因此在使用这些方法时,请确保你有合法的授权或权利。
用一个软件教你如何破解的多种方式

描述:10按下F9开始运行软件,当显现注册的提示时,随意输入注册码,点击注册,发觉没有跳犯错误提示,因为软件运行到断点时候就停住了。现在按F8让软件单步运行,同时咱们注意观看右边寄放器中的ASCII值。
图片:
描述:11、右键,将寄放器的信息复制出来,也就取得了注册码。咱们能够用那个注册码去注册软件了注册图片:
描述:12注册结果固然是成功了。至此,咱们成功的追踪到了注册码。图片:
三、追踪注册码,名正言顺的注册成功。另外一个思路,其实软件已经在寄放器中放置了真码,只是咱们看不见。咱们能够用调试工具让软件一步步运行,咱们查看寄放器,找到真码。原理分析:真码已经在寄放器中贮存,调试工具能够查看寄放器内容。在软件中很重要的是CALL命令,CALL是挪用,存在一个关键CALL,挪用的确实是寄放器里的真码。找到那个关键CALL,就能够够看到真码,用它来注册,固然会成功。一样来讲,关键CALL在判定的上方。工具:调试工具(我适应Ollyice)
只用一个软件,说明破解的层次!
前言
原理分析:一样来讲,试用次数被记录在注册表中,不管利用了
4、
HKEY_LOCAL_\SOFTWARE\Microsoft\Crypt
4、显示
jl
4、
的地址。若是相同,就会向下运行,来到
10、
步骤:
二、
五、
五、
Com这一项的转变是因为咱们注册的公司名称有改变,day这一项为哪一项因为咱们启动了软件,致使试用次数减少。而id这一项为哪一项真正注册成功前后的转变。而这一项的数值咱们超级熟悉,它确实是软件的机械识别码!因此,那个软件注册的本质确实是,注册表中id的值假设是机械识别码,就会变成注册版。因此,咱们又取得了一种破解方式,不用追踪注册码,不用爆破,只要将机械识
zip压缩文件密码的解密方法

文章标题:解密zip压缩文件密码的方法1. 引言在日常生活中,我们经常会遇到需要使用zip压缩文件的情况。
然而,有时候我们会遇到遗忘密码的情况,或者需要破解别人设置的密码。
本文将深入探讨zip压缩文件密码的解密方法,帮助读者从简到繁,由浅入深地理解这一主题。
2. 基本概念让我们来了解一下zip文件加密的基本概念。
zip文件是一种常见的文件压缩格式,通过密码对zip文件进行加密可以保护文件的安全性。
密码是通过加密算法对文件进行处理,只有输入正确的密码才能解密文件。
zip文件密码的解密实质上是破解加密算法,找到正确的密码。
3. 简单解密方法对于简单的zip文件密码,我们可以尝试一些容易破解的方法。
使用常见的密码,尝试生日、通信方式号码、纪念日等可能与文件所有者相关的信息。
我们还可以尝试使用一些常见密码字典,如123456、password等,进行暴力破解。
这些简单的方法可能会在一定程度上帮助我们找到密码。
4. 破解工具的使用除了简单的方法,我们还可以利用一些破解工具进行密码的破解。
有一些专门针对zip文件的破解软件,通过暴力破解或者字典破解的方式,可以大大提高密码破解的成功率。
一些密码管理工具也提供了zip 文件密码找回的功能,可以帮助用户找回或者重置密码。
5. 高级密码破解技术如果遇到较为复杂的密码,简单的方法和破解工具可能无法满足我们的需求。
这时,我们可以尝试一些高级密码破解技术,如使用暴力破解软件配合GPU加速,或者使用社会工程学的手段获取密码提示信息。
当然,这些方法需要一定的计算机技术和经验,需要谨慎使用并且遵守法律规定。
6. 个人观点和理解从我个人的角度来看,密码的保护和破解是一个技术和道德并存的问题。
在使用密码进行加密时,我们应该选择足够复杂的密码,并且定期更换以保护文件的安全。
对于忘记密码的情况,我们可以尝试一些方法找回密码,但需要注意合法合规,避免非法破解行为。
7. 总结通过本文的探讨,我们对zip文件密码的解密方法有了全面的认识。
快速解压压缩包的方法

快速解压压缩包的方法说实话快速解压压缩包这事,我一开始也是瞎摸索。
我试过好多解压软件,就像在一个装满工具的大盒子里找最称手的那一个。
首先是电脑系统自带的解压功能,你知道的,它就像那种最基础的工具,有时候挺方便,但遇到一些复杂的压缩包,那真的很让人头疼。
我有一次收到一个大的压缩包,想着直接用系统解压应该也能行,结果呢,速度特慢,而且还老是出现解压错误,就像一个小马拉大车,根本搞不定。
后来我就去网上搜各种解压软件。
WinRAR算是比较大众的一个,我用的时候感觉还不错。
它的解压速度相对系统自带的要快不少。
安装之后,只要右键单击压缩包,然后选择解压到指定文件夹就行,就像给一个小包裹明确一个放置的地方。
不过呢,这个软件有时候会碰到广告的问题,有点小烦人。
还有7 - Zip,这可是个宝藏软件啊!我试过用来解压那种又大又复杂格式的压缩包。
操作简单得很,和WinRAR差不多,也是右键菜单里解压。
它好像更加擅长处理一些不常见格式的压缩包。
我有个朋友给我发了个.sitx格式的压缩包,好多软件都解不了,我试了7 - Zip就能行。
而且它免费、开源,不用担心啥版权问题。
再就是Bandizip,这个软件界面特别清爽。
它的解压速度也让我挺惊喜的。
我下载了个大型游戏的压缩包,用Bandizip解压。
在解压开始的时候,还能看到一个预估的解压时间,这就像给你吃个定心丸,心里有个底。
在解压过程中,它会清楚地显示解压的进度,就跟跑步的时候有个里程表似的。
要是你搞不清哪个压缩包是什么格式的,你可以先看看压缩包的后缀名。
这就好比看一个人的姓氏,先知道个大概分类。
然后再根据这个来选择合适的解压软件。
不过我不太确定是不是所有解压软件都能兼容所有格式,反正目前我用这几个软件基本能搞定我遇到的大多数压缩包。
总之多试试不同的解压软件,找到最适合自己的那个,这样解压压缩包的时候就又快又顺利啦。
十招教你学会破解密码

十招教你学会破解密码下面谈到了一些在学习解密过程中经常遇到的问题,本人根据自己的经验简单给大家谈一谈。
这些问题对于初学者来说常常是很需要搞明白的,根据我自己的学习经历,如果你直接照着很多破解教程去学习的话,多半都会把自己搞得满头的雾水,因为有很多的概念要么自己不是很清楚,要么根本就不知道是怎么一回事,所以希望通过下面的讨论给大家一定的帮助:1. 断点:所谓断点就是程序被中断的地方,这个词对于解密者来说是再熟悉不过了。
那么什么又是中断呢?中断就是由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。
打个比方:你正在上班,突然有同学打电话告诉你他从外地坐火车过来,要你去火车站接他。
然后你就向老板临时请假,赶往火车站去接同学,接着将他安顿好,随后你又返回公司继续上班,这就是一个中断过程。
我们解密的过程就是等到程序去获取我们输入的注册码并准备和正确的注册码相比较的时候将它中断下来,然后我们通过分析程序,找到正确的注册码。
所以我们需要为被解密的程序设置断点,在适当的时候切入程序内部,追踪到程序的注册码,从而达到crack的目的。
2. 领空:这是个非常重要的概念,但是也初学者是常常不明白的地方。
我们在各种各样的破解文章里都能看到领空这个词,如果你搞不清楚到底程序的领空在哪里,那么你就不可能进入破解的大门。
或许你也曾破解过某些软件,但那只是瞎猫碰到死老鼠而已(以前我就是这样的^_^,现在说起来都不好意思喔!)。
所谓程序的领空,说白了就是程序自己的地方,也就是我们要破解的程序自己程序码所处的位置。
也许你马上会问:我是在程序运行的时候设置的断点,为什么中断后不是在程序自己的空间呢?因为每个程序的编写都没有固定的模式,所以我们要在想要切入程序的时候中断程序,就必须不依赖具体的程序设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。
winrar介绍及破解方法
* WinRAR 采用独创的压缩算法。
这使得该软件比其他同类 PC 压缩工具拥有更高的压缩率,尤其是可执行文件、对象链接库、大型文本文件等。
RAR 在 DOS 时代就一直具备这种优势,经过多次试验证明,WinRAR 的 RAR 格式一般要比 WinZIP 的 ZIP 格式高出 10%~30% 的压缩率,尤其是它还提供了可选择的、针对多媒体数据的压缩算法。
* WinRAR 针对多媒体数据,提供了经过高度优化后的可选压缩算法。
WinRAR 对 WAV、BMP 声音及图像文件可以用独特的多媒体压缩算法大大提高压缩率,虽然我们可以将 WAV、BMP 文件转为 MP3、JPG 等格式节省存储空间,但不要忘记 WinRAR 的压缩可是标准的无损压缩。
* WinRAR 支持的文件及压缩包大小达到 9,223,372,036,854,775,807 字节,约合 9000 PB 。
事实上,对于压缩包而言,文件数量是没有限制的。
* WinRAR 完全支持 RAR 及 ZIP 压缩包,并且可以解压缩 CAB、ARJ、LZH、TAR、GZ、ACE、UUE、BZ2、JAR、ISO、Z、7Z 格式的压缩包。
虽然 WinZIP 也能支持 ARJ、LHA 等格式,但却需要外挂对应软件的 DOS 版本,实在是功能有限。
但 WinRAR就不同了,不但能解压多数压缩格式,且不需外挂程序支持就可直接建立 ZIP 格式的压缩文件,所以我们不必担心离开了WinZIP 如何处理ZIP 格式的问题。
* WinRAR 支持 NTFS 文件安全及数据流。
* WinRAR 提供了 Windows 经典互交界面及命令行界面。
让我们通过开始选单的程序组启动 WinRAR,在其主界面中选择“选项”选单下的“设置”打开设置窗口,分为常规、压缩、路径、文件列表、查看器、综合六大类,非常丰富,通过修改它们,可以更好地使用 WinRAR。
WinRAR 仍支持类似于 DOS 版本的命令行模式,格式为:WinRAR <命令> -<开关><压缩包><文件...><解压缩路径\>a 压缩,e、x 解压等常用参数基本无异于DOS版本,可以在批文件中方便地加以引用。
压缩软件winrar破解密钥
压缩软件WinRAR并不是免费软件,用了40天后,每次解压文件时都会弹出一提示,问你是否购买(但不影响功能),下面说下最新版的WinRAR v3.71(现在有更新版了,一样可以破解!)的破解注册方法,很简单的!注册方法:新建记事本文件(txt文件),把以下代码复制进去,然后将文件另存为以rarreg.key 为文件名的文件(当然由于设置的不同,可能出现你保存后的文件为rarreg.key.txt 没关系,将其重命名,删掉.txt 会提示“改扩展名可能导致文件不可用”时点“确定”)将文件放到你的WinRAR安装目录就可以了!(默认安装的目录是C:\Program Files\WinRAR)现在再双击一个解压包看看,它不会提示你注册了!3.7版注册码--------------------------------------------------------------------------------RAR registration datacafevnSingle PC usage licenseUID=bff246844b5c5708595a6412212250595aa9dfb5db06ca5c5b29cb38d3c346df871e689fcd26d40cd6724c7fea7a256035c6ab9048e2c5c62f0238f183d28519aa87488bf38f5b634cf28190bdf438ac593b1857cdb55a7fcb0eb0c3e4c2736090b3dfa45384e08e9de05c58601faaa5bf2fd204421a0af4a66c04f5f95c750b942c262c8defc92d51753d37c41772b696179d2401468afd8cdf6b526bd713b62d9d1c8b39f8f5c862600bd16f2be0ead43d89dc20da9c292bbc37165bb690729a430802790431--------------------------------------------------------------------------------万一上面的不行,再用同样的方法试下这个:RAR registration dataRoland Geister2 PC usage licenseUID=35d377df3f9109c0cf986412212250cf98ba909aa421df59c2d9bfc2c56fe441d634efdebdb34590837e4f735ccf2160ad3921ca0a4618e1028035530675182a9455738d54a57e0ab2d29c2cf0c09f37ac90929aab3444e12e34a236753ff101333ca3b035205e5fe287ab57600a54c3dee94d01de64c598977c4565bc9cfce96f7199d75c1fd8170352555cf8d930f52b4ccfcc9995943805965eeb92f6adb9fd9d032c1e77e51ffc60e6074fed6a1f6e6cc09f1a5773bbc9c878366f5a20ffcae94083722782--------------------------------------------------------------------------------3.8版注册码RAR registration dataFederal Agency for Education1000000 PC usage licenseUID=b621cca9a84bc5deffbf6412612250ffbf533df6db2dfe8ccc3aae5362c06d54762105357d5e3b1489e751c76bf6e0640001014be50a52303fed29664b0741457e567d04159ad8defc3fb6edf32831fd1966f72c21c0c53c02fbbb2f91cfca671d9c482b11b8ac3281cb21378e85606494da349941fae9ee328f12dc73e90b6356b921fbfb8522d6562a6a4b97e8ef6c9ffb866be1e3826b5aa126a4d2bfe9336ad63003fc0e71c307fc2c6064416495d4c55a0cc82d402110498da970812063934815d81470829275--------------------------------------------------------------------------------3.9版注册码我之前装的3.8版使用的上面的注册文件,升级3.9时是覆盖安装的,结果3.9版也是注册了的。
winzip怎么用?
winzip怎么用?winzip软件怎么使用,具体可以通过以下步骤操作来实现:一、轻松自如来压缩1、首先从系统的资源管理器中找到需要压缩的文件或文件夹,单击鼠标右键,从弹出菜单上选择“WinZip”→“Add to Zip file”。
2、在弹出的窗口中填上压缩后的文件名,按下“Add”按钮便可开始压缩。
压缩完成,硬盘上会生成一个新的压缩文件,文件后缀名为zip。
提示:在进行第1步时,直接在弹出菜单上选择“Add to x.zip”(x为文件名)就可快速地生成压缩文件。
二、快速解压缩1、在系统的资源管理器中,用鼠标右键单击某个zip格式的压缩文件,在弹出菜单上选择“WinZip”→“Extract to folder”,打开“WinZip Extract”窗口。
2、在“Folders/drives”框中选中某个文件夹,再按下“Extract”按钮,就可以将压缩文件解压至其中。
提示:WinZip 8.1会记录下压缩过的文件。
想更快地对压缩文件实施解压,可以用鼠标右键单击系统任务栏上的Zip小图标,再在弹出菜单上进行选择。
三、同时查看多个压缩文件1、先在系统的资源管理器中同时选中几个需要解压的文件,单击鼠标右键,再在弹出菜单上选择“Open with WinZip”。
2、此时出现多个窗口。
请注意,这个时候并没有解压,但你已经可以查看压缩文件内部的内容了。
四、给压缩文件加密通过E-mail把压缩文件发送出去之前,你应该考虑给压缩文件加密,这样可以防止压缩文件被人随意查看。
1、在系统的资源管理器中选中文件,从右键菜单中选择“WinZip”→“Zip and E-Mail Plus”。
2、此时会弹出一个窗口,选中“password protect Zip file”后按“OK”按钮,紧接着会要求你输入密码,输入两次密码并确认无误后按下“OK”按钮。
五、对压缩后的文件进行分割当压缩后的文件大小超出了磁盘容量时,我们可以对它进行分割,这样就可以把分割后的文件分别保存到多张磁盘中。
软件注册码破解案例教程
软件注册码破解案例教程
一、大致介绍
破解软件注册码是一种技术,它可用于破解软件的注册码,使你可以在未付费情况下使用被激活的软件的所有功能。
通常,破解软件注册码通过修改已有软件的设置、注册信息或文件等实现激活,从而使用未经授权的软件或服务。
二、基本步骤
2.获取破解文件。
破解文件包括一个或多个文件,用于将安装文件和软件的注册号绑定在一起,以便在安装过程中不需要付费就可以激活该软件。
它们可以从网络上免费获取,也可以购买。
3.安装软件。
安装软件时,需要参考安装文件的说明,正确完成安装过程。
4.安装破解文件。
使用破解文件时,需要将它们复制到软件安装目录中,并按照说明进行设置。
5.运行软件,打开软件,用破解文件激活软件,完成激活。
三、工具介绍
1.破解器/加密狗:破解器/加密狗是一类专用于破解软件注册码的设备,可以用于清除软件的注册信息,以达到激活的效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用SOFTICE破解WINZIP的过程1. 用softice载入windows(通过CTRL+D来检查softice是否已经准备好,按F5退出softice);2. 运行winzip,选择“help”下的“Enter Registration Code...”;3. 在“Name:”中输入:KraneXH(随意),“Registration#:”中输入:12345678(随意);4. 用CTRL+D呼出softice,下万能断点:bpx hmemcpy,按F5返回到winzip;5. 在winzip中选择“OK”,很快程序就被softice拦截下来(因为我们设置了断点bpx hmemcpy,当在winzip中选择“OK”时,winzip会通过hmemcpy这个功能去取我们输入的名字“KraneXH”和注册码“12345678”,softice检测到hmemcpy被调用,于是就中断winzip的运行,停留在winzip 中调用hmemcpy的地方);6. 用 bd * 暂停刚才设置的断点 bpx hmemcpy (为什么要暂停断点bpx hmemcpy呢?因为我们的目的是要在winzip取名字和注册码的时候中断它的运行,但是 bpx hmemcpy 这个断点并不是针对winzip才有效的,计算机里运行的程序都可能会随时调用它。
由于我们在winzip中刚输入名字和注册码后设置断点 bpx hmemcpy ,此时winzip会马上去取我们输入的名字和注册码,所以我们能确保是中断在winzip程序中,通过 bd * 这个命令暂停断点 bpx hmemcpy ,能够防止解密时被其它不相干的程序中断,影响解密的正常进行);7. 按F12键9次,返回到winzip的领空(因为刚才softice中断在hmemcpy中,这是windows 系统区域,不能更改的,winzip仅仅是调用这个功能而已,所以我们必须要返回到winzip程序中才有用),来到下面的地方:......0167:00407F6D CALL[USER32!GetDlgItemTextA]0167:00407F73PUSH EDI←- 程序停留在这里,EDI指向“KraneXH”0167:00407F74CALL0043F89A0167:00407F79PUSH EDI0167:00407F7A CALL0043F8C30167:00407F7F POP ECX0167:00407F80MOV ESI, 0048CDA40167:00407F85POP ECX0167:00407F86PUSH0B0167:00407F88PUSH ESI0167:00407F89PUSH00000C810167:00407F8E PUSH EBX0167:00407F8F CALL[USER32!GetDlgItemTextA]0167:00407F95PUSH ESI←- ESI指向“12345678”0167:00407F96CALL0043F89A0167:00407F9B PUSH ESI0167:00407F9C CALL0043F8C30167:00407FA1CMP BYTE PTR [0048CD78],00←- [0048CD78]指向“KraneXH”0167:00407FA8POP ECX0167:00407FA9POP ECX0167:00407FAA JZ004080050167:00407FAC CMP BYTE PTR [0048CDA4],00←- [0048CDA4]指向“12345678”0167:00407FB3JZ004080050167:00407FB5CALL004079050167:00407FBA TEST EAX,EAX0167:00407FC3JZ00408005......8. 我们从调用hmemcpy的系统区域中返回到winzip领空时,程序停留在0167:00407F73 PUSH EDI上,看看它上面的那条指令0167:00407F6D CALL [USER32!GetDlgItemTextA],这个CALL就是取我们输入数据的程序,也就是这个CALL让我们用 bpx hmemcpy 将winzip拦截了下来。
既然winzip用这个CALL去取输入的东西,那么调用之后肯定会返回结果的,让我们来看看:用 D EDI ,观察softice的数据区,你会看到EDI指向的内存区域的内容是我们输入的名字“KraneXH”;9. 从程序中可看出,下面不远的地方还有一个同样的地方调用USER32!GetDlgItemTextA,既0167:00407F8F CALL[USER32!GetDlgItemTextA]这一行。
按F10键多次,走到这个CALL 的下一句停下,既程序停在0167:00407F95PUSH ESI这条指令上,用 D ESI ,同样的我们可以看到ESI指向的内存区域的内容是我们输入的注册码“12345678”。
现在winzip已经将我们输入的名字和注册码都取到,让我们来看看它下一步要做什么?10. 继续按F10多次,当程序走到0167:00407FA1CMP BYTE PTR [0048CD78],00时停下来,这条指令将内存0048CD78中的数据和00比较,然后根据比较结果判断程序走向。
用 D 0048CD78,观察softice的数据区,我们可以看到0048CD78中的数据是“KraneXH”,现在我们知道这条指令的作用是判断我们输入的名字是否为空,如果没有输入任何东西,程序将会跳到00408005去;同样的,按F10走到0407FAC CMP BYTE PTR [0048CDA4],00这行停下,然后用 D 0048CDA4,可以看到0048CDA4中的数据是“12345678”。
因为我们输入了名字和注册码,所以程序不会跳到 00408005去,程序检查输入的名字和注册码,如果任何一个没有输入(既其值为00),程序都会跳到00408005去,由此我们应该想到00408005很可能就是显示出错的地方,即当程序走到00408005 的时候,表示输入的名字和注册码是错误的;11. 按F10两次来到下面的那个CALL00407905(因为程序刚才停在0167:00407FAC CMP BYTE PTR [0048CDA4],00上):......0167:00407FB5CALL00407905←- 程序停留在这里0167:00407FBA TEST EAX,EAX0167:00407FC3JZ00408005......程序判断输入的名字和注册码是否为空后调用CALL00407905,这个CALL将结果返回到EAX 中,程序根据EAX值判断走向。
从程序可以知道,如果EAX的返回值是0,则程序会跳到00408005,就是刚才我们判断是有问题的地方。
那么这个CALL倒底藏着什么猫腻呀?现在还不是很清楚,接着按F10两次来到JZ00408005停下。
现在看看softice中的零(即Z)标志位,其值是零,所以程序将会跳到00408005去,我们姑且按F10跳到00408005去看个究竟:......0167:00408005CALL004082A6←- 程序停留在这里0167:0040800A PUSH0000028E0167:0040800F CALL0043F5ED0167:00408014PUSH EAX0167:00408015PUSH EBX0167:00408016PUSH3D0167:00408018CALL00430025←- 出现错误框0167:0040801D ADD ESP,100167:00408020INC DWORD PTR [00487AF8]0167:00408026CMP DWORD PTR [00487AF8],03←- 判断错误次数是否到了3次?0167:0040802D JNZ0040812C0167:00408033PUSH000167:00408035PUSH EBX0167:00408036CALL[USER32!EndDialog]0167:0040803C JMP0040812C......12. 一直按F10走过0167:00408018CALL00430025,这是程序蹦出一个窗口,警告:Incomplete or incorrect information(不完整或不正确的信息),程序走到这里就已经很明朗了:如果程序在前面的时候跳到00408005来,就表示输入的名字和注册码是错误的,所以刚才的那个0167:00407FB5CALL00407905一定是比较输入的注册码是否正确的地方,也就是里面肯定有将我们输入的注册码和正确的注册码相比较的地方,所以我们要进入CALL00430025里去看看。
如果继续往CALL00430025下面的语句看的话,你会看到下面的几句:0167:00408020INC DWORD PTR [00487AF8]0167:00408026CMP DWORD PTR [00487AF8],030167:0040802D JNZ0040812C程序先将内存00487AF8处的值加1(其初始值为0,可以在这条语句前用 D 00487AF8 查看),然后比较是否是3,如果不是就跳到0040812C,如果是则执行后面的0167:00408036CALL [USER32!EndDialog],其作用就是关闭对话框,也就是我们输入名字和注册码的窗口。
由此我们可以看出此处程序的作用是检查错误输入名字、注册码的错误次数是否已经到了3次,如果到了3次,则关闭对话框,不允许再输入;如果少于3次,可有机会再次输入名字和注册码。
13. 重复前面的步骤1到11,让程序停在0167:00407FB5CALL00407905上,然后按F8进入这个CALL里面去:......0167:004079D5PUSH EBP0167:004079D6PUSH EBP,ESP0167:004079D8SUB ESP,000002080167:004079DE PUSH EBX0167:004079DF PUSH ESI0167:004079E0XOR ESI,ESI0167:004079E2CMP BYTE PTR [0048CD78],000167:004079E9PUSH EDI0167:004079EA JZ00407A8A......14. 按F10键N次(我也不知道几次,你自己数一数吧^_^),一直来到下面的地方停下:......0167:00407A91LEA EAX,[EBP-0140]←- 程序停留在这里0167:00407A97PUSH EAX0167:00407A98PUSH EDI←- EDI指向输入的名字“KraneXH”0167:00407A99CALL00407B47←- 计算注册码0167:00407A9E MOV ESI,0048CDA40167:00407AA3LEA EAX,[EBP-0140]0167:00407AA9PUSH ESI←- ESI指向输入的注册码“12345678”0167:00407AAA PUSH EAX←- EAX指向正确的注册码“5CFC0875”0167:00407AAB CALL004692D00167:00407AB0ADD ESP,100167:00407AB3NEG EAX0167:00407AB5SBB EAX,EAX0167:00407AB7INC EAX0167:00407AB8MOV[00489FDC],EAX0167:00407ABD JNZ00407B270167:00407ABF LEA EAX,[EBP-0140]0167:00407AC5PUSH EAX0167:00407AC6PUSH EDI←- EDI指向输入的名字“KraneXH”0167:00407AC7CALL00407BE4←- 计算注册码0167:00407ACC LEA EAX,[EBP-0140]0167:00407AD2PUSH ESI←- ESI指向输入的注册码“12345678”0167:00407AD3PUSH EAX←- EAX指向正确的注册码“23804216”0167:00407AD4CALL004692D00167:00407AD9ADD ESP,100167:00407ADC NEG EAX0167:00407ADE SBB EAX,EAX0167:00407AE0INC EAX0167:00407AE1MOV[00489FDC],EAX0167:00407AE6JNZ00407B27......15. 大家一定会问:为什么会在这里停下,而不是其它地方呢?因为我在前面的程序中已经用 D *** 看过了,没有发现什么可疑的呀^_^!按F10走到0167:00407A99CALL00407B47处,用 D EAX 和 D EDI 观察其里面是什么?可以看到EDI指向我们输入的名字“KraneXH”,EAX指向的内存区域没有什么特别的数据;紧接着下面的CALL00407B47 会对“KraneXH”进行一些处理,具体的我们还不知道,继续往后走;16. 按F10走到0167:00407AAB CALL004692D0这一句,然后用 D ESI 和 D EAX 查看内存中的数据,可以看到ESI指向我们输入的注册码“12345678”,而EAX指向另外一串字符“5CFC0875”。