非明码软件的入门教学
破解软件:CalcVoice计算器
破解人:PowerBoy
下载地址:电力系统网,“软件下载乐园”
软件介绍:该软件是一个语音计算器,可以进行二进制、十进制、八进制、十六进制的转换和三角函数的
计算,注册保护为软件自生成一个序列号,然后根据序列号算出注册码。(每台机器序列号都不相同)
并且有30次限制所以有2种选择:一种是暴力破解,另外一种是分析出算法写成注册机。
*************************************************************************************************************************
1.爆破
首先用language侦测发现是用aspack加的壳。选择用CASPR脱壳(效果好)。
运行软件弹出要求注册的对话框随便输入注册码弹出:
"对不起!您的注册码不正确,请与作者联系! "
接下来用w32dsam反汇编查找“串式参考”
发现此句,用左键双击来到程序中。
向上查找发现是由00476AE0(C)跳转来得(用右键双击)
查看程序发现如果00476AE0不跳转就可以来到:
"恭喜您,注册成功!谢谢您支持本软件,请保存好序列?
因此将3BC2757OB201改为
××7470×× je或
××9090×× nop 成功!!!!!!!!!!!!!!!
*************************************************************************************************************************
2.算法分析
因为该软件是非明码比较,这就要求破解者要有一定的算法破解基础了。废话不说了开始!
下断点:BPX HMEMCPY 按F12共N次来到下面...........
这时就要用F10了,并且要求要成用D和?命令查看个寄存器的数值,(要有宁可错杀一千不放过一个的态度才行啊!)
:00476AA3 55 push ebp
:00476AA4 687D6B4700 push 00476B7D
:00476AA9 64FF30 push dword ptr fs:[eax]
:00476AAC 648920 mov dword ptr fs:[eax], esp
:00476AAF 8D55FC lea edx, dword ptr [ebp-04]
:00476AB2 8B8634040000 mov eax, dword ptr [esi+00000434]
:00476AB8 E87FFFFBFF call 00436A3C
:00476ABD 8B45FC mov eax, dword ptr [ebp-04]
:00476AC0 83CAFF or edx, FFFFFFFF
:00476AC3 E8C41CF9FF call 0040878C-------------------->经过此CALL后,我们输入的SN变成十六进制,并保存倒EAX中;
:00476AC8 35630AB302 xor eax, 02B30A63---------------->EAX=EAX XOR 0x2B30A63
:00476ACD 35C5AC3703 xor eax, 0337ACC5---------------->EAX=EAX XOR 0x337ACC5
:00476AD2 8B15489D4700 mov edx, dword ptr [00479D48]---->EDX=0x13215B=1253723
:00476AD8 81F2630AB302 xor edx, 02B30A63---------------->EDX=EDX XOR 0x2B30A63//这时EDX的值就是机器码MN;
:00476ADE 3BC2 cmp eax, edx--------------------->比较EAX和EDX
:00476AE0 7570 jne 00476B52*********************关键跳转,不相等则跳,跳则死
:00476AE2 B201 mov dl, 01
:00476AE4 A174CC4600 mov eax, dword ptr [0046CC74]
:00476AE9 E88662FFFF call 0046CD74
:00476AEE 8BD8 mov ebx, eax
:00476AF0 BA02000080 mov edx, 80000002
:00476AF5 8BC3 mov eax, ebx
:00476AF7 E81863FFFF call 0046CE14
:00476AFC 33C9 xor ecx, ecx
* Possible StringData Ref from Code Obj ->"\Software\Microsoft\Active Setup\Installed "
->"Components"
|
:00476AFE BA946B4700 mov edx, 00476B94
:00476B03 8BC3 mov eax, ebx
:00476B05 E86E63FFFF call 0046CE78
* Possible StringData Ref from Code Obj ->"1.0"
|
:00476B0A B9D46B4700 mov ecx, 00476BD4
* Possible StringData Ref from Code Obj ->"Version"
|
:00476B0F BAE06B4700 mov edx, 00476BE0
:00476B14 8BC3 mov eax, ebx
:00476B16 E8F964FFFF call 0046D014
:00476B1B 8BC3 mov eax, ebx
:00476B1D E836CAF8FF call 00403558
:00476B22 6A00 push 00000000
:00476B24 668B0DE86B4700 mov cx, word ptr [00476BE8]
:00476B2B B202 mov dl, 02
* Possible StringData Ref from Code Obj ->"恭喜您,注册成功!谢谢您支持本软件,请保存好序列?
->"庞胱⒉崧?便于作者为您提供服务! "
->" 联系邮箱:JRYCL@163.COM"
|
:00476B2D B8F46B4700 mov eax, 00476BF4
:00476B32 E85999FBFF call 00430490
:00476B37 33D2 xor edx, edx
:00476B39 8B8618040000 mov eax, dword ptr [esi+00000418]
:00476B3F E818FEFBFF call 0043695C
:00476B44 A18C9C4700 mov eax, dword ptr [00479C8C]
:00476B49 C6802D02000001 mov byte ptr [eax+0000022D], 01
:00476B50 EB15 jmp 00476B67
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00476AE0(C)
|
:00476B52 6A00 push 00000000
:00476B54 668B0DE86B4700 mov cx, word ptr [00476BE8]
:00476B5B B201 mov dl, 01
* Possible StringData Ref from Code Obj ->"对不起!您的注册码不正确,请与作者联系! "
->"联系邮箱:JRYCL@163.COM"
|
:00476B5D B8646C4700 mov eax, 00476C64
:00476B62 E82999FBFF call 00430490
*******************************************************************************************************************
算法整理:
这是典型的非明码比较的注册码形式;
1.:00476ADE处比较EAX和EDX.如果相等就注册成功,不相等则注册失败;
我们来看:EAX中保存着我们输入的假SN变成十六进制形式在经过与常数XOR计算所得的数值,而EDX中保存着MN的十六进制形式;
如果想注册成功就要使EAX等于EDX;
2.好既然这样我们就令:EAX=EDX;然后,逆推;
(这里我们要知道一些必要的知识即:A XOR B = C 等价于 A XOR C = B 或 B XOR C = A);
如果知道这些就简单了啊!
用MN先与常数0x2B30A63异或,在与常数0x337ACC5异或;
最后,将所得的数变成十进制就是正确的注册码了啊!
例如:
MN=44051256
44051256=0x2A02B38
0x2A02B38 XOR 0x2B30A63 = 0x13215B
0x13215B XOR 0x337ACC5 = 0x3248D9E
0x3248D9E=52727198
SN=52727198
输入52727198显示成功!!!!!!!!
*********************************************************************************************************************
另外这个软件有个缺陷
如果在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components]
建立主键"Version"="1.0"
那么就不用注册就可以成功了啊!
*********************************************************************************************************************
相关视频
相关阅读 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破解如何给软件脱壳基础教程
查看所有0条评论>>