kiss-you 发表于 2007-5-9 23:13:39

【讨论】请问这个软件能不能更改调用文件路径

【精装友情通讯录】是一款很好用的通讯录软件,XP系统安装后会向 X:\WINDOWS\system32 下写入 mpdata.dat 和 sfdata.dat 两个文件,所有数据都是存储在这两个文件里。所以重装系统时,如果忘了把它备份出来,所有心血就会付之东流!请问能把这两个文件放到软件安装目录下,然后修改主程序,让程序运行时直接调用自身目录里的这两个文件哪?要如何修改?

麻烦哪位高手修改一下。

软件下载:http://www.fuzi.cn/down.asp?page=2&cat_id=&class_id=

飘云 发表于 2007-5-9 23:53:50

理论上是可以改动的!

需要一些技巧+知识

你参考一下“逆向”代码

kiss-you 发表于 2007-5-9 23:58:19

原帖由 飘云 于 2007-5-9 23:53 发表 https://www.chinapyg.com/images/common/back.gif
理论上是可以改动的!

需要一些技巧+知识

你参考一下“逆向”代码
坛主给修改一下吧,还有怎么论坛还无法上传附件?

飘云 发表于 2007-5-10 02:16:39

思路,将GetSystemDirectoryA替换成GetCurrentDirectoryA!!! 一定注意函数原型哦!!

步骤:

1.先添加 一个 GetCurrentDirectoryA函数,★并记住调用地址,重要!★,,,用来取得当前目录 ~~我用lordPE添加的

2.修改:
005317AEpush    80
005317B3push    0053B2C8
005317B8call    <jmp.&kernel32.GetSystemDirecto>
005317BDmov   eax, esi
005317BFmov   edx, 0053B2C8
005317C4mov   ecx, 81
005317C9call    00404C84
005317CElea   eax, dword ptr
005317D1mov   ecx, 00531C44                   ;ASCII "\mpdata.dat"
005317D6mov   edx, dword ptr

改为如下:
005317AElea   eax, dword ptr
005317B4push    eax
005317B5push    0FF
005317BAcall    dword ptr [<&KERNEL32.GetCurrentDirectoryA>]   ; kernel32.GetCurrentDirectoryA//这里的地址每个机子可能不同哦!!
005317C0mov   eax, esi
005317C2lea   edx, dword ptr
005317C8mov   ecx, 81
005317CDcall    00404C84
005317D2jmp   short 0053181A

3.复制sfdata.dat、mpdata.dat、hdwl21.dll(注册文件)到软件目录
4.保存程序
5.Win2003 SP1 调试通过

BTW:告诉懒人一个办法,直接改成D盘根目录吧,不要添加什么鸟函数,不过软件不能更改目录哦,hoho@!https://www.chinapyg.com/temp/1.gif

kiss-you 发表于 2007-5-10 20:47:46

原帖由 飘云 于 2007-5-10 02:16 发表 https://www.chinapyg.com/images/common/back.gif
思路,将GetSystemDirectoryA替换成GetCurrentDirectoryA!!! 一定注意函数原型哦!!

步骤:

1.先添加 一个 GetCurrentDirectoryA函数,★并记住调用地址,重要!★,,,用来取得当前目录 ~~我用lord ...
呵呵,坛主就是厉害,修改后软件是不是就可以放到任意目录使用了?现在论坛无法上传附件,麻烦老大发一个修改后的主程序到[email protected]好吗,谢谢!

飘云 发表于 2007-5-10 23:16:24

自己照着改下啊~~

kiss-you 发表于 2007-5-11 12:10:43

谢谢坛主,以后要多向坛主学习。/:09 /:09 /:09
页: [1]
查看完整版本: 【讨论】请问这个软件能不能更改调用文件路径