飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3362|回复: 4

[转贴] 友益文书8.4.5版破解记录

  [复制链接]

该用户从未签到

发表于 2009-7-16 19:16:11 | 显示全部楼层 |阅读模式
友益文书8.4.5版破解记录
本帖转自吾爱破解,最后由 CHHSun 于 2009-7-16 11:35 编辑

友益文书8.4.5版去标题字样,视频,目录限制等破解记录

声明:破解此程序没有其它目的,仅为了学习,请不要用于非法用途。


----------

ASPack 2.12 -> Alexey Solodovnikov [Overlay]

虽然壳简单在脱后的效验太多,这里就不脱了,带着吧不影响破解。

没有要输入注册码的地方,文件难的,狗版可能是DLL狗文件验证的,我们也没有这只狗。怎么办,注册于不注册在于他的功能上
限制,狗版是3万个目录,一般注册版是1万目录,不注册是99个目录,破这个东东,有好几个老大的帮助,我在这里只是整理下记录而以。
费话不多说了
----------
开始,
一、过未注册和视频限制(中间也就代着过了标题字样了)
A、先分析下,在破

用esp定律到达OEP后,查找字符串,找到

0Ultra String Reference, 条目 3674
Address=00577883
Disassembly=mov     edx, 00577B18
Text String=未注册

,双击进入 00577858    BA F47A5700     mov     edx, 00577AF4           ; 8.4.5

0057785D    8B83 F4020000   mov     eax, dword ptr [ebx+2F4]

00577863    E8 D4EAEBFF     call    0043633C

00577868    BA 047B5700     mov     edx, 00577B04          ; 本机未注册

0057786D    8B83 EC020000   mov     eax, dword ptr [ebx+2EC]

00577873    E8 C4EAEBFF     call    0043633C

00577878    8B06            mov     eax, dword ptr [esi]

0057787A    80B8 E8370000 0>cmp     byte ptr [eax+37E8], 0B

00577881    75 53           jnz     short 005778D6

00577883    BA 187B5700     mov     edx, 00577B18           ; 未注册

00577888    8B83 0C030000   mov     eax, dword ptr [ebx+30C]
复制代码--------------
向上找到段首下硬件执行断点,重载程序,F9运行,中断后F8继续向下走,到0057787, 0057787A    80B8 E8370000 0>cmp     byte ptr [eax+37E8], 0B   ;OB和eax+37E8比较

00577881    75 53           jnz     short 005778D6                         ;不等OB就跳过未注册。

00577883    BA 187B5700     mov     edx, 00577B18                    ; 未注册

00577888    8B83 0C030000   mov     eax, dword ptr [ebx+30C]
复制代码这里注意看数据辅助窗口eax+37E8的值是OB,或者命令dd eax+37E8同样也是来到下面的地址,记下这个内存地址,过会有用,

ds:[01E85D54]=0B

我们先让JNZ跳过未注册继续向下找到 005778D6    8B06            mov eax,dword ptr ds:[esi]                  ;跳到这里了

005778D8    80B8 E8370000 0>cmp byte ptr ds:[eax+37E8],0E    ;这里是不是和上面的OB的比较差不多

005778DF    0F85 56010000   jnz 友益文书.00577A3B                  ;这个跳不能跳走,否则完蛋。

005778E5    B2 01           mov dl,1
复制代码如果005778D8 的eax+37E8这个内存值等于OE下面的跳就不跳,好我们知道是怎么个意思了,我们在回到上面OB那个
地方看看,ds:[02525D54]=0B,这个值改为OE是不是就可以跳过了。现在已经是OB了,我们怎么知道在他没写入的
时候下断呢改值呢。

继续向下走05778DF    0F85 56010000   jnz 这个不让他跳过去。
-------------
向下来到 00577929    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]        ; 走到这里就到了比较判断是注册的哪个版本了,注意辅助窗口eax+37FC的值=00000054

0057792F    E8 3423E9FF     call 友益文书.00409C68       ;这个CALL是关键,F7进入,因为下面还调用了好多次,也就是说上面所说的OB,00000054都要经过这个CALL

00577934    3D 30750000     cmp eax,7530                   ;十六进制7530是30000

00577939    7E 14           jle short 友益文书.0057794F            

0057793B    8B06            mov eax,dword ptr ds:[esi]

0057793D    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]

00577943    E8 2023E9FF     call 友益文书.00409C68

00577948    3D 50C30000     cmp eax,0C350

0057794D    7C 28           jl short 友益文书.00577977

