CHHSun 发表于 2009-7-16 11:07

友益文书8.4.5版破解记录

本帖最后由 CHHSun 于 2009-7-16 11:35 编辑

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

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


----------

ASPack 2.12 -> Alexey Solodovnikov

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

没有要输入注册码的地方,文件难的,狗版可能是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
00577863    E8 D4EAEBFF   call    0043633C
00577868    BA 047B5700   mov   edx, 00577B04          ; 本机未注册
0057786D    8B83 EC020000   mov   eax, dword ptr
00577873    E8 C4EAEBFF   call    0043633C
00577878    8B06            mov   eax, dword ptr
0057787A    80B8 E8370000 0>cmp   byte ptr , 0B
00577881    75 53         jnz   short 005778D6
00577883    BA 187B5700   mov   edx, 00577B18         ; 未注册
00577888    8B83 0C030000   mov   eax, dword ptr
--------------
向上找到段首下硬件执行断点,重载程序,F9运行,中断后F8继续向下走,到0057787,
0057787A    80B8 E8370000 0>cmp   byte ptr , 0B   ;OB和eax+37E8比较
00577881    75 53         jnz   short 005778D6                         ;不等OB就跳过未注册。
00577883    BA 187B5700   mov   edx, 00577B18                  ; 未注册
00577888    8B83 0C030000   mov   eax, dword ptr
这里注意看数据辅助窗口eax+37E8的值是OB,或者命令dd eax+37E8同样也是来到下面的地址,记下这个内存地址,过会有用,

ds:=0B

我们先让JNZ跳过未注册继续向下找到
005778D6    8B06            mov eax,dword ptr ds:                  ;跳到这里了
005778D8    80B8 E8370000 0>cmp byte ptr ds:,0E    ;这里是不是和上面的OB的比较差不多
005778DF    0F85 56010000   jnz 友益文书.00577A3B                  ;这个跳不能跳走,否则完蛋。
005778E5    B2 01         mov dl,1

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

继续向下走05778DF    0F85 56010000   jnz 这个不让他跳过去。
-------------
向下来到
00577929    8B80 FC370000   mov eax,dword ptr ds:      ; 走到这里就到了比较判断是注册的哪个版本了,注意辅助窗口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:
0057793D    8B80 FC370000   mov eax,dword ptr ds:
00577943    E8 2023E9FF   call 友益文书.00409C68
00577948    3D 50C30000   cmp eax,0C350
0057794D    7C 28         jl short 友益文书.00577977
0057794F    8B06            mov eax,dword ptr ds:
00577951    8B80 FC370000   mov eax,dword ptr ds:
00577957    E8 0C23E9FF   call 友益文书.00409C68
0057795C    3D C8000000   cmp eax,0C8
00577961    7E 26         jle short 友益文书.00577989
00577963    8B06            mov eax,dword ptr ds:
00577965    8B80 FC370000   mov eax,dword ptr ds:
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:

我们把00000054改为29968看看吧,在命令里dd eax+37FC在数据窗口里能看到00000054,二进制编辑成00029968



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

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

B、破

先在关键CALL 00409C68F7进入下硬件断点,普通断不好用。可能程序有检测。为什么要在这里下断,是因为断在这里,一些内存值还没有写还是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:,0
00409C7E    74 19         je short 友益文书.00409C99
00409C80    895C24 04       mov dword ptr ss:,ebx
00409C84    C64424 08 0B    mov byte ptr ss:,0B
00409C89    8D5424 04       lea edx,dword ptr ss:
00409C8D    A1 50316600   mov eax,dword ptr ds:
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:=0B这个已经是OB了,
现在是00
01E85D5400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00................
01E85D6400 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:,0CF
005B724B    8B55 FC         mov edx,dword ptr ss:
005B724E    B8 63000000   mov eax,63          ;把这个地方改了吧63改为7510(这个地方也是个关键,后期破目录限制的时候要改的,为什么现在

                                             改呢,因为过目录限制的时候,也还要用到这个内存写入断的方法)
