友益文书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: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 ;P狠心的CHHSun。以后不要友益文书破解版满天飞啊! :curse: 赶紧来加精华 好思路呀,学习了 ;P狠心的CHHSun。以后不要友益文书破解版满天飞啊!
wuhanqi 发表于 2009-7-16 12:36 http://www.52pojie.cn/images/common/back.gif
这也是在帮助作者吧,咱不解他,他什么时候进步。
在说,我这些方法我是想着写的,还需要大家去验证一个行不行,我这V系统弄不了他。学习方法而以,你弄个补丁破解版就不满天飞了:lol
这个版目录限制那地方的CALL,你弄下看看有其它方法没,可需要能改成10000目录。我没测试。
当然这方法是你告诉我的:$ CHHSun真牛。
可是小弟有个问题想请教下。
大牛是不脱壳破解的,能够直接用OD进去。
可是我菜啊,发现脱壳后,那程序是有自校验的,一进就退出了。
我怎么弄也搞不好这个自校验啊,怎么办。
请CHHSun来弄下,提供下思路! 先膜拜 后学习 :handshake 脱壳后去效验那才是牛,我办不到,我壳盲。效验太多,玩不了壳 呵呵,那我也得向CHHSun 大牛学习。