0057794F    8B06            mov eax,dword ptr ds:[esi]

00577951    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]

00577957    E8 0C23E9FF     call 友益文书.00409C68

0057795C    3D C8000000     cmp eax,0C8

00577961    7E 26           jle short 友益文书.00577989

00577963    8B06            mov eax,dword ptr ds:[esi]

00577965    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]

0057796B    E8 F822E9FF     call 友益文书.00409C68

00577970    3D E8030000     cmp eax,3E8

00577975    7D 12           jge short 友益文书.00577989

00577977    BA 287B5700     mov edx,友益文书.00577B28        ;  ****商用版****

0057797C    8B83 0C030000   mov eax,dword ptr ds:[ebx+30C]
复制代码我们把00000054改为29968看看吧,在命令里dd eax+37FC在数据窗口里能看到00000054,二进制编辑成00029968



------------------------------

以上是分析了下,说了半天大家可能有点晕,从OB改为OE,00000054改为00029968,既然我们要改他了,我们要看看是哪些地址让他为OB的,改了他。

B、破

先在关键CALL 00409C68  F7进入下硬件断点,普通断不好用。可能程序有检测。为什么要在这里下断,是因为断在这里,一些内存值还没有写还是00000000
过了这个CALL就会出现上面的OB 00000054这些值了,
来到 00409C68    53              push ebx        下硬件执行断点。重载程序。

00409C69    56              push esi

00409C6A    83C4 F4         add esp,-0C

00409C6D    8BD8            mov ebx,eax

00409C6F    8BD4            mov edx,esp

00409C71    8BC3            mov eax,ebx

00409C73    E8 B890FFFF     call 友益文书.00402D30

00409C78    8BF0            mov esi,eax

00409C7A    833C24 00       cmp dword ptr ss:[esp],0

00409C7E    74 19           je short 友益文书.00409C99

00409C80    895C24 04       mov dword ptr ss:[esp+4],ebx

00409C84    C64424 08 0B    mov byte ptr ss:[esp+8],0B

00409C89    8D5424 04       lea edx,dword ptr ss:[esp+4]

00409C8D    A1 50316600     mov eax,dword ptr ds:[663150]

00409C92    33C9            xor ecx,ecx

00409C94    E8 F7F9FFFF     call 友益文书.00409690

00409C99    8BC6            mov eax,esi

00409C9B    83C4 0C         add esp,0C

00409C9E    5E              pop esi

00409C9F    5B              pop ebx

00409CA0    C3              retn
复制代码----------
1、改值0B为0E,改这个值,后期A-new告诉我实际上我们是在改试用版为注册版。改的是限制,改完后使生成的书没有‘友益文书制作’字样。
重载后,我们先找哪些地址赋OB改了他。这里我们要用到内存写入断点,由于我的Vista系统,内存好变,XP的内存地不会变的。我这里只说个方法。
F9运行
停在那个关键CALL的头 00409C68    53              push ebx            停在这里。
复制代码命令里dd 01E85D54这是地址就是上面让你先记下的那个地址,当时ds:[01E85D54]=0B这个已经是OB了,
现在是00
01E85D54  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01E85D64  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
我们在数据窗口里点01E85D54的第一个字节,右键下内存写入断点。F9运行,看看停在哪个地址上面就会有赋OB的地址。
(如果这里不能运行请把 异常里面的  忽略在KERNEL32中的内存访问异常  和 非法访问内存前面的钩去掉。)
                                   
F9运行几次后,中断在 005B7244    C745 F0 CF00000>mov dword ptr ss:[ebp-10],0CF

005B724B    8B55 FC         mov edx,dword ptr ss:[ebp-4]

005B724E    B8 63000000     mov eax,63          ;把这个地方改了吧63改为7510(这个地方也是个关键,后期破目录限制的时候要改的,为什么现在



                                             改呢,因为过目录限制的时候,也还要用到这个内存写入断的方法)

005B7253    8982 EC370000   mov dword ptr ds:[edx+37EC],eax

005B7259    8B55 FC         mov edx,dword ptr ss:[ebp-4]

005B725C    8982 981B0000   mov dword ptr ds:[edx+1B98],eax

005B7262    8B55 FC         mov edx,dword ptr ss:[ebp-4]

005B7265    B0 0B           mov al,0B                             ;这里把OB给予al,这就是我们要找的值了,做个记录,然后改为OE                  

005B7267    8882 E8370000   mov byte ptr ds:[edx+37E8],al      ;中断在这里了,