005B7253    8982 EC370000   mov dword ptr ds:,eax
005B7259    8B55 FC         mov edx,dword ptr ss:
005B725C    8982 981B0000   mov dword ptr ds:,eax
005B7262    8B55 FC         mov edx,dword ptr ss:
005B7265    B0 0B         mov al,0B                           ;这里把OB给予al,这就是我们要找的值了,做个记录,然后改为OE                  
005B7267    8882 E8370000   mov byte ptr ds:,al      ;中断在这里了,
005B726D    25 FF000000   and eax,0FF
005B7272    8B55 FC         mov edx,dword ptr ss:
005B7275    8982 9C1B0000   mov dword ptr ds:,eax
005B727B    8B45 FC         mov eax,dword ptr ss:
如此样的地址共有4处,都改成OE大家自己找了记录下来地址,写注册机用到。
---------------------

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


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

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

重载程序,上面的断不变,运行到未注册的那个段首。F8向下走到
00577929    8B80 FC370000   mov eax,dword ptr ds:      ; 走到这里就到了比较判断是注册的哪个版本了,辅助窗口里是ds:=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:
0057793D    8B80 FC370000   mov eax,dword ptr ds:
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:
00577951    8B80 FC370000   mov eax,dword ptr ds:
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:
00577965    8B80 FC370000   mov eax,dword ptr ds:
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:
00577982    E8 B5E9EBFF   call 友益文书.0043633C
00577987    EB 5C         jmp short 友益文书.005779E5
00577989    8B06            mov eax,dword ptr ds:
0057798B    8B80 FC370000   mov eax,dword ptr ds:
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:
005779A8    E8 8FE9EBFF   call 友益文书.0043633C
005779AD    EB 36         jmp short 友益文书.005779E5
005779AF    8B06            mov eax,dword ptr ds:
005779B1    8B80 FC370000   mov eax,dword ptr ds:
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:
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:
005779E0    E8 57E9EBFF   call 友益文书.0043633C
005779E5    8B06            mov eax,dword ptr ds:
005779E7    8B80 FC370000   mov eax,dword ptr ds:
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:
005779FB    8B80 FC370000   mov eax,dword ptr ds:
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:

看看把00000054成什么样的版本可以自己改,但是有视频限制,因为视频限制是另外的注册方法,在看看视频限制。
找字串,
视频功能采用单独注册方式,未注册该功能则不保存视频!\r\n具体请看帮助里的注册帮助!

找到后双击进入来到
00643225    8B45 FC         mov eax,dword ptr ss:
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:
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:
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:
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:
由于我们有视频限制的值定着,只能改为20001以上,50000以下,所以我改的是29968,不能超过30000以防目录限制还有什么检测,就是把00000054改为00029968。改成小于50000

就行吧,没测。

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

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


重载,到未注册段首停下后向下,中间的一些要跳走的不让跳,来到
00577929    8B80 FC370000   mov eax,dword ptr ds:      ; 到这里,这个地址和上面的那些要改的都不远,辅助窗口里有00000054了,记下地址。
0057792F    E8 3423E9FF   call 友益文书.00409C68
00577934    3D 30750000   cmp eax,7530
00577939    7E 14         jle short 友益文书.0057794F

辅助窗口里

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

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

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

005B87CC30 30 30 30 30 30 35 34 00 00 00 00 FF FF FF FF00000054....

CHHSun 发表于 2009-7-16 11:09

本帖最后由 CHHSun 于 2009-7-16 11:29 编辑

005B87CC这个地址就是,上面的内存写入断点应该也是找到这个地方。

改了他。

转到005B87CC,

005B87CC    3030            xor byte ptr ds:,dh
005B87CE    3030            xor byte ptr ds:,dh
005B87D0    3030            xor byte ptr ds:,dh
005B87D2    35 34000000   xor eax,34

一看晕了,没有00000054呀,别急。要改方法有2,
1、
选中这四行,右键二进制编辑,里面可改
2、右键数据窗口中跟随也可以改。
要想写注册机最好用第一种方法把地址记下来,改的和没改的记录下。
改00029968后是这样的,这里为什么改为29968(十六进制是7510),是因为狗版是30000目录,后面要改目录限制所以怕有冲突。怕是改大了不行,到也没有测试。这个地方无所谓。
005B87CC    3030            xor byte ptr ds:,dh
005B87CE    3032            xor byte ptr ds:,dh
005B87D0    3939            cmp dword ptr ds:,edi
005B87D2    36:3800         cmp byte ptr ss:,al

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


