飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3646|回复: 3

[原创] 语音报时 2.1 Build 040521 注册算法

[复制链接]
  • TA的每日心情
    奋斗
    2017-6-11 12:16
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2006-11-26 19:04:14 | 显示全部楼层 |阅读模式
    【破文标题】语音报时 2.1 Build 040521注册算法
    【破文作者】XXNB
    【作者邮箱】
    【作者主页】http://free.ys168.com/?binbinbin7456
    破解工具】OD
    【破解平台】xpsp2
    【软件名称】语音报时 2.1 Build 040521
    【软件大小】
    【原版下载】http://www.newhua.com/soft/7980.htm
    【保护方式】机器码
    【软件简介】1.即时语音报时。2.整点、半点语音报时。3.可选择特定时间一次、每年每月每天、某年每月每天、每年每月某天、每年某月每

    天等八种组合选择。自行动作包括:语音报时、播放音乐、执行程序、文字提醒、关机等。(未注册版可设定3组定时动作,注册版可设定40组

    定时动作)。  

    【破解声明】向大侠们学习!!!只为学习!请尊重作者的劳动成功!
    ------------------------------------------------------------------------
    【破解过程】

    刚刚看了个“音乐报时”,于是想到了“语音报时”。华军上一找,找到这个,是易语言写的。虽然是N久前的东西,但是还是分析了下,共享

    出来了。 字符串查找“已注册”很容易定位。

    0044678B    55              push    ebp
    0044678C    8BEC            mov     ebp, esp
    0044678E    81EC 30000000   sub     esp, 30
    00446794    C745 FC 0000000>mov     dword ptr [ebp-4], 0
    0044679B    C745 F8 0000000>mov     dword ptr [ebp-8], 0
    004467A2    C745 F4 0000000>mov     dword ptr [ebp-C], 0
    004467A9    C745 F0 0000000>mov     dword ptr [ebp-10], 0
    004467B0    C745 EC 0000000>mov     dword ptr [ebp-14], 0
    004467B7    68 00000000     push    0
    004467BC    BB C4060000     mov     ebx, 6C4
    004467C1    E8 D8E20000     call    00454A9E
    004467C6    83C4 04         add     esp, 4                           ; 这里eax的10进制就是机器码了
    004467C9    68 01030080     push    80000301
    004467CE    6A 00           push    0
    004467D0    50              push    eax
    004467D1    68 01000000     push    1
    004467D6    BB 68010000     mov     ebx, 168
    004467DB    E8 BEE20000     call    00454A9E
    004467E0    83C4 10         add     esp, 10
    004467E3    8945 E4         mov     dword ptr [ebp-1C], eax          ; 机器码出现了
    004467E6    8B5D FC         mov     ebx, dword ptr [ebp-4]
    004467E9    85DB            test    ebx, ebx
    004467EB    74 09           je      short 004467F6
    004467ED    53              push    ebx
    004467EE    E8 B1E20000     call    00454AA4
    004467F3    83C4 04         add     esp, 4
    004467F6    8B45 E4         mov     eax, dword ptr [ebp-1C]
    004467F9    8945 FC         mov     dword ptr [ebp-4], eax
    004467FC    68 04000080     push    80000004
    00446801    6A 00           push    0
    00446803    8B45 FC         mov     eax, dword ptr [ebp-4]
    00446806    85C0            test    eax, eax
    00446808    75 05           jnz     short 0044680F
    0044680A    B8 BF314000     mov     eax, 004031BF
    0044680F    50              push    eax
    00446810    68 01000000     push    1
    00446815    BB 30010000     mov     ebx, 130
    0044681A    E8 7FE20000     call    00454A9E                         ; 得到机器码的位数
    0044681F    83C4 10         add     esp, 10
    00446822    8945 F8         mov     dword ptr [ebp-8], eax
    00446825    C745 F4 0000000>mov     dword ptr [ebp-C], 0
    0044682C    8B45 F8         mov     eax, dword ptr [ebp-8]
    0044682F    33C9            xor     ecx, ecx
    00446831    50              push    eax
    00446832    8D45 F0         lea     eax, dword ptr [ebp-10]
    00446835    8BD8            mov     ebx, eax
    00446837    58              pop     eax
    00446838    41              inc     ecx                              ; 循环开始。这里是计数器
    00446839    51              push    ecx
    0044683A    53              push    ebx
    0044683B    890B            mov     dword ptr [ebx], ecx
    0044683D    50              push    eax
    0044683E    3BC8            cmp     ecx, eax                         ; 计数器比较
    00446840    0F8F 67000000   jg      004468AD
    00446846    68 01030080     push    80000301
    0044684B    6A 00           push    0
    0044684D    FF75 F0         push    dword ptr [ebp-10]
    00446850    68 04000080     push    80000004
    00446855    6A 00           push    0
    00446857    8B45 FC         mov     eax, dword ptr [ebp-4]
    0044685A    85C0            test    eax, eax
    0044685C    75 05           jnz     short 00446863
    0044685E    B8 BF314000     mov     eax, 004031BF
    00446863    50              push    eax
    00446864    68 02000000     push    2
    00446869    BB 44010000     mov     ebx, 144
    0044686E    E8 2BE20000     call    00454A9E                         ; 逐个取机器码ascii码值,16进制
    00446873    83C4 1C         add     esp, 1C
    00446876    8945 E0         mov     dword ptr [ebp-20], eax
    00446879    DB45 E0         fild    dword ptr [ebp-20]               ; 转成实数运算。当然要取10进制
    0044687C    DD5D E0         fstp    qword ptr [ebp-20]
    0044687F    DD45 E0         fld     qword ptr [ebp-20]
    00446882    DB45 F0         fild    dword ptr [ebp-10]
    00446885    DD5D E0         fstp    qword ptr [ebp-20]
    00446888    DC4D E0         fmul    qword ptr [ebp-20]               ; 乘以自己的下标
    0044688B    DD5D E0         fstp    qword ptr [ebp-20]
    0044688E    DB45 F4         fild    dword ptr [ebp-C]
    00446891    DD5D D8         fstp    qword ptr [ebp-28]
    00446894    DD45 D8         fld     qword ptr [ebp-28]
    00446897    DC45 E0         fadd    qword ptr [ebp-20]               ; 累加在这里
    0044689A    DD5D D8         fstp    qword ptr [ebp-28]
    0044689D    DD45 D8         fld     qword ptr [ebp-28]
    004468A0    E8 5BFDFFFF     call    00446600
    004468A5    8945 F4         mov     dword ptr [ebp-C], eax           ; 存储结果在【ebp-C】,最终结果就在这里面了
    004468A8    58              pop     eax
    004468A9    5B              pop     ebx
    004468AA    59              pop     ecx
    004468AB  ^ EB 8B           jmp     short 00446838                   ; 循环回去
    004468AD    83C4 0C         add     esp, 0C
    004468B0    68 04000080     push    80000004
    004468B5    6A 00           push    0
    004468B7    8B45 FC         mov     eax, dword ptr [ebp-4]           ; 机器码到eax
    004468BA    85C0            test    eax, eax
    004468BC    75 05           jnz     short 004468C3
    004468BE    B8 BF314000     mov     eax, 004031BF
    004468C3    50              push    eax
    004468C4    68 01000000     push    1
    004468C9    BB 64010000     mov     ebx, 164
    004468CE    E8 CBE10000     call    00454A9E                         ; 又这个call
    004468D3    83C4 10         add     esp, 10
    004468D6    8945 E4         mov     dword ptr [ebp-1C], eax
    004468D9    8955 E8         mov     dword ptr [ebp-18], edx
    004468DC    DD45 E4         fld     qword ptr [ebp-1C]               ; 这是机器码
    004468DF    DB45 F4         fild    dword ptr [ebp-C]                ; 上面那个循环的结果转实数,又要算了
    004468E2    DD5D DC         fstp    qword ptr [ebp-24]
    004468E5    DC4D DC         fmul    qword ptr [ebp-24]               ; 机器码*循环运算结果
    004468E8    DD5D DC         fstp    qword ptr [ebp-24]               ; 这乘的结果的10进制就是真码了。
    004468EB    68 01060080     push    80000601
    004468F0    FF75 E0         push    dword ptr [ebp-20]
    004468F3    FF75 DC         push    dword ptr [ebp-24]               ; 结果入栈
    004468F6    68 01000000     push    1
    004468FB    BB 5C000000     mov     ebx, 5C
    00446900    E8 99E10000     call    00454A9E                         ; 这个call
    00446905    83C4 10         add     esp, 10
    00446908    68 01060080     push    80000601
    0044690D    52              push    edx
    0044690E    50              push    eax
    0044690F    68 01000000     push    1
    00446914    BB 68010000     mov     ebx, 168
    00446919    E8 80E10000     call    00454A9E                         ; 又是这个call。这个简直就是万能call了
    0044691E    83C4 10         add     esp, 10
    00446921    8945 D0         mov     dword ptr [ebp-30], eax          ; (ASCII "3886617169428")
    00446924    8B5D EC         mov     ebx, dword ptr [ebp-14]
    00446927    85DB            test    ebx, ebx
    00446929    74 09           je      short 00446934
    0044692B    53              push    ebx
    0044692C    E8 73E10000     call    00454AA4
    00446931    83C4 04         add     esp, 4
    00446934    8B45 D0         mov     eax, dword ptr [ebp-30]
    00446937    8945 EC         mov     dword ptr [ebp-14], eax
    0044693A    68 00000000     push    0
    0044693F    BB 04010000     mov     ebx, 104
    00446944    E8 55E10000     call    00454A9E
    00446949    83C4 04         add     esp, 4
    0044694C    8945 E8         mov     dword ptr [ebp-18], eax
    0044694F    68 C0314000     push    004031C0                         ; \Item.ini
    00446954    FF75 E8         push    dword ptr [ebp-18]
    00446957    B9 02000000     mov     ecx, 2
    0044695C    E8 31FDFFFF     call    00446692
    00446961    83C4 08         add     esp, 8
    00446964    8945 E4         mov     dword ptr [ebp-1C], eax
    00446967    8B5D E8         mov     ebx, dword ptr [ebp-18]
    0044696A    85DB            test    ebx, ebx
    0044696C    74 09           je      short 00446977
    0044696E    53              push    ebx
    0044696F    E8 30E10000     call    00454AA4
    00446974    83C4 04         add     esp, 4
    00446977    6A 00           push    0
    00446979    6A 00           push    0
    0044697B    6A 00           push    0
    0044697D    68 04000080     push    80000004
    00446982    6A 00           push    0
    00446984    68 CA314000     push    004031CA                         ; code
    00446989    68 04000080     push    80000004
    0044698E    6A 00           push    0
    00446990    68 CF314000     push    004031CF                         ; System
    00446995    68 04000080     push    80000004
    0044699A    6A 00           push    0
    0044699C    8B45 E4         mov     eax, dword ptr [ebp-1C]
    0044699F    85C0            test    eax, eax
    004469A1    75 05           jnz     short 004469A8
    004469A3    B8 BF314000     mov     eax, 004031BF
    004469A8    50              push    eax
    004469A9    68 04000000     push    4
    004469AE    BB C8080000     mov     ebx, 8C8
    004469B3    E8 E6E00000     call    00454A9E                         ; 取出Item.ini里面的,我们输入的注册码
    004469B8    83C4 34         add     esp, 34
    004469BB    8945 E0         mov     dword ptr [ebp-20], eax          ; 我们输入的假码
    004469BE    8B5D E4         mov     ebx, dword ptr [ebp-1C]
    004469C1    85DB            test    ebx, ebx
    004469C3    74 09           je      short 004469CE
    004469C5    53              push    ebx
    004469C6    E8 D9E00000     call    00454AA4
    004469CB    83C4 04         add     esp, 4
    004469CE    8B45 EC         mov     eax, dword ptr [ebp-14]
    004469D1    50              push    eax                              ; 真码入栈
    004469D2    FF75 E0         push    dword ptr [ebp-20]               ; 假码入栈
    004469D5    E8 14FDFFFF     call    004466EE                         ; 看就知道是比较函数
    004469DA    83C4 08         add     esp, 8
    004469DD    83F8 00         cmp     eax, 0
    004469E0    B8 00000000     mov     eax, 0
    004469E5    0F94C0          sete    al
    004469E8    8945 DC         mov     dword ptr [ebp-24], eax
    004469EB    8B5D E0         mov     ebx, dword ptr [ebp-20]
    004469EE    85DB            test    ebx, ebx
    004469F0    74 09           je      short 004469FB
    004469F2    53              push    ebx
    004469F3    E8 ACE00000     call    00454AA4
    004469F8    83C4 04         add     esp, 4
    004469FB    837D DC 00      cmp     dword ptr [ebp-24], 0
    004469FF    0F84 49000000   je      00446A4E                         ; 关键跳
    00446A05    C705 800C9D00 3>mov     dword ptr [9D0C80], 3C
    00446A0F    6A 00           push    0
    00446A11    68 D6314000     push    004031D6                         ; 已注册
    00446A16    6A FF           push    -1
    00446A18    6A 00           push    0
    00446A1A    68 06000126     push    26010006
    00446A1F    68 01000152     push    52010001
    00446A24    E8 93E00000     call    00454ABC


    ------------------------------------------------------------------------
    【破解总结】
    ------------------------------------------------------------------------

    1、算法很简单,取得机器码。循环取机器码的Ascii码值10进制×相应下标。累加在【ebp-C】(具体看代码)。然后累加的结果×机器码。结

    果转成10进制就是真注册码了。


    太简单,注册机都懒得写了

    评分

    参与人数 1威望 +32 飘云币 +8 收起 理由
    易难为易 + 32 + 8

    查看全部评分

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-11-26 22:52:56 | 显示全部楼层
    我看我是学不会算法了.......
      支持你楼主!!!!!!!!!!!!1
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-11-27 15:26:01 | 显示全部楼层
    学习中……支持!!!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-11-30 13:02:56 | 显示全部楼层
    我的我练一下,谢谢.
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表