005B726D    25 FF000000     and eax,0FF

005B7272    8B55 FC         mov edx,dword ptr ss:[ebp-4]

005B7275    8982 9C1B0000   mov dword ptr ds:[edx+1B9C],eax

005B727B    8B45 FC         mov eax,dword ptr ss:[ebp-4]
复制代码如此样的地址共有4处,都改成OE大家自己找了记录下来地址,写注册机用到。
---------------------

2,这里成了视频限制的改法了。
改关于注册类型,相改成狗版来,但是不行,因为有一个视频的判断值是大于20001小于50000,所以狗版就不好改了,狗版是5000,为了视频,我们就顺着他就是,后面还改
目录限制,狗版不就是目录限制30000个吗。哪个版不重要了。


在这里主要是改判断类型了。关键是为了能加入视频功能。

我们先看看各个版的判断值是多少

重载程序,上面的断不变,运行到未注册的那个段首。F8向下走到 00577929    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]        ; 走到这里就到了比较判断是注册的哪个版本了,辅助窗口里是ds:[02415D68]=024A6C50, (ASCII



"00000054")

eax=0241256C,是00000054



0057792F    E8 3423E9FF     call 友益文书.00409C68

00577934    3D 30750000     cmp eax,7530              ;十六进制7530是十进制的00030000

00577939    7E 14           jle short 友益文书.0057794F

0057793B    8B06            mov eax,dword ptr ds:[esi]

0057793D    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]

00577943    E8 2023E9FF     call 友益文书.00409C68

00577948    3D 50C30000     cmp eax,0C350              ;0c350是00050000

0057794D    7C 28           jl short 友益文书.00577977

0057794F    8B06            mov eax,dword ptr ds:[esi]

00577951    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]

00577957    E8 0C23E9FF     call 友益文书.00409C68

0057795C    3D C8000000     cmp eax,0C8                  ;0c8是00000200

00577961    7E 26           jle short 友益文书.00577989

00577963    8B06            mov eax,dword ptr ds:[esi]

00577965    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]

0057796B    E8 F822E9FF     call 友益文书.00409C68

00577970    3D E8030000     cmp eax,3E8                  ; 3E8是1000

00577975    7D 12           jge short 友益文书.00577989

00577977    BA 287B5700     mov edx,友益文书.00577B28      ;  ****商用版****

0057797C    8B83 0C030000   mov eax,dword ptr ds:[ebx+30C]

00577982    E8 B5E9EBFF     call 友益文书.0043633C

00577987    EB 5C           jmp short 友益文书.005779E5

00577989    8B06            mov eax,dword ptr ds:[esi]

0057798B    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]

00577991    E8 D222E9FF     call 友益文书.00409C68

00577996    3D 204E0000     cmp eax,4E20                       ;4E20是20000

0057799B    7C 12           jl short 友益文书.005779AF

0057799D    BA 407B5700     mov edx,友益文书.00577B40     ;  ***企业版***

005779A2    8B83 0C030000   mov eax,dword ptr ds:[ebx+30C]

005779A8    E8 8FE9EBFF     call 友益文书.0043633C

005779AD    EB 36           jmp short 友益文书.005779E5

005779AF    8B06            mov eax,dword ptr ds:[esi]

005779B1    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]

005779B7    E8 AC22E9FF     call 友益文书.00409C68

005779BC    3D 88130000     cmp eax,1388                          ;1388是5000

005779C1    7C 12           jl short 友益文书.005779D5

005779C3    BA 587B5700     mov edx,友益文书.00577B58     ;  **加密狗注册版**

005779C8    8B83 0C030000   mov eax,dword ptr ds:[ebx+30C]

005779CE    E8 69E9EBFF     call 友益文书.0043633C

005779D3    EB 10           jmp short 友益文书.005779E5

005779D5    BA 747B5700     mov edx,友益文书.00577B74            ;  *普通注册版*

005779DA    8B83 0C030000   mov eax,dword ptr ds:[ebx+30C]

005779E0    E8 57E9EBFF     call 友益文书.0043633C

005779E5    8B06            mov eax,dword ptr ds:[esi]

005779E7    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]

005779ED    E8 7622E9FF     call 友益文书.00409C68

005779F2    3D 50C30000     cmp eax,0C350                                ;50000

005779F7    7E 24           jle short 友益文书.00577A1D

005779F9    8B06            mov eax,dword ptr ds:[esi]

005779FB    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]

00577A01    E8 6222E9FF     call 友益文书.00409C68

