本帖最后由 CHHSun 于 2010-5-10 10:37 编辑
去叶帆VBfriedn2006灰色限制,
限制有好多好多这里只说说方法。
看在线注册里是需要一个图片来验证注册的,安装完后文件夹里只有DLL和INI等一些文件,想要调试我们还
需要安装VB企业或专业版来辅助,精简版的不行。
要改的代码在VBFriend2006.dll里,有壳UPX,这里不说脱壳了,ESP定律就行。
调试该软件只做学习去限制用,没有其它用途。
----------
载入VB主程序,运行起来出现主窗口后菜单下面会出现6个小图标,下断BP CreateFileA点最后一个小图标(
系统配置,帮助文件里有说明),中断后看堆栈返回
堆栈:0012DF04 6CDD059F /CALL 到 CreateFileA 来自 AcGenral.6CDD0599
0012DF08 0012E1C0 |FileName = "D:\Program Files\YFSoft\VB?,B4,"码之友2006\YFRegister.bmp"
0012DF0C C0000000 |Access = GENERIC_READ|GENERIC_WRITE
0012DF10 00000003 |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
0012DF14 0012E180 |pSecurity = 0012E180
0012DF18 00000004 |Mode = OPEN_ALWAYS
0012DF1C 00000080 |Attributes = NORMAL
0012DF20 00000000 \hTemplateFile = NULL
需要YFRegister.bmp来验证是否注册,我们没有。
返回6CDD0599,下断,F9,F8单步一段时间返回到程序领空,来到110805D9 . 8BCE mov ecx, esi
110805DB . FFD7 call edi
在段首下断,下断
重新点击系统配置小图标,中断后,堆栈中返回
11076A28 . 8BF8 mov edi, eax
向上找到段首下断下断
重新点击系统配置小图标,中断后,堆栈中返回后找到段首下断
这地方就是读图片的,地方,我们单步慢慢跟11067DC7 . 85C0 test eax, eax
11067DC9 . 74 10 je short 11067DDB
; 如果有YFRegister.bmp就
跳,这里先不管,也可以自己建个图片11067DCB . C745 FC 06000>mov dword ptr [ebp-4], 6
11067DD2 . 66:C705 44170>mov word ptr [110D1744], 0
11067DDB > C745 FC 08000>mov dword ptr [ebp-4], 8 ; 下面值0ffff
11067DE2 . 66:C705 44170>mov word ptr [110D1744], 0
11067DEB . C745 FC 09000>mov dword ptr [ebp-4], 9
11067DF2 . C785 90FCFFFF>mov dword ptr [ebp-370], 110D1158 ; |70
11067DFC . C785 88FCFFFF>mov dword ptr [ebp-378], 4008
11067E06 . 6A 00 push 0
到里我们先不管他,继续向看走走看看什么时候运行窗口。
到这里运行了11067E7F . E8 ECEA0000 call 11076970
; 还是在下一行下断吧,要不
就F7进去在走出来,VB代码真是长呀,不服不行。
走到11069472 . 85D2 test edx, edx
11069474 . 74 10 je short 11069486
11069476 . C745 FC 1D000>mov dword ptr [ebp-4], 1D
1106947D . 66:C705 44170>mov word ptr [110D1744], 0FFFF ;把0FFFF给110D1744
11069486 > C745 FC 24000>mov dword ptr [ebp-4], 24 ;跳到这里
1106948D . 0FBF05 44170D>movsx eax, word ptr [110D1744] ;和110D1744=0000想比,
11069494 . 85C0 test eax, eax ;EAX为1就下面就跳
11069496 . 0F85 04100000 jnz 1106A4A0 ; 不跳需要注册,跳过后窗
口上的图片注册失效就没有了,在看看VB中的小窗口[叶帆软件]VBFriend 2006,里的条目追加上的(需注册
)没有了
这个JNZ是关键,后期跟踪发现和110D1744相比较的比较多,如果EAX值1的话,不出现需要注册了,但是保存
按键是灰的。所以我们要找110D1744=0000在哪里来的,在1106948D这一行下个内存防问断点看看哪个地方给
他的0000,(途中会发现cmp word ptr [110D1744], 0FFFF 和0FFFF相比)
最后找到我们开头的地方
11067DC9 . 74 10 je short 11067DDB ; 如果有YFRegister.bmp就
跳,这里先不管,也可以自己建个图片
11067DCB . C745 FC 06000>mov dword ptr [ebp-4], 6
11067DD2 . 66:C705 44170>mov word ptr [110D1744], 0 这里一处
11067DDB > C745 FC 08000>mov dword ptr [ebp-4], 8 ; 下面值0ffff
11067DE2 . 66:C705 44170>mov word ptr [110D1744], 0 这里一处,最后发现改这里,后面的JNZ才跳过
11067DEB . C745 FC 09000>mov dword ptr [ebp-4], 9
改成11067DE2 . 66:C705 44170>mov word ptr [110D1744], 0FFFF
运行一下看到,保存按钮激活了。
改为1的话,按钮不激活,但是可以改其它跳激活,后期发现按钮就是不起作用,所以还的0FFFF。
---------
去基本配置里的灰色限制,去这东西的确不好下手,我费了好长时间在找到方法。
先看看界面里,基本设置里有个3 min, 在字串里找到他,双击进入110C17EB . B8 F8830111 mov eax, 110183F8 ; 3 min
下断后,重新点击系统配置小图标,断下后F8
110C199D . 803D 22150D11>cmp byte ptr [110D1522], 0AA ; 下面有四个这样的不
跳,基本设置里灰铵钮变亮[code]110C19A4 . 75 49 jnz short 110C19EF ;不让跳,NOP
110C19A6 . 66:833D 44170>cmp word ptr [110D1744], 0FFFF ; 又是和0FFF比
110C19AE . 75 3F jnz short 110C19EF ;110D1744是0FFFF就不跳 ,前面已经改过0FFFF
110C19B0 . 8B06 mov eax, dword ptr [esi]
110C19B2 . 56 push esi
改完四处这样的地方,基本配置里的灰色就去掉了。
------
由于限制太多,就不一一说了,
总结个方法,多数情况下都是cmp word ptr [110D1744], 0FFFF那么我们找到他所有的这一句看看都下
上断慢慢改。这样可以在这一行上右键查找参考---地址常量,有好多这种0FFFF。
模块和函数保存的地方
110C3DE0 C605 27150D11>cmp byte ptr [110D1527], 0AA
110C4489 C605 28150D11>cmp byte ptr [110D1528], 0AA
改为MOV
就这地方不好找。
www.52pojie.cn
CHHSun
2010.05.07 |