论坛: 编程破解 标题: [转帖]创奇会计档案管理系统3.0注册算法 复制本贴地址    
作者: yongmin [yongmin]    论坛用户   登录
破文标题】创奇会计档案管理系统 3.0注册算法
【破文作者】XXNB
【作者邮箱】支持PYG
【作者主页】http://free.ys168.com/?binbinbin7456
【破解工具】OD
【破解平台】xpsp2
【软件名称】创奇会计档案管理系统 2.0
【软件大小】2852KB
【原版下载】http://www.newhua.com/soft/49987.htm
【保护方式】名+码
【软件简介】 该系统根据国家会计档案整理标准设计通用性强、数据库灵活的备份与恢复使你的工作得到保证、数据EXCEL、WORD的导出使系

统具有更强扩展性。
【破解声明】向大侠们学习!!!只为学习!请尊重作者的劳动成功!
------------------------------------------------------------------------
【破解过程】

这两天学了下脱壳。

结果给我找到了个国产的用Aspr标准加壳的软件。verA0.15查到的是:Version: ASProtect 2.11 SKE build 03.13 Release [1]

我照大侠们的补区段大法顺利脱壳成功,然后发现算法还是比较简单,所以。放出来了。

1、下断函数:bp MessageBoxA。然后查看堆栈信息。我们能够返回到下面的关键代码处!!

006266C4  /.  55            push    ebp
006266C5  |.  8BEC          mov    ebp, esp
006266C7  |.  33C9          xor    ecx, ecx
006266C9  |.  51            push    ecx
006266CA  |.  51            push    ecx
006266CB  |.  51            push    ecx
006266CC  |.  51            push    ecx
006266CD  |.  51            push    ecx
006266CE  |.  51            push    ecx
006266CF  |.  53            push    ebx
006266D0  |.  56            push    esi
006266D1  |.  8BD8          mov    ebx, eax
006266D3  |.  33C0          xor    eax, eax
006266D5  |.  55            push    ebp
006266D6  |.  68 53686200  push    00626853
006266DB  |.  64:FF30      push    dword ptr fs:[eax]
006266DE  |.  64:8920      mov    dword ptr fs:[eax], esp
006266E1  |.  8D55 F4      lea    edx, dword ptr [ebp-C]
006266E4  |.  8B83 E0020000 mov    eax, dword ptr [ebx+2E0]
006266EA  |.  E8 B14FE5FF  call    0047B6A0
006266EF  |.  8B45 F4      mov    eax, dword ptr [ebp-C]          ;  用户名
006266F2  |.  8D55 FC      lea    edx, dword ptr [ebp-4]
006266F5  |.  E8 D636DEFF  call    00409DD0
006266FA  |.  8D55 F0      lea    edx, dword ptr [ebp-10]
006266FD  |.  8B83 E4020000 mov    eax, dword ptr [ebx+2E4]
00626703  |.  E8 984FE5FF  call    0047B6A0
00626708  |.  8B45 F0      mov    eax, dword ptr [ebp-10]          ;  假码
0062670B  |.  8D55 F8      lea    edx, dword ptr [ebp-8]
0062670E  |.  E8 BD36DEFF  call    00409DD0
00626713  |.  837D FC 00    cmp    dword ptr [ebp-4], 0            ;  是否为空
00626717  |.  74 06        je      short 0062671F
00626719  |.  837D F8 00    cmp    dword ptr [ebp-8], 0            ;  是否为空
0062671D  |.  75 16        jnz    short 00626735
0062671F  |>  A1 8CD76400  mov    eax, dword ptr [64D78C]
00626724  |.  8B00          mov    eax, dword ptr [eax]
00626726  |.  BA 68686200  mov    edx, 00626868
0062672B  |.  E8 5041FBFF  call    005DA880
00626730  |.  E9 03010000  jmp    00626838
00626735  |>  8B45 FC      mov    eax, dword ptr [ebp-4]          ;  用户名
00626738  |.  E8 CBD9DDFF  call    00404108                        ;  计算位数
0062673D  |.  83F8 0A      cmp    eax, 0A                          ;  要大于等于0A
00626740  |.  7D 16        jge    short 00626758
00626742  |.  A1 8CD76400  mov    eax, dword ptr [64D78C]
00626747  |.  8B00          mov    eax, dword ptr [eax]
00626749  |.  BA 88686200  mov    edx, 00626888
0062674E  |.  E8 2D41FBFF  call    005DA880
00626753  |.  E9 E0000000  jmp    00626838
00626758  |>  8D55 EC      lea    edx, dword ptr [ebp-14]
0062675B  |.  8B45 FC      mov    eax, dword ptr [ebp-4]          ;  用户名
0062675E  |.  E8 51F7FFFF  call    00625EB4                        ;  算法call,跟进《《《《《《《《《《《《《《
00626763  |.  8B45 EC      mov    eax, dword ptr [ebp-14]          ;  真码
00626766  |.  8B55 F8      mov    edx, dword ptr [ebp-8]          ;  假码
00626769  |.  E8 AADADDFF  call    00404218                        ;  比较函数
0062676E  |.  74 16        je      short 00626786                  ;  关键跳
00626770  |.  A1 8CD76400  mov    eax, dword ptr [64D78C]
00626775  |.  8B00          mov    eax, dword ptr [eax]
00626777  |.  BA AC686200  mov    edx, 006268AC
0062677C  |.  E8 FF40FBFF  call    005DA880
00626781  |.  E9 B2000000  jmp    00626838



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2、跟进上面的算法call  00625EB4 得到:

00625EB4  /$  55            push    ebp
00625EB5  |.  8BEC          mov    ebp, esp
00625EB7  |.  81C4 ECFDFFFF add    esp, -214
00625EBD  |.  53            push    ebx
00625EBE  |.  56            push    esi
00625EBF  |.  57            push    edi
00625EC0  |.  33C9          xor    ecx, ecx
00625EC2  |.  898D ECFDFFFF mov    dword ptr [ebp-214], ecx
00625EC8  |.  894D F0      mov    dword ptr [ebp-10], ecx
00625ECB  |.  894D F4      mov    dword ptr [ebp-C], ecx
00625ECE  |.  8955 F8      mov    dword ptr [ebp-8], edx
00625ED1  |.  8945 FC      mov    dword ptr [ebp-4], eax
00625ED4  |.  8B45 FC      mov    eax, dword ptr [ebp-4]
00625ED7  |.  E8 E0E3DDFF  call    004042BC
00625EDC  |.  33C0          xor    eax, eax
00625EDE  |.  55            push    ebp
00625EDF  |.  68 B95F6200  push    00625FB9
00625EE4  |.  64:FF30      push    dword ptr fs:[eax]
00625EE7  |.  64:8920      mov    dword ptr fs:[eax], esp
00625EEA  |.  8D45 F4      lea    eax, dword ptr [ebp-C]
00625EED  |.  E8 96DFDDFF  call    00403E88
00625EF2  |.  8B45 FC      mov    eax, dword ptr [ebp-4]
00625EF5  |.  E8 0EE2DDFF  call    00404108
00625EFA  |.  8BF8          mov    edi, eax
00625EFC  |.  85FF          test    edi, edi
00625EFE  |.  7E 48        jle    short 00625F48
00625F00  |.  BB 01000000  mov    ebx, 1                          ;  计数器
00625F05  |>  8B45 FC      /mov    eax, dword ptr [ebp-4]          ;  用户名到eax
00625F08  |.  0FB67418 FF  |movzx  esi, byte ptr [eax+ebx-1]      ;  逐个去用户名
00625F0D  |.  B8 D05F6200  |mov    eax, 00625FD0                  ;  固定字符串 (ASCII "dd23439olklj+jik32fg443243

\o2u8o@wgbv825ytryrl;5kgi\-klj`ashjs^df`afteyr65756tye7dg876s")
00625F12  |.  0FB64418 FF  |movzx  eax, byte ptr [eax+ebx-1]      ;  逐个取固定字符串
00625F17  |.  33F0          |xor    esi, eax                        ;  两个值异或
00625F19  |.  8D8D F0FEFFFF |lea    ecx, dword ptr [ebp-110]
00625F1F  |.  BA 03000000  |mov    edx, 3
00625F24  |.  8BC6          |mov    eax, esi                        ;  异或结果到eax
00625F26  |.  E8 01FFFFFF  |call    00625E2C
00625F2B  |.  8D95 F0FEFFFF |lea    edx, dword ptr [ebp-110]        ;  扩展成三位数,比如“6”->“006”;“15”->"015"
00625F31  |.  8D45 F0      |lea    eax, dword ptr [ebp-10]
00625F34  |.  E8 73E1DDFF  |call    004040AC
00625F39  |.  8B55 F0      |mov    edx, dword ptr [ebp-10]
00625F3C  |.  8D45 F4      |lea    eax, dword ptr [ebp-C]
00625F3F  |.  E8 CCE1DDFF  |call    00404110
00625F44  |.  43            |inc    ebx
00625F45  |.  4F            |dec    edi
00625F46  |.^ 75 BD        \jnz    short 00625F05
00625F48  |>  8D95 ECFDFFFF lea    edx, dword ptr [ebp-214]
00625F4E  |.  8B45 F4      mov    eax, dword ptr [ebp-C]          ;  这里就是循环的结果了。
00625F51  |.  E8 7A3EDEFF  call    00409DD0
00625F56  |.  8B95 ECFDFFFF mov    edx, dword ptr [ebp-214]
00625F5C  |.  8D85 F0FDFFFF lea    eax, dword ptr [ebp-210]
00625F62  |.  B9 FF000000  mov    ecx, 0FF
00625F67  |.  E8 78E1DDFF  call    004040E4
00625F6C  |.  8D85 F0FDFFFF lea    eax, dword ptr [ebp-210]
00625F72  |.  8D95 F0FEFFFF lea    edx, dword ptr [ebp-110]
00625F78  |.  E8 07FEFFFF  call    00625D84
00625F7D  |.  8D95 F0FEFFFF lea    edx, dword ptr [ebp-110]        ;  倒转字符串。这个就是真正的注册码了。
00625F83  |.  8B45 F8      mov    eax, dword ptr [ebp-8]
00625F86  |.  E8 21E1DDFF  call    004040AC
00625F8B  |.  33C0          xor    eax, eax
00625F8D  |.  5A            pop    edx
00625F8E  |.  59            pop    ecx
00625F8F  |.  59            pop    ecx
00625F90  |.  64:8910      mov    dword ptr fs:[eax], edx
00625F93  |.  68 C05F6200  push    00625FC0
00625F98  |>  8D85 ECFDFFFF lea    eax, dword ptr [ebp-214]
00625F9E  |.  E8 E5DEDDFF  call    00403E88




【破解总结】
------------------------------------------------------------------------
这个软件的2.0和3.0的算法差别就只是变换了下固定字符串。作者真是太忙了,看来。


1、判断用户名位数一定要大于等于10位数。

2、逐个取用户名字符串的Ascii码值到esi,
相应的逐个取固定字符串“dd23439olklj+jik32fg443243\o2u8o@wgbv825ytryrl;5kgi\-klj`ashjs^df`afteyr65756tye7dg876s”到eax
然后esi 异或 eax。得到的值转成10进制。如果不足三位的用0填充。如:“6”->“006”。“15”->“015”

3、把得到的异或值填充后的字符串连接后,再倒过来,就是最后真正的注册码了。

用户名:binbinbinbin
注册码:400500900200600190390390180290310600


用户名:unpackunpack
注册码:100510010820100670880780280660010710

地主 发表时间: 06-12-04 10:57

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号