二、目录限制的解法。


方法有2种,

1、和上面改OB的方法一样,上面的都改完后,F8过完那些版本后,到
00577A3B    8B06            mov eax,dword ptr ds:
00577A3D    E8 E24C0400   call 友益文书.005BC724         ;这是个目录限制的关建CALL
00577A42    3C 01         cmp al,1
00577A44    74 39         je short 友益文书.00577A7F
00577A46    3C 64         cmp al,64
00577A48    73 7E         jnb short 友益文书.00577AC8
00577A4A    8B06            mov eax,dword ptr ds:
00577A4C    C780 EC370000 6>mov dword ptr ds:,63    ;需要找到这里,这里的63和上面的改0B一样的方法,下内存写入断点。
00577A56    8B16            mov edx,dword ptr ds:

这里的63十进制是99,意思也就是不注册限定的目录数,那狗版的说是30000,30000的十六进制是7530,经测试这里不能改成7530,要改成比30000个目录小,我改的是
29968也就是7510。把所有断下的赋63的值改为7510,这种方法没测试。

2、用了种笨方法(测试过),
用上面的方法先把63改成7510
005B724E    B8 63000000   mov eax,63改成mov eax,7510

走到
00577A4C    C780 EC370000 6>mov dword ptr ds:,63   

;走到这里后,右键查找参考----地址常量,把里面所有的mov dword ptr ds:,63
改为mov dword ptr ds:,7510为了一防万一,就都改了。第一种方法大家可以弄下试试。


------------
最后,当你改完这些数据后,错误是接连不断,需要一一和谐了他,还有乎人的字句


; 正在格式化硬盘数据!请立即进行手动关闭电源,否则该机子将报废!


!@#$请不要使用破解版@#$!可能造成数据破坏或丢失!\r\n主站:http://www.yyebook.com\r\nE书天空:http://www.ebooksky.com

L!@#$请不要使用破解版@#$!可能造成数据破坏或丢失!\r\n主站:http://www.yyebook.com\r\nE书天空:http://www.ebooksky.com

M5!@#$请不要使用破解版@#$!可能造成数据破坏或丢失!\r\n主站:http://www.yyebook.com\r\nE书天空:http://www.ebooksky.com


他的这些错误提示,在字符串里都有,一个一个的找到后,双击进入,把这串上面的跳转改为JMP,跳过错误。
在这里我就不找了。


转贴请标明出处,www.52pojie.cn

CHHSun

2009.07.16

wuhanqi 发表于 2009-7-16 12:36

;P狠心的CHHSun。以后不要友益文书破解版满天飞啊!

什么也不是 发表于 2009-7-16 12:42

:curse:   赶紧来加精华

kuysoft 发表于 2009-7-16 13:09

好思路呀,学习了

CHHSun 发表于 2009-7-16 13:16

;P狠心的CHHSun。以后不要友益文书破解版满天飞啊!
wuhanqi 发表于 2009-7-16 12:36 http://www.52pojie.cn/images/common/back.gif
这也是在帮助作者吧,咱不解他,他什么时候进步。
在说,我这些方法我是想着写的,还需要大家去验证一个行不行,我这V系统弄不了他。学习方法而以,你弄个补丁破解版就不满天飞了:lol
这个版目录限制那地方的CALL,你弄下看看有其它方法没,可需要能改成10000目录。我没测试。
当然这方法是你告诉我的:$

xujunlin5588 发表于 2009-7-16 16:13

CHHSun真牛。
可是小弟有个问题想请教下。
大牛是不脱壳破解的,能够直接用OD进去。
可是我菜啊,发现脱壳后,那程序是有自校验的,一进就退出了。
我怎么弄也搞不好这个自校验啊,怎么办。
请CHHSun来弄下,提供下思路!

wgz001 发表于 2009-7-16 20:54

先膜拜   后学习    :handshake

CHHSun 发表于 2009-7-16 22:51

脱壳后去效验那才是牛,我办不到,我壳盲。效验太多,玩不了壳

xujunlin5588 发表于 2009-7-17 16:29

呵呵,那我也得向CHHSun 大牛学习。
页: [1] 2 3 4 5 6
查看完整版本: 友益文书8.4.5版破解记录