00577A06    3D 60EA0000     cmp eax,0EA60                               ;60000

00577A0B    7D 10           jge short 友益文书.00577A1D

00577A0D    BA 747B5700     mov edx,友益文书.00577B74             ;  *普通注册版*

00577A12    8B83 0C030000   mov eax,dword ptr ds:[ebx+30C]
复制代码看看把00000054成什么样的版本可以自己改,但是有视频限制,因为视频限制是另外的注册方法,在看看视频限制。
找字串,
视频功能采用单独注册方式,未注册该功能则不保存视频!\r\n具体请看帮助里的注册帮助!

找到后双击进入来到 00643225    8B45 FC         mov eax,dword ptr ss:[ebp-4]

00643228    BA 90346400     mov edx,友益文书.00643490             ; .avi

0064322D    E8 AE0EDCFF     call 友益文书.004040E0

00643232    75 44           jnz short 友益文书.00643278

00643234    8B83 FC370000   mov eax,dword ptr ds:[ebx+37FC]

0064323A    BA A0346400     mov edx,友益文书.006434A0             ; 00020001 ----这里和20001比

0064323F    E8 9C0EDCFF     call 友益文书.004040E0

00643244    72 12           jb short 友益文书.00643258                    ;小于20001就跳走

00643246    8B83 FC370000   mov eax,dword ptr ds:[ebx+37FC]

0064324C    BA B4346400     mov edx,友益文书.006434B4               ; 00050000-----这里和50000比,

00643251    E8 8A0EDCFF     call 友益文书.004040E0

00643256    76 20           jbe short 友益文书.00643278                    ;大于50000就跳走。

00643258    6A 00           push 0

0064325A    8B83 BC1F0000   mov eax,dword ptr ds:[ebx+1FBC]

00643260    E8 2F0FDCFF     call 友益文书.00404194

00643265    8BC8            mov ecx,eax

00643267    BA C0346400     mov edx,友益文书.006434C0               ; 视频功能采用单独注册方式,未注册该功能则不保存视频!\r\n具体请看帮助里的注册帮助!

0064326C    A1 E4326600     mov eax,dword ptr ds:[6632E4]
复制代码由于我们有视频限制的值定着,只能改为20001以上,50000以下,所以我改的是29968,不能超过30000以防目录限制还有什么检测,就是把00000054改为00029968。改成小于50000

就行吧,没测。

????????
怎么改呢。
方法有2,由于系统是V系统内存写入不好操作。我会说个笨方法。

1、内存写入断点吧,虽然我的系统不能用,可能有点讲不清楚,和上面的内存断一样。说下方法吧,。


重载,到未注册段首停下后向下,中间的一些要跳走的不让跳,来到 00577929    8B80 FC370000   mov eax,dword ptr ds:[eax+37FC]        ; 到这里,这个地址和上面的那些要改的都不远,辅助窗口里有00000054了,记下地址。

0057792F    E8 3423E9FF     call 友益文书.00409C68

00577934    3D 30750000     cmp eax,7530

00577939    7E 14           jle short 友益文书.0057794F
复制代码辅助窗口里

ds:[01CF5D68]=01D86C50, (ASCII "00000054")
eax=01CF256C
记下01D86C50这个地址,(这地址我这里和你的不一样。)汗,有点不清楚这地方,我系统不能操作,只能根据A-new 告诉我的方法想着写一下。
重载程序F9运行到我们的关键CALL 00409C68段首(别告诉我你删除了断点),就是没写值的那个地方。
命令dd 01D86C50,下四个字节的内存访问断点。F9运行,注意思辅助窗口和寄存器,运行个几次,寄存器窗口里会出现ESI  0XXXXXXX “00000054”,这个XXXXXX就是地址了,

2、笨方法,
重载F9运行,中断在关键CALL
00409C68    53              push ebx

然后ALT+M到内存查找00000054,找到

005B87CC  30 30 30 30 30 30 35 34 00 00 00 00 FF FF FF FF  00000054....

[ 本帖最后由 freewold 于 2009-7-16 19:18 编辑 ]
PYG19周年生日快乐!

该用户从未签到

发表于 2009-7-19 21:26:10 | 显示全部楼层
学习了~~~~~~!
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-7 09:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2009-7-20 16:32:44 | 显示全部楼层
    收藏学习
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-8-2 13:41:50 | 显示全部楼层
    好文,学习了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-8-6 07:26:06 | 显示全部楼层
    感谢楼主分享,学习了
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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