庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>安全技术>软件破解>破解实例>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

短信群发专家3.0 商务版分析 下

 作者:本站收集   日期:2005-5-26
字号选择〖 〗/ 双击滚屏 单击停止   

016F:0057B701 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B704 8B55F0           MOV      EDX,[EBP-10]
016F:0057B707 E8A488E8FF       CALL     00403FB0
016F:0057B70C 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B70F E8848AE8FF       CALL     00404198
016F:0057B714 8BF0             MOV      ESI,EAX
016F:0057B716 85F6             TEST     ESI,ESI
016F:0057B718 0F8E0D010000     JNG      NEAR 0057B82B
016F:0057B71E BB01000000       MOV      EBX,01
                              //赋值1

016F:0057B723 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B726 807C18FF41       CMP      BYTE [EAX+EBX-01],41
                              // 比较这个地方的字符是否等于ASCII*41 (A)
                              // 如果是的话就到下面换成ASCII*37 (1)

016F:0057B72B 750D             JNZ      0057B73A
016F:0057B72D 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B730 E8338CE8FF       CALL     00404368
016F:0057B735 C64418FF31       MOV      BYTE [EAX+EBX-01],31
                              // 是A的话就换成1

016F:0057B73A 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B73D 807C18FF43       CMP      BYTE [EAX+EBX-01],43
                              // 比较这个地方的字符是否等于ASCII*43 (C)
                              // 如果是的话就到下面换成ASCII*32 (2)

016F:0057B742 750D             JNZ      0057B751
016F:0057B744 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B747 E81C8CE8FF       CALL     00404368
016F:0057B74C C64418FF32       MOV      BYTE [EAX+EBX-01],32
                              // 是C的话就换成2

016F:0057B751 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B754 807C18FF44       CMP      BYTE [EAX+EBX-01],44
                              // 比较这个地方的字符是否等于ASCII*44 (D)
                              // 如果是的话就到下面换成ASCII*33 (3)

016F:0057B759 750D             JNZ      0057B768
016F:0057B75B 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B75E E8058CE8FF       CALL     00404368
016F:0057B763 C64418FF33       MOV      BYTE [EAX+EBX-01],33
                              // 是D的话就换成3

016F:0057B768 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B76B 807C18FF46       CMP      BYTE [EAX+EBX-01],46
                              // 比较这个地方的字符是否等于ASCII*46 (F)
                              // 如果是的话就到下面换成ASCII*32 (2)

016F:0057B770 750D             JNZ      0057B77F
016F:0057B772 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B775 E8EE8BE8FF       CALL     00404368
016F:0057B77A C64418FF32       MOV      BYTE [EAX+EBX-01],32
                              // 是F的话就换成2

016F:0057B77F 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B782 807C18FF42       CMP      BYTE [EAX+EBX-01],42
                              // 比较这个地方的字符是否等于ASCII*42 (B)
                              // 如果是的话就到下面换成ASCII*36 (6)

016F:0057B787 750D             JNZ      0057B796
016F:0057B789 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B78C E8D78BE8FF       CALL     00404368
016F:0057B791 C64418FF36       MOV      BYTE [EAX+EBX-01],36
                              // 是B的话就换成6

016F:0057B796 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B799 807C18FF45       CMP      BYTE [EAX+EBX-01],45
                              // 比较这个地方的字符是否等于ASCII*45 (E)
                              // 如果是的话就到下面换成ASCII*36 (6)

016F:0057B79E 750D             JNZ      0057B7AD
016F:0057B7A0 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B7A3 E8C08BE8FF       CALL     00404368
016F:0057B7A8 C64418FF36       MOV      BYTE [EAX+EBX-01],36
                              // 是E的话就换成6

016F:0057B7AD 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B7B0 807C18FF48       CMP      BYTE [EAX+EBX-01],48
                              // 比较这个地方的字符是否等于ASCII*48 (H)
                              // 如果是的话就到下面换成ASCII*34 (4)

016F:0057B7B5 750D             JNZ      0057B7C4
016F:0057B7B7 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B7BA E8A98BE8FF       CALL     00404368
016F:0057B7BF C64418FF34       MOV      BYTE [EAX+EBX-01],34
                              // 是H的话就换成4

016F:0057B7C4 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B7C7 807C18FF30       CMP      BYTE [EAX+EBX-01],30
                              // 比较这个地方的字符是否等于ASCII*30 (0)
                              // 如果是的话就到下面换成ASCII*38 (8)

