文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页精文荟萃破解文章 → 网际搜索 NetSearch V1.0算法分析

网际搜索 NetSearch V1.0算法分析

时间:2004/10/15 0:52:00来源:本站整理作者:蓝点我要评论(3)

 



▲软件名称▲  网际搜索 NetSearch V1.0

▲软件简介▲  一款互联网搜索软件,能有效的对网站、软件、新闻、音乐、图书、购物、股票等进行搜索,而不用烦索的登录到各大网站,直接在本软件内部输入关键字进行搜索,大大的节省了上网时间和费用。

▲破解难度▲  非明码破解。算法难度初级。

▲破解背景▲  这几天真的非常背呀!机器总是死机、重启,开不开又关不成!唉,命好苦呃。。。。索性上网找了个软柿子,拼命地狠捏了一通,算是解了心头之恨!!!!呵呵。。“高不成、低不就”的我在这里就再现一回眼,把它贴了出来啦!

▲破解过程▲
    这是一个非明码的注册方式,如果注册不对,它会有提示,又没加过壳,因此反编译是很容易的。但是,也正由于其非明码,所以可能对初学的朋友们来说会有些难度。因此,我尽量把过程写得细些,供大家参考。
    首先,设断Bpx hmemcpy,然后F5退出,然后填写名与码,然后点击注册认证,会中断。然后,清断,然后12下F12(因为13下会出错),就会来到如下地方:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004AC9C6(C)
|
:004ACA3B 8B45F4                  mov eax, dword ptr [ebp-0C]======>我们停在这儿。

:004ACA3E E87974F5FF              call 00403EBC======>取注册名的长度并保存在EAX中。

:004ACA43 8BF0                    mov esi, eax========>ESI=EAX=注册名的长度
:004ACA45 85F6                    test esi, esi=======>测试ESI是否为0。即:判断是否什么都没输入。
:004ACA47 7E38                    jle 004ACA81========>什么都没输入就跳了,那就玩完。。
:004ACA49 C745F001000000          mov [ebp-10], 00000001====>给[ebp-10]赋值为01,下边要用到它进行一次传送,然后作为循环计算时的计数器。

===================循环计算开始===================

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004ACA7F(C)
|
:004ACA50 8D45EC                  lea eax, dword ptr [ebp-14]
:004ACA53 50                      push eax
:004ACA54 B901000000              mov ecx, 00000001=============>ECX=01
:004ACA59 8B55F0                  mov edx, dword ptr [ebp-10]===>EDX=[ebp-10],就是上边提到的已经被赋值为01的那个。这里给EDX赋值为01,其作用就是为下边即将进行的循环过程计数。

:004ACA5C 8B45F4                  mov eax, dword ptr [ebp-0C]===>EAX=用户名
:004ACA5F E86076F5FF        call 04040C4===============>依次取用户名的每一个字符送给EAX

:004ACA64 8B45EC                  mov eax, dword ptr [ebp-14]===>EAX=用户名第一个字符
:004ACA67 E81476F5FF              call 00404080=================>取字符的$
:004ACA6C 8A00                    mov al, byte ptr [eax]========>AL=所取字符的$
:004ACA6E 25FF000000              and eax, 000000FF=============>EAX和000000FF进行与运算,事实上就是把EAX的值写为上面所取字符的16进制值。

:004ACA73 03D8                    add ebx, eax==================>EBX=EBX+EAX。什么意思呢?就是说,依次取了我们输入的用户名的字符后,把所取的字符值存入了EAX,然后把这个值与EBX相加,结果存入了EBX。EBX在初始时,值是0,因此,第一次运行到这里,就是把我们所取的第一个用户名$给了EBX。下次开始再运行到这里时,就是把后面的计算结果与每次所取的字符值依次相加后,放入EBX了。呵呵。。。。因此,第一次时,EBX=EAX。

:004ACA75 81C351EBC900            add ebx, 00C9EB51=============>上面的结果EBX与00C9EB51相加,再把计算的和存在EBX中。
:004ACA7B FF45F0                  inc [ebp-10]==================>[ebp-10]加1,开始计数。
:004ACA7E 4E                      dec esi=======================>ESI减1。前面ESI已经被赋值为用户名$长度了,因此,这里减1,意味着已经有一个字符被取算完成。

:004ACA7F 75CF                    jne 004ACA50==================>没取完跳回,取完继续。

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004ACA47(C)
|
:004ACA81 8D55E8                  lea edx, dword ptr [ebp-18]
:004ACA84 8B45FC                  mov eax, dword ptr [ebp-04]
:004ACA87 8B8000090000            mov eax, dword ptr [eax+00000900]
:004ACA8D E8FA07F8FF              call 0042D28C=====================>取注册码个数
:004ACA92 8B45E8                  mov eax, dword ptr [ebp-18]=======>EAX=[ebp-18]=输入的注册码
:004ACA95 E8F6C0F5FF              call 00408B90=====================>取注册码的值存入EAX
:004ACA9A 3BD8                    cmp ebx, eax======================>比较EBX与EAX。即比较前面计算的结果值与注册码的值是否相等
:004ACA9C 7519                    jne 004ACAB7======================>不相等,就完蛋啦!
:004ACA9E C645FB01                mov [ebp-05], 01
:004ACAA2 B8B49A4C00              mov eax, 004C9AB4
:004ACAA7 8B55F4                  mov edx, dword ptr [ebp-0C]
:004ACAAA E8E171F5FF              call 00403C90
:004ACAAF 891DB89A4C00            mov dword ptr [004C9AB8], ebx
:004ACAB5 EB04                    jmp 004ACABB

▲算法总结▲
        用户名与注册码的关系应该是这样的:比如,我取用户名为ABC。那么,先经过如下计算得到EBX的值为41+00C9EB51+42+00C9EB51+43+00C9EB51=25DC2B9。然后,将其转化为10进制值:39699129。这就是注册码了。应该指出的是,这个软件对注册码长度是没有限制的,哪怕你只在用户名中输入一个字符,那么也可以注册成功!中文名字就更可以啦!只是要注意,中文名字一个字相当于两个字节长度的。呵呵。。。。
    收工喽…………………………@!@

--------------------------------------------------------------------------------
   神龙宝宝
goodbao[P.J.CHINA][BCG][CNCG]


    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程