首页
社区
课程
招聘
[旧帖] [原创]介绍一个写代码的好工具及破解 0.00雪花
发表于: 2007-7-12 11:54 6461

[旧帖] [原创]介绍一个写代码的好工具及破解 0.00雪花

2007-7-12 11:54
6461
    偶学电子,本与计算机无缘,但用单片机写代码多了,也就有了程序的概念和破解的基础.偏偏没有计算机理论,高级语言应用很少,于是对写注册机就不敢有要求,追出注册码就不错了.
    偶写代码,最初是用记事本,后来用台湾的汉书(HE),觉得不错就一直用下来.虽然再后来用过UE,但因汉书(HE)编辑功能让偶这些写代码的人很方便,而且偶用熟了汉书(HE),也就放弃UE.

    下面是汉书HE编辑功能的简介:
       . 行复制(Alt-X)加上下换行(Ctrl-↑、Ctrl-↓)
        这可以省去传统的「复制、贴上」繁杂过程。

      . 好用的搜寻(Ctrl-F)、代换(Alt-R)
        多种选项可以精准的搜寻、代换。
        可以搜寻、代换多档,包括整个硬盘。

      . Undo/Redo(Ctrl-Z/CtrlY)
        只要尚未存档、或是将档案移出,就能一步步的还原回原来的状态。
        也能对还原再作恢复。

      . 颜色变化、字型变化
        可以设定画面各部位的颜色,显示的字型、大小
        可以设定条件让某些文字变色,对于撰写程序语言特别有用

    汉书HE默认Tab键仅仅是将光标跳格,不是连同光标后的内容一起跳格,这点与其它编辑软件不同.

    前段时间上大方广网站找了个汉书XP8.4简体正式版(6aaK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4y4@1L8$3&6W2i4K6u0W2j5$3!0E0i4K6u0W2N6s2N6Q4x3V1k6K6N6r3!0F1k6g2)9J5c8X3k6A6L8r3g2Q4x3V1k6t1c8e0S2Q4x3X3c8s2b7W2)9J5k6i4A6A6M7q4)9J5z5g2)9J5b7#2!0q4y4g2!0m8c8g2)9^5z5g2!0q4z5q4!0m8x3#2)9^5y4g2)9J5b7#2!0q4z5q4!0n7c8W2)9&6x3q4!0q4z5q4!0m8x3g2)9^5b7#2)9J5b7#2!0q4z5q4!0m8y4W2)9^5x3g2!0q4z5q4!0n7c8g2)9&6x3#2!0q4y4g2)9^5y4g2!0m8y4g2!0q4y4g2!0n7b7g2)9^5c8W2!0q4y4g2)9^5z5q4)9&6y4#2!0q4y4g2)9^5c8W2!0n7y4#2)9J5k6g2!0q4z5q4!0n7c8g2)9&6x3#2!0q4y4g2)9^5y4g2!0m8y4g2!0q4y4g2!0n7b7g2)9^5c8W2!0q4y4g2)9^5z5q4)9&6y4#2!0q4y4g2)9^5c8W2!0n7y4#2!0q4y4g2)9&6x3q4)9^5c8g2!0q4y4#2!0m8x3g2!0m8c8g2!0q4y4g2!0m8c8g2)9&6b7g2)9J5b7#2!0q4y4W2)9^5c8W2)9&6x3q4!0q4y4#2!0m8y4q4!0n7b7g2!0q4y4g2)9^5y4#2!0n7b7g2!0q4z5g2)9&6y4q4)9&6z5g2)9J5k6g2!0q4z5q4!0n7c8W2)9&6z5g2!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4W2)9&6z5q4!0m8c8W2!0q4z5q4!0m8y4W2)9^5x3g2!0q4y4W2!0n7x3#2!0m8z5q4!0q4y4g2)9^5y4W2)9^5b7#2!0q4y4#2)9&6b7g2)9^5y4q4)9J5b7#2!0q4y4q4!0n7b7g2)9^5c8g2!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4g2!0n7x3q4!0n7x3g2!0q4y4W2)9&6b7#2)9^5z5g2!0q4y4q4!0n7b7g2)9^5y4W2!0q4y4q4!0n7z5q4)9^5b7W2!0q4z5g2)9&6c8q4!0m8x3W2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4#2!0m8x3q4!0n7y4q4!0q4z5q4!0m8y4#2!0m8x3#2)9J5k6b7`.`.
    查壳:无,VC++6.0,偶不懂高级语言,不知道不同的编程语言对于破解有哪些不一样,求高人指点.

    用OD,按惯例,先查出错提示的字串,失望.
    查函数参考,还好,有GetdlgitemtextA,就它,在每人参考上设置断点.哇,18个.F9,输入姓名,序号和流水号,确定,断下后前面的几个断点可不管,到45E3B3处的断点后慢慢分析(实际上只需断这里即可).

