OllyDbg 使用笔记 (五)
参考
书:《加密与解密》
视频:小甲鱼 解密系列 视频
pixtopainbook安装包 下载地址 http://pan.baidu.com/s/191ArG
pixtopainbook是一个电话簿软件,未注册版本,最多只能添加3个组,每个组最多添加4个人。
去除添加人数跟组数限制
ollydbg 加载 ,按F9运行。
如果OD暂停,在下面出现“异常 E06D7363 - 使用Shift+F7/F8/F9来忽略程序异常” ,
就到 选项-->调试设置-->选择异常-->在同时忽略以下指定的异常或范围,并且点击添加范围,写入00000000~FFFFFFFF
图片1
F9运行程序在程序中按Add 添加联系人 直道弹出ERROR窗口
图片2
此时在OD按下暂停
发现程序暂停在dll,按下ALT+F9 反回到用户,再点击ERROR窗口的OK,就会 反回到用户领空。
004562ED /$ 8B4424 08 mov eax, dword ptr [esp+8] 004562F1 |. 56 push esi 004562F2 |. 85C0 test eax, eax 004562F4 |. 8BF1 mov esi, ecx 004562F6 |. 75 08 jnz short 00456300 004562F8 |. E8 C94B0100 call 0046AEC6 004562FD |. 8B40 10 mov eax, dword ptr [eax+10] 00456300 |> 85F6 test esi, esi 00456302 |. 75 04 jnz short 00456308 00456304 |. 33C9 xor ecx, ecx 00456306 |. EB 03 jmp short 0045630B 00456308 |> 8B4E 1C mov ecx, dword ptr [esi+1C] 0045630B |> FF7424 10 push dword ptr [esp+10] ; /Style 0045630F |. 50 push eax ; |Title 00456310 |. FF7424 10 push dword ptr [esp+10] ; |Text 00456314 |. 51 push ecx ; |hOwner 00456315 |. FF15 04564700 call dword ptr [<&USER32.MessageBoxA>>; \MessageBoxA 0045631B |. 5E pop esi ; 020542C0 0045631C \. C2 0C00 retn 0C
此时程序停在00456318处,看看前后的代码,这个是调用MeeagBox的函数。
按F8让函数返回,可以看到下面的代码
00412DBE . 8B8E BC010000 mov ecx, dword ptr [esi+1BC] 00412DC4 . 8BF8 mov edi, eax 00412DC6 . 8B04F9 mov eax, dword ptr [ecx+edi*8] 00412DC9 . 8D2CFD 000000>lea ebp, dword ptr [edi*8] 00412DD0 . 83F8 04 cmp eax, 4 00412DD3 7C 1A jl short 00412DEF 00412DD5 . 8B4C24 10 mov ecx, dword ptr [esp+10] 00412DD9 . 6A 10 push 10 00412DDB . 68 00F74800 push 0048F700 ; ASCII "Please register PixtopianBook" 00412DE0 . 68 68FC4800 push 0048FC68 ; ASCII "You've reached the limit of 4 entries per group.",LF,LF,"Please register PixtopianBook today!" 00412DE5 . E8 03350400 call 004562ED 00412DEA . E9 DD000000 jmp 00412ECC 00412DEF > 8D4C24 14 lea ecx, dword ptr [esp+14] 00412DF3 . E8 38610100 call 00428F30 00412DF8 . 68 D8784900 push 004978D8 00412DFD . 8D8C24 C80000>lea ecx, dword ptr [esp+C8] 00412E04 . C78424 540900>mov dword ptr [esp+954], 0 00412E0F . E8 5CDF0100 call 00430D70
此时程序停在00412DEA,可以发现他上面一句call 004562ED即调用了上上个代码。
仔细观察call 004562ED 前面 的代码,可以发现 jl short 00412DEF 很关键,如果他跳转了,就不会弹出ERROR窗口 。
把jl short 00412DEF 改成 jmp short 00412DEF 保存,再运行添加联络人的限制就没了。
可以按照上面步骤,破解添加组的限制。
修改显示的unregistered
对程序标题和About中的UNREGISERED 修改:
直接在CPU窗口的数据面版,按Ctrl+B,输入相应的字符串查找(有ASCII与UNCODE,如果找不到两个都试试)。
找到后直接修改保存。
对于程序中间的”This is an unregistered version of PixtooainBook。Please register today“ 修改跟上面的一样。
原文地址:http://blog.csdn.net/billvsme/article/details/38472841