飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: hrbx

[PYG]CrackMe#1脱壳+去检测+算法分析+VB注册机源码

[复制链接]

该用户从未签到

发表于 2006-2-7 06:15:15 | 显示全部楼层
我来补充一下:

【破解总结】
1、如果用户名长度不大于4,则用户名全部参与运算,否则,只取前4位参与运算,记为str.
2、注册码必须为32位。
3、注册码前3位为str的ASCII值与"chin"各位的ASCII值之和(程序依次将"chin"每一个字符与用户名各位连接)。
4、如果用户名长度不大于17位,则注册码第4位为用户名长度/2,否则,注册码第4位固定为9。
5、注册码后28位为固定字符串"7A11458A1941DDC97BD7A019F4EE79ED"后28位字符。
一组可用注册码:
Name:hrbx
Serial:8542458A1941DDC97BD7A019F4EE79ED


楼主破文中的固定字符串"7A11458A1941DDC97BD7A019F4EE79ED"并非固定的,而是由C盘序列号计算出的,不同机器上是不同的,且在程序启动时已生成。

看这段代码:

0041A6E7   > \53            push    ebx
0041A6E8   .  6A 02         push    2
0041A6EA   .  6A 01         push    1
0041A6EC   .  8D8D 14FFFFFF lea     ecx, [ebp-EC]
0041A6F2   .  53            push    ebx
0041A6F3   .  51            push    ecx
0041A6F4   .  6A 10         push    10
0041A6F6   .  68 80080000   push    880
0041A6FB   .  FF15 D8104000 call    [<&MSVBVM60.__vbaRedim>]         ;  MSVBVM60.__vbaRedim
0041A701   .  8B85 14FFFFFF mov     eax, [ebp-EC]
0041A707   .  C785 0CFFFFFF>mov     dword ptr [ebp-F4], 63
0041A711   .  C785 04FFFFFF>mov     dword ptr [ebp-FC], 2
0041A71B   .  83C4 1C       add     esp, 1C
0041A71E   .  8B48 14       mov     ecx, [eax+14]
0041A721   .  8D95 04FFFFFF lea     edx, [ebp-FC]
0041A727   .  C1E1 04       shl     ecx, 4
0041A72A   .  8BF9          mov     edi, ecx
0041A72C   .  8B48 0C       mov     ecx, [eax+C]
0041A72F   .  2BCF          sub     ecx, edi
0041A731   .  8B3D 14104000 mov     edi, [<&MSVBVM60.__vbaVarMove>]  ;  MSVBVM60.__vbaVarMove
0041A737   .  FFD7          call    edi                              ;  <&MSVBVM60.__vbaVarMove>
0041A739   .  8B85 14FFFFFF mov     eax, [ebp-EC]
0041A73F   .  C785 FCFEFFFF>mov     dword ptr [ebp-104], 3A
0041A749   .  C785 F4FEFFFF>mov     dword ptr [ebp-10C], 2
0041A753   .  8D95 F4FEFFFF lea     edx, [ebp-10C]
0041A759   .  8B48 14       mov     ecx, [eax+14]
0041A75C   .  C1E1 04       shl     ecx, 4
0041A75F   .  898D A4FEFFFF mov     [ebp-15C], ecx
0041A765   .  8B48 0C       mov     ecx, [eax+C]
0041A768   .  8B85 A4FEFFFF mov     eax, [ebp-15C]
0041A76E   .  2BC8          sub     ecx, eax
0041A770   .  83C1 10       add     ecx, 10
0041A773   .  FFD7          call    edi
0041A775   .  8B85 14FFFFFF mov     eax, [ebp-EC]
0041A77B   .  B9 02000000   mov     ecx, 2
0041A780   .  C785 ECFEFFFF>mov     dword ptr [ebp-114], 5C
0041A78A   .  898D E4FEFFFF mov     [ebp-11C], ecx
0041A790   .  2B48 14       sub     ecx, [eax+14]
0041A793   .  8D95 E4FEFFFF lea     edx, [ebp-11C]
0041A799   .  C1E1 04       shl     ecx, 4
0041A79C   .  0348 0C       add     ecx, [eax+C]
0041A79F   .  FFD7          call    edi
0041A7A1   .  8D8D 14FFFFFF lea     ecx, [ebp-EC]
0041A7A7   .  8D95 48FFFFFF lea     edx, [ebp-B8]
0041A7AD   .  51            push    ecx
0041A7AE   .  52            push    edx
0041A7AF   .  FF15 EC104000 call    [<&MSVBVM60.#601>]               ;  MSVBVM60.rtcArray
0041A7B5   .  8D85 14FFFFFF lea     eax, [ebp-EC]
0041A7BB   .  50            push    eax
0041A7BC   .  53            push    ebx
0041A7BD   .  FF15 9C104000 call    [<&MSVBVM60.__vbaErase>]         ;  MSVBVM60.__vbaErase
0041A7C3   .  8D8D 48FFFFFF lea     ecx, [ebp-B8]
0041A7C9   .  51            push    ecx
0041A7CA   .  68 0C200000   push    200C
0041A7CF   .  FF15 68104000 call    [<&MSVBVM60.__vbaAryVar>]        ;  MSVBVM60.__vbaAryVar
0041A7D5   .  8985 E0FEFFFF mov     [ebp-120], eax
0041A7DB   .  8D95 E0FEFFFF lea     edx, [ebp-120]
0041A7E1   .  8D45 84       lea     eax, [ebp-7C]
0041A7E4   .  52            push    edx
0041A7E5   .  50            push    eax
0041A7E6   .  FF15 B8114000 call    [<&MSVBVM60.__vbaAryCopy>]       ;  MSVBVM60.__vbaAryCopy
0041A7EC   .  8D8D 48FFFFFF lea     ecx, [ebp-B8]
0041A7F2   .  FF15 1C104000 call    [<&MSVBVM60.__vbaFreeVar>]       ;  MSVBVM60.__vbaFreeVar
0041A7F8   .  BA 90224100   mov     edx, 00412290
0041A7FD   .  8D4D C4       lea     ecx, [ebp-3C]
0041A800   .  FF15 74114000 call    [<&MSVBVM60.__vbaStrCopy>]       ;  MSVBVM60.__vbaStrCopy
0041A806   .  8B3D F0104000 mov     edi, [<&MSVBVM60.__vbaUI1I2>]    ;  MSVBVM60.__vbaUI1I2
0041A80C   .  B9 02000000   mov     ecx, 2
0041A811   .  FFD7          call    edi                              ;  <&MSVBVM60.__vbaUI1I2>
0041A813   .  33C9          xor     ecx, ecx
0041A815   .  8885 B4FEFFFF mov     [ebp-14C], al
0041A81B   .  FFD7          call    edi
0041A81D   .  8B1D 90114000 mov     ebx, [<&MSVBVM60.__vbaI4Var>]    ;  MSVBVM60.__vbaI4Var
0041A823   .  8845 E8       mov     [ebp-18], al
0041A826   >  8A4D E8       mov     cl, [ebp-18]
0041A829   .  8A85 B4FEFFFF mov     al, [ebp-14C]
0041A82F   .  8B55 C4       mov     edx, [ebp-3C]
0041A832   .  3AC8          cmp     cl, al
0041A834   .  8995 0CFFFFFF mov     [ebp-F4], edx
0041A83A   .  C785 04FFFFFF>mov     dword ptr [ebp-FC], 8
0041A844   .  0F87 AC000000 ja      0041A8F6
0041A84A   .  8B4D 84       mov     ecx, [ebp-7C]
0041A84D   .  85C9          test    ecx, ecx
0041A84F   .  74 2B         je      short 0041A87C
0041A851   .  66:8339 01    cmp     word ptr [ecx], 1
0041A855   .  75 25         jnz     short 0041A87C
0041A857   .  8B7D E8       mov     edi, [ebp-18]
0041A85A   .  8B51 14       mov     edx, [ecx+14]
0041A85D   .  8B41 10       mov     eax, [ecx+10]
0041A860   .  81E7 FF000000 and     edi, 0FF
0041A866   .  2BFA          sub     edi, edx
0041A868   .  3BF8          cmp     edi, eax
0041A86A   .  72 09         jb      short 0041A875
0041A86C   .  FF15 B4104000 call    [<&MSVBVM60.__vbaGenerateBoundsE>;  MSVBVM60.__vbaGenerateBoundsError
0041A872   .  8B4D 84       mov     ecx, [ebp-7C]
0041A875   >  C1E7 04       shl     edi, 4
0041A878   .  8BC7          mov     eax, edi
0041A87A   .  EB 09         jmp     short 0041A885
0041A87C   >  FF15 B4104000 call    [<&MSVBVM60.__vbaGenerateBoundsE>;  MSVBVM60.__vbaGenerateBoundsError
0041A882   .  8B4D 84       mov     ecx, [ebp-7C]
0041A885   >  8B49 0C       mov     ecx, [ecx+C]
0041A888   .  03C8          add     ecx, eax
0041A88A   .  51            push    ecx
0041A88B   .  FFD3          call    ebx
0041A88D   .  8D95 48FFFFFF lea     edx, [ebp-B8]
0041A893   .  50            push    eax
0041A894   .  52            push    edx
0041A895   .  FF15 1C114000 call    [<&MSVBVM60.#608>]               ;  MSVBVM60.rtcVarBstrFromAnsi
0041A89B   .  8D85 04FFFFFF lea     eax, [ebp-FC]
0041A8A1   .  8D8D 48FFFFFF lea     ecx, [ebp-B8]
0041A8A7   .  50            push    eax
0041A8A8   .  8D95 38FFFFFF lea     edx, [ebp-C8]
0041A8AE   .  51            push    ecx
0041A8AF   .  52            push    edx
0041A8B0   .  FF15 34114000 call    [<&MSVBVM60.__vbaVarCat>]        ;  MSVBVM60.__vbaVarCat
0041A8B6   .  50            push    eax
0041A8B7   .  FF15 20104000 call    [<&MSVBVM60.__vbaStrVarMove>]    ;  MSVBVM60.__vbaStrVarMove
0041A8BD   .  8BD0          mov     edx, eax
0041A8BF   .  8D4D C4       lea     ecx, [ebp-3C]
0041A8C2   .  FF15 BC114000 call    [<&MSVBVM60.__vbaStrMove>]       ;  MSVBVM60.__vbaStrMove
0041A8C8   .  8D85 38FFFFFF lea     eax, [ebp-C8]
0041A8CE   .  8D8D 48FFFFFF lea     ecx, [ebp-B8]
0041A8D4   .  50            push    eax
0041A8D5   .  51            push    ecx
0041A8D6   .  6A 02         push    2
0041A8D8   .  FF15 28104000 call    [<&MSVBVM60.__vbaFreeVarList>]   ;  MSVBVM60.__vbaFreeVarList
0041A8DE   .  8A4D E8       mov     cl, [ebp-18]
0041A8E1   .  B0 01         mov     al, 1
0041A8E3   .  83C4 0C       add     esp, 0C
0041A8E6   .  02C1          add     al, cl
0041A8E8   .  0F82 17030000 jb      0041AC05
0041A8EE   .  8845 E8       mov     [ebp-18], al
0041A8F1   .^ E9 30FFFFFF   jmp     0041A826
0041A8F6   >  8B3D A4114000 mov     edi, [<&MSVBVM60.__vbaVarCopy>]  ;  MSVBVM60.__vbaVarCopy
0041A8FC   .  8D95 04FFFFFF lea     edx, [ebp-FC]
0041A902   .  8D4D 8C       lea     ecx, [ebp-74]
0041A905   .  FFD7          call    edi                              ;  <&MSVBVM60.__vbaVarCopy>
0041A907   .  8D45 D8       lea     eax, [ebp-28]
0041A90A   .  50            push    eax
0041A90B   .  FFD3          call    ebx
0041A90D   .  8D4D AC       lea     ecx, [ebp-54]
0041A910   .  8985 D8FEFFFF mov     [ebp-128], eax
0041A916   .  51            push    ecx
0041A917   .  FFD3          call    ebx
0041A919   .  8D55 C8       lea     edx, [ebp-38]
0041A91C   .  8985 DCFEFFFF mov     [ebp-124], eax
0041A922   .  52            push    edx
0041A923   .  FFD3          call    ebx
0041A925   .  8B1D 9C114000 mov     ebx, [<&MSVBVM60.__vbaStrToAnsi>>;  MSVBVM60.__vbaStrToAnsi
0041A92B   .  8985 E0FEFFFF mov     [ebp-120], eax
0041A931   .  8B45 88       mov     eax, [ebp-78]
0041A934   .  6A 7F         push    7F
0041A936   .  8D8D 60FFFFFF lea     ecx, [ebp-A0]
0041A93C   .  50            push    eax
0041A93D   .  51            push    ecx
0041A93E   .  FFD3          call    ebx                              ;  <&MSVBVM60.__vbaStrToAnsi>
0041A940   .  50            push    eax
0041A941   .  8D95 D8FEFFFF lea     edx, [ebp-128]
0041A947   .  8D85 DCFEFFFF lea     eax, [ebp-124]
0041A94D   .  52            push    edx
0041A94E   .  8D8D E0FEFFFF lea     ecx, [ebp-120]
0041A954   .  50            push    eax
0041A955   .  51            push    ecx
0041A956   .  8D95 74FFFFFF lea     edx, [ebp-8C]
0041A95C   .  6A 7F         push    7F
0041A95E   .  8D85 68FFFFFF lea     eax, [ebp-98]
0041A964   .  52            push    edx
0041A965   .  50            push    eax
0041A966   .  FF15 30114000 call    [<&MSVBVM60.__vbaStrVarVal>]     ;  MSVBVM60.__vbaStrVarVal
0041A96C   .  8D8D 64FFFFFF lea     ecx, [ebp-9C]
0041A972   .  50            push    eax
0041A973   .  51            push    ecx
0041A974   .  FFD3          call    ebx
0041A976   .  50            push    eax
0041A977   .  8D55 8C       lea     edx, [ebp-74]
0041A97A   .  8D85 70FFFFFF lea     eax, [ebp-90]
0041A980   .  52            push    edx
0041A981   .  50            push    eax
0041A982   .  FF15 30114000 call    [<&MSVBVM60.__vbaStrVarVal>]     ;  MSVBVM60.__vbaStrVarVal
0041A988   .  8D8D 6CFFFFFF lea     ecx, [ebp-94]
0041A98E   .  50            push    eax
0041A98F   .  51            push    ecx
0041A990   .  FFD3          call    ebx
0041A992   .  50            push    eax
0041A993   .  E8 7075FFFF   call    00411F08
0041A998   .  FF15 58104000 call    [<&MSVBVM60.__vbaSetSystemError>>;  MSVBVM60.__vbaSetSystemError
0041A99E   .  8B95 E0FEFFFF mov     edx, [ebp-120]                   ;  C盘序列号入EDX
0041A9A4   .  BB 03000000   mov     ebx, 3
0041A9A9   .  8995 0CFFFFFF mov     [ebp-F4], edx
0041A9AF   .  8D95 04FFFFFF lea     edx, [ebp-FC]
0041A9B5   .  8D4D C8       lea     ecx, [ebp-38]
0041A9B8   .  899D 04FFFFFF mov     [ebp-FC], ebx
0041A9BE   .  FFD7          call    edi
0041A9C0   .  8B85 DCFEFFFF mov     eax, [ebp-124]
0041A9C6   .  8D95 F4FEFFFF lea     edx, [ebp-10C]
0041A9CC   .  8D4D AC       lea     ecx, [ebp-54]
0041A9CF   .  8985 FCFEFFFF mov     [ebp-104], eax
0041A9D5   .  899D F4FEFFFF mov     [ebp-10C], ebx
0041A9DB   .  FFD7          call    edi
0041A9DD   .  8B8D D8FEFFFF mov     ecx, [ebp-128]
0041A9E3   .  8D95 E4FEFFFF lea     edx, [ebp-11C]
0041A9E9   .  898D ECFEFFFF mov     [ebp-114], ecx
0041A9EF   .  8D4D D8       lea     ecx, [ebp-28]
0041A9F2   .  899D E4FEFFFF mov     [ebp-11C], ebx
0041A9F8   .  FFD7          call    edi
0041A9FA   .  8B95 60FFFFFF mov     edx, [ebp-A0]
0041AA00   .  8D45 88       lea     eax, [ebp-78]
0041AA03   .  52            push    edx
0041AA04   .  50            push    eax
0041AA05   .  FF15 08114000 call    [<&MSVBVM60.__vbaStrToUnicode>]  ;  MSVBVM60.__vbaStrToUnicode
0041AA0B   .  8D8D 60FFFFFF lea     ecx, [ebp-A0]
0041AA11   .  8D95 64FFFFFF lea     edx, [ebp-9C]
0041AA17   .  51            push    ecx
0041AA18   .  52            push    edx
0041AA19   .  8D85 68FFFFFF lea     eax, [ebp-98]
0041AA1F   .  8D8D 6CFFFFFF lea     ecx, [ebp-94]
0041AA25   .  50            push    eax
0041AA26   .  8D95 70FFFFFF lea     edx, [ebp-90]
0041AA2C   .  51            push    ecx
0041AA2D   .  52            push    edx
0041AA2E   .  6A 05         push    5
0041AA30   .  FF15 78114000 call    [<&MSVBVM60.__vbaFreeStrList>]   ;  MSVBVM60.__vbaFreeStrList
0041AA36   .  83C4 18       add     esp, 18
0041AA39   .  8D7E 38       lea     edi, [esi+38]
0041AA3C   .  68 5C0B4100   push    00410B5C
0041AA41   .  FF15 E8104000 call    [<&MSVBVM60.__vbaNew>]           ;  MSVBVM60.__vbaNew
0041AA47   .  50            push    eax
0041AA48   .  8D85 5CFFFFFF lea     eax, [ebp-A4]
0041AA4E   .  50            push    eax
0041AA4F   .  FF15 74104000 call    [<&MSVBVM60.__vbaObjSet>]        ;  MSVBVM60.__vbaObjSet
0041AA55   .  50            push    eax
0041AA56   .  57            push    edi
0041AA57   .  FF15 B0114000 call    [<&MSVBVM60.__vbaVarSetObjAddref>;  MSVBVM60.__vbaVarSetObjAddref
0041AA5D   .  8D8D 5CFFFFFF lea     ecx, [ebp-A4]
0041AA63   .  FF15 D8114000 call    [<&MSVBVM60.__vbaFreeObj>]       ;  MSVBVM60.__vbaFreeObj
0041AA69   .  B8 02000000   mov     eax, 2
0041AA6E   .  8D4D C8       lea     ecx, [ebp-38]
0041AA71   .  8985 0CFFFFFF mov     [ebp-F4], eax
0041AA77   .  8985 04FFFFFF mov     [ebp-FC], eax
0041AA7D   .  8D95 04FFFFFF lea     edx, [ebp-FC]
0041AA83   .  51            push    ecx
0041AA84   .  8D85 48FFFFFF lea     eax, [ebp-B8]
0041AA8A   .  52            push    edx
0041AA8B   .  50            push    eax
0041AA8C   .  C785 FCFEFFFF>mov     dword ptr [ebp-104], 75BCD15
0041AA96   .  899D F4FEFFFF mov     [ebp-10C], ebx
0041AA9C   .  FF15 18114000 call    [<&MSVBVM60.__vbaVarDiv>]        ;  C盘序列号转十进制除2
0041AAA2   .  8D8D 38FFFFFF lea     ecx, [ebp-C8]
0041AAA8   .  50            push    eax
0041AAA9   .  51            push    ecx
0041AAAA   .  FF15 64114000 call    [<&MSVBVM60.__vbaVarInt>]        ; 结果取整
0041AAB0   .  50            push    eax
0041AAB1   .  8D95 F4FEFFFF lea     edx, [ebp-10C]
0041AAB7   .  8D85 28FFFFFF lea     eax, [ebp-D8]
0041AABD   .  52            push    edx
0041AABE   .  50            push    eax
0041AABF   .  FF15 98114000 call    [<&MSVBVM60.__vbaVarAdd>]        ;  取整结果+123456789
0041AAC5   .  8B10          mov     edx, [eax]
0041AAC7   .  83EC 10       sub     esp, 10
0041AACA   .  8BCC          mov     ecx, esp
0041AACC   .  6A 01         push    1
0041AACE   .  68 5C254100   push    0041255C                         ;  y
0041AAD3   .  8911          mov     [ecx], edx
0041AAD5   .  8B50 04       mov     edx, [eax+4]
0041AAD8   .  57            push    edi
0041AAD9   .  8951 04       mov     [ecx+4], edx
0041AADC   .  8B50 08       mov     edx, [eax+8]
0041AADF   .  8B40 0C       mov     eax, [eax+C]
0041AAE2   .  8951 08       mov     [ecx+8], edx
0041AAE5   .  8941 0C       mov     [ecx+C], eax
0041AAE8   .  8D8D 18FFFFFF lea     ecx, [ebp-E8]
0041AAEE   .  51            push    ecx
0041AAEF   .  FF15 AC114000 call    [<&MSVBVM60.__vbaVarLateMemCallL>;  结果转字符串做MD5运算
0041AAF5   .  83C4 20       add     esp, 20                          ;  堆栈区看看......就能看到结果了!


在0041A6E7处F2下断点,F9运行跟踪以下就能看到结果了。
PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2018-12-10 18:30
  • 签到天数: 70 天

    [LV.6]常住居民II

    发表于 2006-2-11 07:01:42 | 显示全部楼层
    的确不同反响,都是高人.我只能NOP掉其中的校验,算法没跟出.
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-4-24 01:35:07 | 显示全部楼层
    这么棒的文章怎么没带上附件?

    快快加上来,我们等着练手!
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-4-22 14:49
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2006-4-24 06:47:50 | 显示全部楼层
    原帖由 野猫III 于 2006-4-24 01:35 发表
    这么棒的文章怎么没带上附件?

    快快加上来,我们等着练手!



    他都写软件名字了;P

    https://www.chinapyg.com/viewthr ... &extra=page%3D1
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2016-10-21 20:30
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2006-4-26 23:43:20 | 显示全部楼层
    谢谢busheler 兄指点,已更改!

    用flyOD将0417849处的ja====>JMP可以避开检测,
    但是如果改为用其它调试器(如UnKillOD),仍然会被检测到。
    所以估计改0417849处并非是万全之策,请高手再指点如何完全避开对调试器的检测。

    谢谢!

    [ 本帖最后由 hrbx 于 2006-4-26 23:48 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-4-27 11:15:11 | 显示全部楼层
    原帖由 飘云 于 2006-4-24 06:47 发表
    他都写软件名字了;P
    https://www.chinapyg.com/viewthr ... &extra=page%3D1


    是很高!这个咱都玩不动的。
    算法是咱的弱点,所以得多下苦功夫才行。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-4-27 17:55:06 | 显示全部楼层

    羡慕中,努力中,望月兴叹,叹,什么时候我能练到这个地步。

    羡慕中,努力中,望月兴叹,叹,什么时候我能练到这个地步。
    我只有一点基础,但离各位甚远。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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