0045E3B2  |.  50            push    eax                              ; |hWnd
0045E3B3  |.  FF15 48434A00 call    dword ptr [<&USER32.GetDlgItemTe>; \GetDlgItemTextA  中断点
0045E3B9  |.  0FBE8D 6CFCFF>movsx   ecx, byte ptr [ebp-394]          ;检查输入S/N是否为空
0045E3C0  |.  85C9          test    ecx, ecx
0045E3C2  |.  74 16         je      short 0045E3DA
0045E3C4  |.  0FBE95 A0FBFF>movsx   edx, byte ptr [ebp-460]
0045E3CB  |.  85D2          test    edx, edx                         ;检查输入EMAIL是否为空
0045E3CD  |.  74 0B         je      short 0045E3DA
0045E3CF  |.  0FBE85 40FCFF>movsx   eax, byte ptr [ebp-3C0]
0045E3D6  |.  85C0          test    eax, eax                         ;检查输入流水号是否为空
0045E3D8  |.  75 27         jnz     short 0045E401
0045E3DA  |>  6A 00         push    0
0045E3DC  |.  68 B8754B00   push    004B75B8                         ;  error
0045E3E1  |.  68 C0754B00   push    004B75C0                         ; /register/fieldempty-
0045E3E6  |.  E8 FAAEFBFF   call    004192E5                         ; \He8.004192E5
0045E3EB  |.  83C4 04       add     esp, 4
0045E3EE  |.  50            push    eax                              ; |Text
0045E3EF  |.  6A 00         push    0                                ; |hOwner = NULL
0045E3F1  |.  FF15 88434A00 call    dword ptr [<&USER32.MessageBoxA>>; \MessageBoxA
0045E3F7  |.  B8 01000000   mov     eax, 1
0045E3FC  |.  E9 9C020000   jmp     0045E69D
0045E401  |>  8B0D 74DA4A00 mov     ecx, dword ptr [4ADA74]          ;  He8.004ADBB0
0045E407  |.  51            push    ecx
0045E408  |.  8D95 4CFCFFFF lea     edx, dword ptr [ebp-3B4]
0045E40E  |.  52            push    edx
0045E40F  |.  E8 9C810300   call    004965B0
0045E414  |.  83C4 08       add     esp, 8
0045E417  |.  68 D4754B00   push    004B75D4                         ;  -
0045E41C  |.  8D85 4CFCFFFF lea     eax, dword ptr [ebp-3B4]
0045E422  |.  50            push    eax
0045E423  |.  E8 98810300   call    004965C0
0045E428  |.  83C4 08       add     esp, 8
0045E42B  |.  8D8D 6CFCFFFF lea     ecx, dword ptr [ebp-394]         ;输入的S/N
0045E431  |.  51            push    ecx
0045E432  |.  8D95 4CFCFFFF lea     edx, dword ptr [ebp-3B4]
0045E438  |.  52            push    edx
0045E439  |.  E8 82810300   call    004965C0                         ;连接HE8-和S/N作为新的S/N
0045E43E  |.  83C4 08       add     esp, 8
0045E441  |.  8D85 4CFCFFFF lea     eax, dword ptr [ebp-3B4]
0045E447  |.  50            push    eax                              ; /Arg1
0045E448  |.  E8 51F4FFFF   call    0045D89E                         ; \He8.0045D89E  关键,F7进去看看
0045E44D  |.  83C4 04       add     esp, 4
0045E450  |.  83F8 03       cmp     eax, 3
0045E453  |.  75 27         jnz     short 0045E47C                   ;跳走就OK
0045E455  |.  6A 00         push    0
0045E457  |.  68 D8754B00   push    004B75D8                         ;  error
0045E45C  |.  68 E0754B00   push    004B75E0                         ; /register/snoerr%s\reg
0045E461  |.  E8 7FAEFBFF   call    004192E5                         ; \He8.004192E5
0045E466  |.  83C4 04       add     esp, 4
0045E469  |.  50            push    eax                              ; |Text
0045E46A  |.  6A 00         push    0                                ; |hOwner = NULL
0045E46C  |.  FF15 88434A00 call    dword ptr [<&USER32.MessageBoxA>>; \MessageBoxA
0045E472  |.  B8 01000000   mov     eax, 1
0045E477  |.  E9 21020000   jmp     0045E69D
0045E47C  |>  68 E0564E00   push    004E56E0
0045E481  |.  68 F0754B00   push    004B75F0                         ;  %s\reg
0045E486  |.  8D8D 7CFCFFFF lea     ecx, dword ptr [ebp-384]
0045E48C  |.  51            push    ecx
0045E48D  |.  E8 188F0300   call    004973AA
0045E492  |.  83C4 0C       add     esp, 0C
0045E495  |.  8D95 A0FDFFFF lea     edx, dword ptr [ebp-260]
0045E49B  |.  52            push    edx                              ; /pHandle
0045E49C  |.  68 06000200   push    20006                            ; |Access = KEY_WRITE
0045E4A1  |.  6A 00         push    0                                ; |Reserved = 0
0045E4A3  |.  8D85 7CFCFFFF lea     eax, dword ptr [ebp-384]         ; |
0045E4A9  |.  50            push    eax                              ; |Subkey
0045E4AA  |.  68 02000080   push    80000002                         ; |hKey = HKEY_LOCAL_MACHINE
0045E4AF  |.  FF15 28404A00 call    dword ptr [<&ADVAPI32.RegOpenKey>; \RegOpenKeyExA

45E448处的Call:

0045D89E  /$  55            push    ebp
0045D89F  |.  8BEC          mov     ebp, esp
0045D8A1  |.  83EC 14       sub     esp, 14
0045D8A4  |.  C745 F0 00000>mov     dword ptr [ebp-10], 0
0045D8AB  |.  C745 FC 00000>mov     dword ptr [ebp-4], 0
0045D8B2  |.  C745 F4 00000>mov     dword ptr [ebp-C], 0
0045D8B9  |.  C705 AC584E00>mov     dword ptr [4E58AC], 0
0045D8C3  |.  A1 68DA4A00   mov     eax, dword ptr [4ADA68]
0045D8C8  |.  8945 F4       mov     dword ptr [ebp-C], eax
0045D8CB  |.  E8 D977FDFF   call    004350A9
0045D8D0  |.  85C0          test    eax, eax
0045D8D2  |.  74 11         je      short 0045D8E5
0045D8D4  |.  C705 AC584E00>mov     dword ptr [4E58AC], 4
0045D8DE  |.  33C0          xor     eax, eax
0045D8E0  |.  E9 B9000000   jmp     0045D99E
0045D8E5  |>  C745 FC 00000>mov     dword ptr [ebp-4], 0
0045D8EC  |.  8B4D 08       mov     ecx, dword ptr [ebp+8]
0045D8EF  |.  51            push    ecx
0045D8F0  |.  E8 CB960300   call    00496FC0                         ;计算新S/N长度
0045D8F5  |.  83C4 04       add     esp, 4
0045D8F8  |.  8945 EC       mov     dword ptr [ebp-14], eax
0045D8FB  |.  837D EC 11    cmp     dword ptr [ebp-14], 11           ;比较新S/N长度是否为11h,即是否为17个ASCII码
0045D8FF  |.  74 0A         je      short 0045D90B                   ;跳走就OK,不跳则完蛋
0045D901  |.  B8 03000000   mov     eax, 3
0045D906  |.  E9 93000000   jmp     0045D99E
0045D90B  |>  C745 F0 00000>mov     dword ptr [ebp-10], 0
0045D912  |.  EB 09         jmp     short 0045D91D
0045D914  |>  8B55 F0       /mov     edx, dword ptr [ebp-10]
0045D917  |.  83C2 01       |add     edx, 1
0045D91A  |.  8955 F0       |mov     dword ptr [ebp-10], edx
0045D91D  |>  8B45 EC        mov     eax, dword ptr [ebp-14]
0045D920  |.  83E8 01       |sub     eax, 1
0045D923  |.  3945 F0       |cmp     dword ptr [ebp-10], eax
0045D926  |.  73 13         |jnb     short 0045D93B
0045D928  |.  8B4D 08       |mov     ecx, dword ptr [ebp+8]
0045D92B  |.  034D F0       |add     ecx, dword ptr [ebp-10]
0045D92E  |.  0FBE11        |movsx   edx, byte ptr [ecx]
0045D931  |.  8B45 FC       |mov     eax, dword ptr [ebp-4]
0045D934  |.  03C2          |add     eax, edx                        ;计算新S/N前16个ASCII码之和
0045D936  |.  8945 FC       |mov     dword ptr [ebp-4], eax
0045D939  |.^ EB D9         \jmp     short 0045D914                  (initial cpu selection)
0045D93B  |>  8B45 FC       mov     eax, dword ptr [ebp-4]
0045D93E  |.  99            cdq
0045D93F  |.  B9 1A000000   mov     ecx, 1A
0045D944  |.  F7F9          idiv    ecx                              ;前16个ASCII码之和除以1Ah
0045D946  |.  83C2 41       add     edx, 41                          ;取余数加41h,调整为大写字母
0045D949  |.  8855 F8       mov     byte ptr [ebp-8], dl
0045D94C  |.  0FBE55 F8     movsx   edx, byte ptr [ebp-8]
0045D950  |.  83FA 49       cmp     edx, 49
0045D953  |.  74 09         je      short 0045D95E
0045D955  |.  0FBE45 F8     movsx   eax, byte ptr [ebp-8]
0045D959  |.  83F8 4F       cmp     eax, 4F
0045D95C  |.  75 0A         jnz     short 0045D968
0045D95E  |>  0FBE4D F8     movsx   ecx, byte ptr [ebp-8]
0045D962  |.  83C1 01       add     ecx, 1
0045D965  |.  884D F8       mov     byte ptr [ebp-8], cl
0045D968  |>  C705 AC584E00>mov     dword ptr [4E58AC], 4
0045D972  |.  8B55 08       mov     edx, dword ptr [ebp+8]
0045D975  |.  52            push    edx
0045D976  |.  E8 45960300   call    00496FC0
0045D97B  |.  83C4 04       add     esp, 4
0045D97E  |.  83E8 01       sub     eax, 1
0045D981  |.  8945 F0       mov     dword ptr [ebp-10], eax
0045D984  |.  8B45 08       mov     eax, dword ptr [ebp+8]
0045D987  |.  0345 F0       add     eax, dword ptr [ebp-10]
0045D98A  |.  0FBE08        movsx   ecx, byte ptr [eax]              ;取新S/N的最后一位
0045D98D  |.  0FBE55 F8     movsx   edx, byte ptr [ebp-8]            ;取前面计算得到的大写字母
0045D991  |.  3BCA          cmp     ecx, edx                         ;比较这两个数是否相等
0045D993  |.  74 07         je      short 0045D99C                   ;相等就OK,不相等则完蛋
0045D995  |.  B8 03000000   mov     eax, 3
0045D99A  |.  EB 02         jmp     short 0045D99E
0045D99C  |>  33C0          xor     eax, eax
0045D99E  |>  8BE5          mov     esp, ebp
0045D9A0  |.  5D            pop     ebp
0045D9A1  \.  C3            retn

    算法很简单,上面的注解都有了.姓名和流水号任意,序号须为13位.先将HE8-和序号连接成17位作为新的序号,再将前16的ASCII取和并除以26,余数加41h作为序号的最后一位.注册后在注册表HKEY_MACHINE\SOFTWARE\大方广\汉书XP\reg下写入相关内容,同时会将注册信息发到大方广.偶试过将注册表send项数据由0改为1,便不发送注册信息了,改为0则在每次启动汉书时均会提示发送注册信息.偶就不再去破解这点了,哪位有兴趣可试试.

    偶是小菜鸟,作为对新手的鼓励,现将破解分享给各位,同时将好工具介绍给大家.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
HE8-AAAAAAAAAANNJ

破解所得
2007-7-12 13:24
0
雪    币: 260
活跃值: (102)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
有机会试试vim或者emacs吧
2007-7-12 15:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Sorry. 楼上的,偶孤陋寡闻,没见过vim和emacs,不知是啥东东,请解答.如果好用,请介绍给大家.
2007-7-12 18:00
0
游客
登录 | 注册 方可回帖
返回