飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6774|回复: 6

[原创] Easy File & Folder Protector 5.12追码记

[复制链接]
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2011-1-22 17:50:56 | 显示全部楼层 |阅读模式
    本帖最后由 GGLHY 于 2011-1-22 18:16 编辑

                               Easy File & Folder Protector 5.12追码记

    软件名称:Easy File & Folder Protector 5.12
    下载地址http://www.newhua.com/softdown/16585_2.htm
    简    介:一个非常Easy的文件和文件夹保护程序.只要你给Easy File & Folder Protector设置一个密码, 你就可以保护你的任何文件和文件夹,没有这个密码任何人都无法访问经过Easy File &     Folder Protector 保护的文件和文件夹.对文件夹进行保护时文件夹进行了隐藏,这样就显得更安全.此外,它还可防止别人通过网络访问你的文件.如果你要保护自己的隐私,你就要试试Easy File & Folder Protector了.使用方法: 启动保护: "添加文件或文件夹"--->"启动"按钮--->"应用"按钮 解除保护: "点选文件列表中的文件或文件夹"--->"解除"按钮


    闲话少叙,咱直捣黄龙:
    004A19E6  |.  8B45 FC       mov     eax, dword ptr [ebp-4]      ;  假码到EAX
    004A19E9  |.  E8 326AFEFF   call    00488420
    004A19EE  |.  8B55 F8       mov     edx, dword ptr [ebp-8]
    004A19F1  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
    004A19F4  |.  E8 3329F6FF   call    0040432C
    004A19F9  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    004A19FC  |.  E8 6BFAFEFF   call    0049146C                    ;小兔子乖乖,把门儿开开,俺要F7进来
    004A1A01  |.  84C0          test    al, al                      ;  好经典的句式啊!
    004A1A03  |.  74 21         je      short 004A1A26
    004A1A05  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    004A1A08  |.  E8 B383FFFF   call    00499DC0
    004A1A0D  |.  6A 00         push    0
    004A1A0F  |.  66:8B0D 741A4>mov     cx, word ptr [4A1A74]       ; ;  全局变量标志?[4A1A74]=0004
    004A1A16  |.  B2 02         mov     dl, 2
    004A1A18  |.  B8 801A4A00   mov     eax, 004A1A80               ;  registration key is ok
    004A1A1D  |.  E8 9A06F9FF   call    004320BC
    004A1A22  |.  B3 01         mov     bl, 1
    004A1A24  |.  EB 23         jmp     short 004A1A49
    004A1A26  |>  6A 00         push    0
    004A1A28  |.  66:8B0D 741A4>mov     cx, word ptr [4A1A74]
    004A1A2F  |.  B2 01         mov     dl, 1
    004A1A31  |.  B8 A01A4A00   mov     eax, 004A1AA0               ;  registration key is not valid
    004A1A36  |.  E8 8106F9FF   call    004320BC


    ****************************004A19FC处 call    0049146C  这里F7进来:
    0049146C  /$  55            push    ebp                              ;本地调用来自 0049B935, 0049BA0B, 0049BD29, 0049BD6C, 004A0E25, 004A1485, 004A19FC
    0049146D  |.  8BEC          mov     ebp, esp
    0049146F  |.  33C9          xor     ecx, ecx
       省略部分代码
    004914AF  |.  E8 A030F7FF   call    00404554
    004914B4  |.  83F8 10       cmp     eax, 10                          ;  注册码长度与10H比较
    004914B7  |.  0F85 D0000000 jnz     0049158D                         ;  不等就挂!
    004914BD  |.  E8 86F6FFFF   call    00490B48
    004914C2  |.  8D45 E8       lea     eax, dword ptr [ebp-18]
    004914C5  |.  50            push    eax
    004914C6  |.  B9 08000000   mov     ecx, 8
    004914CB  |.  BA 01000000   mov     edx, 1
    004914D0  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  假码
    004914D3  |.  E8 DC32F7FF   call    004047B4
    004914D8  |.  8B4D E8       mov     ecx, dword ptr [ebp-18]          ;  假码前8位
    004914DB  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
    004914DE  |.  BA C8154900   mov     edx, 004915C8                    ;  $
    004914E3  |.  E8 B830F7FF   call    004045A0
    004914E8  |.  8D45 E4       lea     eax, dword ptr [ebp-1C]
    004914EB  |.  50            push    eax
    004914EC  |.  B9 08000000   mov     ecx, 8
    004914F1  |.  BA 09000000   mov     edx, 9
    004914F6  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  假码
    004914F9  |.  E8 B632F7FF   call    004047B4
    004914FE  |.  8B4D E4       mov     ecx, dword ptr [ebp-1C]          ;  假码后8位
    00491501  |.  8D45 F0       lea     eax, dword ptr [ebp-10]
    00491504  |.  BA C8154900   mov     edx, 004915C8                    ;  $
    00491509  |.  E8 9230F7FF   call    004045A0
    0049150E  |.  8D55 F8       lea     edx, dword ptr [ebp-8]
    00491511  |.  8B45 F4       mov     eax, dword ptr [ebp-C]
    00491514  |.  E8 C719F7FF   call    00402EE0                         ;对注册码限制的检测!
    00491519  |.  837D F8 00    cmp     dword ptr [ebp-8], 0
    0049151D  |.  75 6E         jnz     short 0049158D
    0049151F  |.  8D55 F8       lea     edx, dword ptr [ebp-8]
    00491522  |.  8B45 F0       mov     eax, dword ptr [ebp-10]          ;  $连接假码后8位
    00491525  |.  E8 B619F7FF   call    00402EE0                         ;对注册码限制的检测!
    0049152A  |.  837D F8 00    cmp     dword ptr [ebp-8], 0
    0049152E  |.  75 5D         jnz     short 0049158D
    00491530  |.  BE 01000000   mov     esi, 1                           ;  ESI=1
    00491535  |>  33C0          /xor     eax, eax
    00491537  |.  8945 F8       |mov     dword ptr [ebp-8], eax
    0049153A  |.  8B45 FC       |mov     eax, dword ptr [ebp-4]          ;  假码
    0049153D  |.  E8 1230F7FF   |call    00404554
    00491542  |.  85C0          |test    eax, eax                        ;  假码长度取完了吗?
    00491544  |.  7E 1E         |jle     short 00491564
    00491546  |.  BA 01000000   |mov     edx, 1                          ;  EDX=1
    0049154B  |>  B9 D4154900   |/mov     ecx, 004915D4                  ;  ASCII "0123456789ABCD臚"
    00491550  |.  8A4C31 FF     ||mov     cl, byte ptr [ecx+esi-1]       ;  每次小循环只取"0123456789ABCD臚"的一位ASC,下一次小循环则取下一位
    00491554  |.  8B7D FC       ||mov     edi, dword ptr [ebp-4]         ;  假码
    00491557  |.  3A4C17 FF     ||cmp     cl, byte ptr [edi+edx-1]       ;  依次取假码每位ASC,二者比较
    0049155B  |.  75 03         ||jnz     short 00491560                 ;  相等就不跳
    0049155D  |.  FF45 F8       ||inc     dword ptr [ebp-8]              ;  不跳,相等的就+1
    00491560  |>  42            ||inc     edx
    00491561  |.  48            ||dec     eax
    00491562  |.^ 75 E7         |\jnz     short 0049154B                 ;  每次小循环(0049154b-到00491562)只取"0123456789ABCD臚"一位ASC
    00491564  |>  837D F8 05    |cmp     dword ptr [ebp-8], 5            ;  每个小循环完后[EBP-8]:5,即假码中与当前所取固定字符串相同的数量
    00491568  |.  7E 09         |jle     short 00491573                  ;  不大于5就跳
    0049156A  |.  C745 F8 FFFFF>|mov     dword ptr [ebp-8], -1           ;  不跳。这里就是悲剧的了!!
    00491571  |.  EB 06         |jmp     short 00491579
    00491573  |>  46            |inc     esi                             ;  假码循环累加计数器
    00491574  |.  83FE 11       |cmp     esi, 11                         ;  与17比较
    00491577  |.^ 75 BC         \jnz     short 00491535         ;这个小循环其实是统计假码中相同的字符的值,该值大于5则错!!!
    00491579  |>  837D F8 00    cmp     dword ptr [ebp-8], 0             ;  大循环是检测注册码的格式要求的。[EBP-8]的值千万别小于0
    0049157D  |.  7C 0E         jl      short 0049158D
    0049157F  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  假码
    00491582  |.  E8 19FDFFFF   call    004912A0                         ; 核心算法CALL,我们F7
    00491587  |.  84C0          test    al, al                           ;  经典标志位
    00491589  |.  74 02         je      short 0049158D
    0049158B  |.  B3 01         mov     bl, 1                            ;  很关键的一个地方!
    0049158D  |>  33C0          xor     eax, eax                         ;  悲惨世界!
    0049158F  |.  5A            pop     edx
    00491590  |.  59            pop     ecx
    00491591  |.  59            pop     ecx
    00491592  |.  64:8910       mov     dword ptr fs:[eax], edx
    00491595  |.  68 B7154900   push    004915B7
    0049159A  |>  8D45 E4       lea     eax, dword ptr [ebp-1C]
    0049159D  |.  BA 05000000   mov     edx, 5
    004915A2  |.  E8 112DF7FF   call    004042B8
    004915A7  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
    004915AA  |.  E8 E52CF7FF   call    00404294
    004915AF  \.  C3            retn
    004915B0   .^ E9 E326F7FF   jmp     00403C98
    004915B5   .^ EB E3         jmp     short 0049159A
    004915B7   .  8BC3          mov     eax, ebx
    004915B9   .  5F            pop     edi
    004915BA   .  5E            pop     esi
    004915BB   .  5B            pop     ebx
    004915BC   .  8BE5          mov     esp, ebp
    004915BE   .  5D            pop     ebp
    004915BF   .  C3            retn


    ******************00491582处call004912A0 的核心算法CALL,我们F7后:
    004912A0  /$  55            push    ebp
    004912A1  |.  8BEC          mov     ebp, esp
    004912A3  |.  B9 08000000   mov     ecx, 8
    004912A8  |>  6A 00         /push    0
    004912AA  |.  6A 00         |push    0
    004912AC  |.  49            |dec     ecx
    004912AD  |.^ 75 F9         \jnz     short 004912A8
    004912AF  |.  53            push    ebx
    004912B0  |.  56            push    esi
    004912B1  |.  57            push    edi
    004912B2  |.  8BF0          mov     esi, eax
    004912B4  |.  33C0          xor     eax, eax
    004912B6  |.  55            push    ebp
    004912B7  |.  68 5B144900   push    0049145B
    004912BC  |.  64:FF30       push    dword ptr fs:[eax]
    004912BF  |.  64:8920       mov     dword ptr fs:[eax], esp
    004912C2  |.  33DB          xor     ebx, ebx
    004912C4  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
    004912C7  |.  8A16          mov     dl, byte ptr [esi]          ;  假码第一位ASC
    004912C9  |.  E8 AE31F7FF   call    0040447C
    004912CE  |.  8B45 FC       mov     eax, dword ptr [ebp-4]      ;  假码第一位的ASC
    004912D1  |.  E8 4AFFFFFF   call    00491220                    ;  假码第1位的数值 / 4,求商!
    004912D6  |.  8BF8          mov     edi, eax                    ;  EDI(初始为0)+商 到EDI
    004912D8  |.  8D45 F8       lea     eax, dword ptr [ebp-8]
    004912DB  |.  8A56 01       mov     dl, byte ptr [esi+1]        ;  假码第2位
    004912DE  |.  E8 9931F7FF   call    0040447C
    004912E3  |.  8B45 F8       mov     eax, dword ptr [ebp-8]      ;  假码第2位的ASC
    004912E6  |.  E8 35FFFFFF   call    00491220                    ;  假码第2位的数值 / 4,求商!
    004912EB  |.  03F8          add     edi, eax                    ;  前面相加后的EDI + 商
    004912ED  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
    004912F0  |.  8A56 02       mov     dl, byte ptr [esi+2]        ;  假码第3位
    004912F3  |.  E8 8431F7FF   call    0040447C
    004912F8  |.  8B45 F4       mov     eax, dword ptr [ebp-C]      ;  假码第3位的ASC
    004912FB  |.  E8 20FFFFFF   call    00491220                    ;  假码第三位的数值 / 4,求商!
    00491300  |.  03F8          add     edi, eax                    ;  再相加
    00491302  |.  8D45 F0       lea     eax, dword ptr [ebp-10]
    00491305  |.  8A56 03       mov     dl, byte ptr [esi+3]        ;  假码第4位的数值
    00491308  |.  E8 6F31F7FF   call    0040447C
    0049130D  |.  8B45 F0       mov     eax, dword ptr [ebp-10]
    00491310  |.  E8 0BFFFFFF   call    00491220                    ;  假码第4位的数值 / 4,求商
    00491315  |.  03F8          add     edi, eax                    ;  继续相加
    00491317  |.  A1 A4464A00   mov     eax, dword ptr [4A46A4]     ;  查表!=08
    0049131C  |.  3B38          cmp     edi, dword ptr [eax]        ;  累加过后的和与8比较
    0049131E  |.  0F85 1C010000 jnz     00491440                    ;  貌似一跳就挂了!
    00491324  |.  8D45 EC       lea     eax, dword ptr [ebp-14]
    00491327  |.  8A56 04       mov     dl, byte ptr [esi+4]        ;  假码第5位的数值
    0049132A  |.  E8 4D31F7FF   call    0040447C
    0049132F  |.  8B45 EC       mov     eax, dword ptr [ebp-14]
    00491332  |.  E8 E9FEFFFF   call    00491220                    ;  同样求商!
    00491337  |.  8BF8          mov     edi, eax
    00491339  |.  8D45 E8       lea     eax, dword ptr [ebp-18]
    0049133C  |.  8A56 07       mov     dl, byte ptr [esi+7]        ;  假码第8位的数值
    0049133F  |.  E8 3831F7FF   call    0040447C
    00491344  |.  8B45 E8       mov     eax, dword ptr [ebp-18]
    00491347  |.  E8 D4FEFFFF   call    00491220                    ;  同样求商!
    0049134C  |.  03F8          add     edi, eax                    ;  商继续累加
    0049134E  |.  8D45 E4       lea     eax, dword ptr [ebp-1C]
    00491351  |.  8A56 0A       mov     dl, byte ptr [esi+A]        ;  假码第11位的数值
    00491354  |.  E8 2331F7FF   call    0040447C
    00491359  |.  8B45 E4       mov     eax, dword ptr [ebp-1C]
    0049135C  |.  E8 BFFEFFFF   call    00491220                    ;  同样求商!
    00491361  |.  03F8          add     edi, eax                    ;  商继续累加
    00491363  |.  8D45 E0       lea     eax, dword ptr [ebp-20]
    00491366  |.  8A56 0D       mov     dl, byte ptr [esi+D]        ;  假码第14位的数值
    00491369  |.  E8 0E31F7FF   call    0040447C
    0049136E  |.  8B45 E0       mov     eax, dword ptr [ebp-20]
    00491371  |.  E8 AAFEFFFF   call    00491220                    ;  同样求商!
    00491376  |.  03F8          add     edi, eax                    ;  商继续累加
    00491378  |.  A1 D8464A00   mov     eax, dword ptr [4A46D8]     ;  查表!=08
    0049137D  |.  3B38          cmp     edi, dword ptr [eax]        ;  累加的商相等吗
    0049137F  |.  0F85 BB000000 jnz     00491440
    00491385  |.  8D45 DC       lea     eax, dword ptr [ebp-24]
    00491388  |.  8A16          mov     dl, byte ptr [esi]
    0049138A  |.  E8 ED30F7FF   call    0040447C
    0049138F  |.  8B45 DC       mov     eax, dword ptr [ebp-24]
    00491392  |.  E8 89FEFFFF   call    00491220                    ;  同样求商!
    00491397  |.  8BF8          mov     edi, eax                    ;  商!
    00491399  |.  8D45 D8       lea     eax, dword ptr [ebp-28]
    0049139C  |.  8A56 01       mov     dl, byte ptr [esi+1]        ;  假码第2位
    0049139F  |.  E8 D830F7FF   call    0040447C
    004913A4  |.  8B45 D8       mov     eax, dword ptr [ebp-28]
    004913A7  |.  E8 74FEFFFF   call    00491220                    ;  同样求商!
    004913AC  |.  03F8          add     edi, eax                    ;  商累加
    004913AE  |.  8D45 D4       lea     eax, dword ptr [ebp-2C]
    004913B1  |.  8A56 02       mov     dl, byte ptr [esi+2]        ;  假码第3位
    004913B4  |.  E8 C330F7FF   call    0040447C
    004913B9  |.  8B45 D4       mov     eax, dword ptr [ebp-2C]
    004913BC  |.  E8 5FFEFFFF   call    00491220                    ;  同样求商!
    004913C1  |.  03F8          add     edi, eax                    ;  商累加
    004913C3  |.  8D45 D0       lea     eax, dword ptr [ebp-30]
    004913C6  |.  8A56 03       mov     dl, byte ptr [esi+3]        ;  假码第4位
    004913C9  |.  E8 AE30F7FF   call    0040447C
    004913CE  |.  8B45 D0       mov     eax, dword ptr [ebp-30]
    004913D1  |.  E8 4AFEFFFF   call    00491220                    ;  同样求商!
    004913D6  |.  03F8          add     edi, eax                    ;  商累加
    004913D8  |.  A1 A4464A00   mov     eax, dword ptr [4A46A4]     ;  继续查表 =08
    004913DD  |.  3B38          cmp     edi, dword ptr [eax]        ;  相等吗?
    004913DF  |.  75 5F         jnz     short 00491440
    004913E1  |.  8D45 CC       lea     eax, dword ptr [ebp-34]
    004913E4  |.  8A56 06       mov     dl, byte ptr [esi+6]        ;  假码第7位
    004913E7  |.  E8 9030F7FF   call    0040447C
    004913EC  |.  8B45 CC       mov     eax, dword ptr [ebp-34]
    004913EF  |.  E8 2CFEFFFF   call    00491220                    ;  同样求商!
    004913F4  |.  8BF8          mov     edi, eax                    ;  商
    004913F6  |.  8D45 C8       lea     eax, dword ptr [ebp-38]
    004913F9  |.  8A56 09       mov     dl, byte ptr [esi+9]        ;  假码第10位
    004913FC  |.  E8 7B30F7FF   call    0040447C
    00491401  |.  8B45 C8       mov     eax, dword ptr [ebp-38]
    00491404  |.  E8 17FEFFFF   call    00491220                    ;  同样求商!
    00491409  |.  03F8          add     edi, eax                    ;  商累加
    0049140B  |.  8D45 C4       lea     eax, dword ptr [ebp-3C]
    0049140E  |.  8A56 0C       mov     dl, byte ptr [esi+C]        ;  假码第13位
    00491411  |.  E8 6630F7FF   call    0040447C
    00491416  |.  8B45 C4       mov     eax, dword ptr [ebp-3C]
    00491419  |.  E8 02FEFFFF   call    00491220                    ;  同样求商!
    0049141E  |.  03F8          add     edi, eax                    ;  商累加
    00491420  |.  8D45 C0       lea     eax, dword ptr [ebp-40]
    00491423  |.  8A56 0F       mov     dl, byte ptr [esi+F]        ;  假码第16位
    00491426  |.  E8 5130F7FF   call    0040447C
    0049142B  |.  8B45 C0       mov     eax, dword ptr [ebp-40]
    0049142E  |.  E8 EDFDFFFF   call    00491220                    ;  同样求商!
    00491433  |.  03F8          add     edi, eax                    ;  商累加
    00491435  |.  A1 D0434A00   mov     eax, dword ptr [4A43D0]     ;  还是查表 = 08
    0049143A  |.  3B38          cmp     edi, dword ptr [eax]        ;  不等就挂了!
    0049143C  |.  75 02         jnz     short 00491440
    0049143E  |.  B3 01         mov     bl, 1                       ;  这应该实现才对
    00491440  |>  33C0          xor     eax, eax                    ;  危险的家伙!
    00491442  |.  5A            pop     edx
    00491443  |.  59            pop     ecx
    00491444  |.  59            pop     ecx
    00491445  |.  64:8910       mov     dword ptr fs:[eax], edx
    00491448  |.  68 62144900   push    00491462
    0049144D  |>  8D45 C0       lea     eax, dword ptr [ebp-40]
    00491450  |.  BA 10000000   mov     edx, 10
    00491455  |.  E8 5E2EF7FF   call    004042B8
    0049145A  \.  C3            retn
    0049145B   .^ E9 3828F7FF   jmp     00403C98
    00491460   .^ EB EB         jmp     short 0049144D
    00491462   .  8BC3          mov     eax, ebx
    00491464   .  5F            pop     edi
    00491465   .  5E            pop     esi
    00491466   .  5B            pop     ebx
    00491467   .  8BE5          mov     esp, ebp
    00491469   .  5D            pop     ebp
    0049146A   .  C3            retn



    另外我们看看:
    这里来自
    00491522  |.  8B45 F0       mov     eax, dword ptr [ebp-10]          ;  
    00491525  |.  E8 B619F7FF   call    00402EE0                         ;  检测
      上面这个call 00402EE0的内容:
    00402EE0  /$  53            push    ebx
      省略部分代码
    00402F6B  |> \BF FFFFFF0F   mov     edi, 0FFFFFFF                    ;  Cases 24 ('$'),58 ('X'),78 ('x') of switch 00402F07
    00402F70  |.  8A1E          mov     bl, byte ptr [esi]               ;  下一位ASC
    00402F72  |.  46            inc     esi
    00402F73  |.  84DB          test    bl, bl
    00402F75  |.^ 74 DF         je      short 00402F56
    00402F77  |>  80FB 61       /cmp     bl, 61                          ;  依次假码前(后)8位的ASC
    00402F7A  |.  72 03         |jb      short 00402F7F
    00402F7C  |.  80EB 20       |sub     bl, 20
    00402F7F  |>  80EB 30       |sub     bl, 30                          ;  Switch (cases 30..46)
    00402F82  |.  80FB 09       |cmp     bl, 9
    00402F85  |.  76 0B         |jbe     short 00402F92
    00402F87  |.  80EB 11       |sub     bl, 11
    00402F8A  |.  80FB 05       |cmp     bl, 5
    00402F8D  |.^ 77 D0         |ja      short 00402F5F
    00402F8F  |.  80C3 0A       |add     bl, 0A                          ;  Cases 41 ('A'),42 ('B'),43 ('C'),44 ('D'),45 ('E'),46 ('F') of switch 00402F7F
    00402F92  |>  39F8          |cmp     eax, edi                        ;  Cases 30 ('0'),31 ('1'),32 ('2'),33 ('3'),34 ('4'),35 ('5'),36 ('6'),37 ('7'),38 ('8'),39 ('9') of switch 00402F7F
    00402F94  |.^ 77 C9         |ja      short 00402F5F
    00402F96  |.  C1E0 04       |shl     eax, 4
    00402F99  |.  01D8          |add     eax, ebx
    00402F9B  |.  8A1E          |mov     bl, byte ptr [esi]
    00402F9D  |.  46            |inc     esi
    00402F9E  |.  84DB          |test    bl, bl
    00402FA0  |.^ 75 D5         \jnz     short 00402F77
    00402FA2  |.  FECD          dec     ch

         很明显的,注册码由0-9的数字和a-f的字母组成!!!!!!!!!




    OK,现在清楚了!
    ----------------------------------------------------------------------------
    算法总结:
    1.注册码由0-9的数字和a-f的字母组成,长度16位,且相同的部分不能大于5个;
    2.取每一位作为数值/4,取商且:
                    注册码的第1、2、3、4位的商之和=8
                           第5、8、11、14位商之和=8
                           第7、10、13、16位商之和=8
    ---------------------------------------------------------------------------

    注册信息保存在:HKEY_LOCAL_MACHINE\SOFTWARE\Easy File & Folder Protector\Settings下
    inf1=
    inf2=

    其中:inf1是未注册时对时间的运算结果,提示你是否过期的
          inf2是注册码正确时加密后的结果!




        根据上面的分析,我们完全可以自定出N组注册码来!
    比如:
          888890C90C90A900
          999980D80D80A800


         但是,还有4位注册码呢?难道不参与运算?还是埋伏起来,准备着暗桩呢?
         俺随便试用了几个功能,关于、选择被添加的程序或文件夹时,都会调用在注册的同一个CALL里,貌似没有发现暗桩!如果哪位兄弟姐妹发现了千万请告诉我一声哦!


    unreg.GIF

    key is ok.GIF












    另外,对inf1的判断:
    004A1458  /$  55            push    ebp
    004A1459  |.  8BEC          mov     ebp, esp
    004A145B  |.  83C4 F4       add     esp, -0C
    004A145E  |.  53            push    ebx
    004A145F  |.  56            push    esi
    004A1460  |.  33C0          xor     eax, eax
    004A1462  |.  8945 FC       mov     dword ptr [ebp-4], eax
    004A1465  |.  BE 68694A00   mov     esi, 004A6968                    ;  x古
    004A146A  |.  33C0          xor     eax, eax
    004A146C  |.  55            push    ebp
    004A146D  |.  68 C4154A00   push    004A15C4
    004A1472  |.  64:FF30       push    dword ptr fs:[eax]
    004A1475  |.  64:8920       mov     dword ptr fs:[eax], esp
    004A1478  |.  B3 01         mov     bl, 1
    004A147A  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
    004A147D  |.  E8 F689FFFF   call    00499E78
    004A1482  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    004A1485  |.  E8 E2FFFEFF   call    0049146C
    004A148A  |.  84C0          test    al, al
    004A148C  |.  0F85 1C010000 jnz     004A15AE                         ;  注册码验证错误则不跳
    004A1492  |.  33DB          xor     ebx, ebx
    004A1494  |.  8B0D 44464A00 mov     ecx, dword ptr [4A4644]          ;  EFPP.004A5C14
    004A149A  |.  8B09          mov     ecx, dword ptr [ecx]
    004A149C  |.  B2 01         mov     dl, 1
    004A149E  |.  A1 FC104A00   mov     eax, dword ptr [4A10FC]
    004A14A3  |.  E8 A8A8FDFF   call    0047BD50
    004A14A8  |.  8906          mov     dword ptr [esi], eax
    004A14AA  |.  A1 30454A00   mov     eax, dword ptr [4A4530]
    004A14AF  |.  66:C700 3200  mov     word ptr [eax], 32
    004A14B4  |.  E8 9B90F6FF   call    0040A554                         ;  取时间?
              0040A554  /$  83C4 E8       add     esp, -18
              0040A557  |.  8D4424 08     lea     eax, dword ptr [esp+8]
              0040A55B  |.  50            push    eax                              ; /pLocaltime
              0040A55C  |.  E8 CFC1FFFF   call    <jmp.&kernel32.GetLocalTime>     ; \GetLocalTime    ///哈哈,猜对了!
              0040A561  |.  66:8B4C24 0E  mov     cx, word ptr [esp+E]
              0040A566  |.  66:8B5424 0A  mov     dx, word ptr [esp+A]
              0040A56B  |.  66:8B4424 08  mov     ax, word ptr [esp+8]
              0040A570  |.  E8 6BFDFFFF   call    0040A2E0
              0040A575  |.  DD1C24        fstp    qword ptr [esp]
              0040A578  |.  9B            wait
              0040A579  |.  DD0424        fld     qword ptr [esp]
              0040A57C  |.  83C4 18       add     esp, 18
              0040A57F  \.  C3            retn
    004A14B9  |.  DD5D F4       fstp    qword ptr [ebp-C]
    004A14BC  |.  9B            wait
    004A14BD  |.  E8 9687FFFF   call    00499C58                         ;这个CALL里有inf1的内容,俺就不再详写了,有兴趣自己进去看看
    004A14C2  |.  DC6D F4       fsubr   qword ptr [ebp-C]
    004A14C5  |.  A1 D8464A00   mov     eax, dword ptr [4A46D8]
    004A14CA  |.  DB00          fild    dword ptr [eax]
    004A14CC  |.  DED9          fcompp
    004A14CE  |.  DFE0          fstsw   ax
    004A14D0  |.  9E            sahf
    004A14D1  |.  73 78         jnb     short 004A154B
    004A14D3  |.  8B06          mov     eax, dword ptr [esi]
    004A14D5  |.  8B80 04030000 mov     eax, dword ptr [eax+304]
    004A14DB  |.  8B40 68       mov     eax, dword ptr [eax+68]
    004A14DE  |.  BA FF000000   mov     edx, 0FF
    004A14E3  |.  E8 7C38F8FF   call    00424D64
    004A14E8  |.  8B06          mov     eax, dword ptr [esi]
    004A14EA  |.  8B80 08030000 mov     eax, dword ptr [eax+308]
    004A14F0  |.  8B40 68       mov     eax, dword ptr [eax+68]
    004A14F3  |.  BA FF000000   mov     edx, 0FF
    004A14F8  |.  E8 6738F8FF   call    00424D64
    004A14FD  |.  8B06          mov     eax, dword ptr [esi]
    004A14FF  |.  8B80 04030000 mov     eax, dword ptr [eax+304]
    004A1505  |.  BA DC154A00   mov     edx, 004A15DC                    ;  sorry! this trial version of the program has been expired!
    004A150A  |.  E8 291BFCFF   call    00463038
    004A150F  |.  8B06          mov     eax, dword ptr [esi]
    004A1511  |.  8B80 08030000 mov     eax, dword ptr [eax+308]
    004A1517  |.  BA 20164A00   mov     edx, 004A1620                    ;  you should register the program now to keep it on your pc.
    004A151C  |.  E8 171BFCFF   call    00463038

    评分

    参与人数 1飘云币 +40 收起 理由
    月之精灵 + 40 您的贴子很精彩,希望能再次分享!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2024-12-4 10:07
  • 签到天数: 444 天

    [LV.9]以坛为家II

    发表于 2011-1-22 19:58:15 | 显示全部楼层
    向楼主学习,下一步自己要更加努力!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2025-1-13 16:51
  • 签到天数: 1260 天

    [LV.10]以坛为家III

    发表于 2011-1-22 21:41:43 | 显示全部楼层
    学习了啊 很详细 谢谢楼主!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2011-1-23 11:18:48 | 显示全部楼层
    最近比较高产哈,谢谢分享心得
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2011-1-23 14:00:18 | 显示全部楼层
    谢谢分享!!!!!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2011-1-25 19:44:00 | 显示全部楼层
    太牛了,膜拜了!
    PYG19周年生日快乐!
  • TA的每日心情

    2016-8-3 07:23
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-3-14 14:43:32 | 显示全部楼层
    都是好文章..学习
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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