016F:0057B7CC 750D             JNZ      0057B7DB
016F:0057B7CE 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B7D1 E8928BE8FF       CALL     00404368
016F:0057B7D6 C64418FF38       MOV      BYTE [EAX+EBX-01],38
                              // 是0的话就换成8

016F:0057B7DB 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B7DE 807C18FF47       CMP      BYTE [EAX+EBX-01],47
                              // 比较这个地方的字符是否等于ASCII*47 (G)
                              // 如果是的话就到下面换成ASCII*33 (3)

016F:0057B7E3 750D             JNZ      0057B7F2
016F:0057B7E5 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B7E8 E87B8BE8FF       CALL     00404368
016F:0057B7ED C64418FF33       MOV      BYTE [EAX+EBX-01],33
                              // 是G的话就换成3

016F:0057B7F2 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B7F5 807C18FF4B       CMP      BYTE [EAX+EBX-01],4B
                              // 比较这个地方的字符是否等于ASCII*4B (K)
                              // 如果是的话就到下面换成ASCII*37 (7)

016F:0057B7FA 750D             JNZ      0057B809
016F:0057B7FC 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B7FF E8648BE8FF       CALL     00404368
016F:0057B804 C64418FF37       MOV      BYTE [EAX+EBX-01],37
                              // 是K的话就换成7

016F:0057B809 8D45D0           LEA      EAX,[EBP-30]
016F:0057B80C 8B55F4           MOV      EDX,[EBP-0C]
016F:0057B80F 8A541AFF         MOV      DL,[EDX+EBX-01]
016F:0057B813 E8A888E8FF       CALL     004040C0
016F:0057B818 8B55D0           MOV      EDX,[EBP-30]
016F:0057B81B 8D45EC           LEA      EAX,[EBP-14]
016F:0057B81E E87D89E8FF       CALL     004041A0
016F:0057B823 43               INC      EBX
016F:0057B824 4E               DEC      ESI
016F:0057B825 0F85F8FEFFFF     JNZ      NEAR 0057B723
                              // 跳回去继续
                              // 这里是把0057B6F9处EAX指向地址的值
                              // 把这些值的A/C/D/F/B/E/H/0/G/K/
                              // 转换成相对应的数字1/2/3/2/6/6/4/8/3/7/

016F:0057B82B 8B45F8           MOV      EAX,[EBP-08]
016F:0057B82E 8B55EC           MOV      EDX,[EBP-14]
                              // 哈哈,这里就是真的注册码,真难炼!

016F:0057B831 E83687E8FF       CALL     00403F6C
016F:0057B836 33C0             XOR      EAX,EAX
016F:0057B838 5A               POP      EDX
016F:0057B839 59               POP      ECX
016F:0057B83A 59               POP      ECX

------------------------------------------------------------------
【总    结】:
内存注册机:
中断地址:00572859
中断次数:1
第一字节:E8
字节长度:5
注册码-->寄存器-->EAX

注册信息保存在注册表的:
[HKEY_USERS\.DEFAULT\Identities\More]
"Passwd"="112193626115776466717169132261"
"UsrName"="Yock"
删除就变成未注册!
------------------------------------------------------------------
算法:由于我的语文水平有限,表达得不好,请原谅!
(一下全是16进制数的运算)
用户名的字符依次覆盖到(sef1sn8y3420dnu2ofps)上面,如果用户名是Yock(4位),那么就变成了(Yocksn8y3420dnu2ofps)
再取(Yocksn8y3420dnu2ofps)前面的15[机器码的位数]位!
[ 机器码是PY-C9183234-2FA(15位), 那么取前面15位的话,就变成了Yocksn8y3420dnu ]
[ 假如机器码某一位是ASCII*41=A的话就变成ASCII*66=f来运算! ]
之后Yocksn8y3420dnu的每一位的ASCII码和机器码的每一位ASCII码对应加在一起,再加上机器码当前位的位数!
最后把上面的结果依次连在一起!
连再一起的值的每一位要是等于A/C/D/F/B/E/H/0/G/K/的话,就把它们转换成相对应的数字1/2/3/2/6/6/4/8/3/7/
[ 也就是下面这样 ]
A/C/D/F/B/E/H/0/G/K/
转换成:
1/2/3/2/6/6/4/8/3/7/
最后的结果就是真的注册码了!
-------------------------------------------------------------------
最后在这里真心感谢你花了那么多时间看这篇文章!谢谢了...
上一篇:RichEdit 控件:语法高亮显示    下一篇:短信群发专家3.0 商务版分析 上  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-5-26
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