- UID
- 68193
注册时间2010-6-1
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
本帖最后由 ifox 于 2010-6-4 22:58 编辑
【破文标题】精装友情通讯录SMC另类绿化
【破文作者】ifox
【破解工具】OD+ZeroAdder
【破解平台】WinXP Sp3
【软件名称】精装友情通讯录
【破解声明】学习技术,无他。
------------------------------------------------------------------------
【破解过程】目前通用的方式是用函数替代法来实现绿化,其实熟悉DOS的朋友应该知道当前目录的路径写法还有另外一个表示".\"即可。
下面就利用SMC的方式,修改软件获取到的系统目录,修改为".\"实现当前目录,从而达到绿化的目的。
=========================================
00514657 |. 68 6CCE5100 push 0051CE6C ; |Buffer = jzyq.0051CE6C
0051465C |. E8 AB2AEFFF call <jmp.&kernel32.GetSystemDirector>; \GetSystemDirectoryA
00514661 |. 8BC6 mov eax, esi
00514663 |. BA 6CCE5100 mov edx, 0051CE6C ; ASCII "C:\WINDOWS\system32"
00514668 |. B9 81000000 mov ecx, 81
0051466D |. E8 1204EFFF call 00404A84
00514672 |. 68 904A5100 push 00514A90 ; ASCII "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
00514677 |. FF36 push dword ptr [esi]
00514679 |. 68 C84A5100 push 00514AC8 ; ASCII "\mpdata.dat;Persist Security Info=False;Jet OLEDB:Database Password=dbfec5b91qaz2wsx3edc"
==================================
00514663 |. BA 6CCE5100 mov edx, 0051CE6C ; ASCII "C:\WINDOWS\system32"
这里是获取到的系统目录,字符串保存在内存0051CE6C中,我们去修改内存为".\",然后再把结果给EDX。
为了方便,直接使用ZeroAdder增加一个区段.patch,大小100Bytes,PEID查看区段地址,找到在程序中的位置为:005E8000.
修改00514663 |. BA 6CCE5100 mov edx, 0051CE6C ; ASCII "C:\WINDOWS\system32"代码为:
00514663 E9 98390D00 jmp 005E8000 ;跳到我们的代码,修改代码如下:
005E8000 C705 6CCE5100 2E5C0000 mov dword ptr [51CE6C], 005C2E ;".\"HEX代码为2E5C,倒着赋值给内存地址,多余的部分给00,这里不显示
005E800A C705 70CE5100 00000000 mov dword ptr [51CE70], 0 ;多余的都赋值成00
005E8014 C705 74CE5100 00000000 mov dword ptr [51CE74], 0
005E801E C705 78CE5100 00000000 mov dword ptr [51CE78], 0
005E8028 BA 6CCE5100 mov edx, 0051CE6C ;恢复原来地方的代码
005E802D - E9 36C6F2FF jmp 00514668 ;跳回程序原流程下一行继续执行。
到此完成SMC代码实现绿化。 |
评分
-
查看全部评分
|