好友
阅读权限30
听众
最后登录1970-1-1
|
本帖最后由 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.... |
免费评分
-
查看全部评分
|