关于游戏存档文件的修改,急!高分求解!!!!!!!!

程序猿之殇 2003-05-14 10:45:03
有一个游戏存档文件,用Ultra Edit十六进制方式打开后能够找到一个地址,就是对应的人物属性地址。我想通过程序找到这个地址,然后对其进行修改。但不知用什么方式来读取这个文件,然后用什么方式快速定位这个Ultra Edit显示的这个地址,然后修改,存盘。
本人是新手,但对这个很感兴趣,所以想请游戏funs和游戏编程高手指导一下,本人非常感激!~
最好是能用十六进制的方式修改。
...全文
273 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序猿之殇 2003-05-17
  • 打赏
  • 举报
回复
to Jupin(VxWorking) :
可以试一下!
:)
程序猿之殇 2003-05-15
  • 打赏
  • 举报
回复
我用C写了一个程序,
能够读出来。
不过效率很低,
有没有什么好的办法!

Jupin 2003-05-15
  • 打赏
  • 举报
回复
/* 经过上机调试, 我发现这样的代码可以改变自身: */
#include <stdio.h>
char getfiletail(FILE *fp, int c)
{ /* 取得文件尾的内容 */
fpos_t pos;
char ch;
fseek(fp, 0, 2);
fgetpos(fp, &pos);
pos -= c * sizeof(char);
fsetpos(fp, &pos);
fread(&ch, sizeof(char), 1, fp);
return ch;
}

void setfiletail(FILE *fp, int c, char data)
{ /* 改变文件尾的内容 */
fpos_t pos;
fseek(fp, 0, 2);
fgetpos(fp, &pos);
pos -= c * sizeof(char);
fsetpos(fp, &pos);
fwrite(&data, sizeof(char), 1, fp);
return;
}

void main(void)
{
FILE *fp;
char data;
fpos_t i;
if ((fp = fopen("change.exe", "r+b")) == NULL)
{ /* 程序生成的.exe文件名为 change.exe */
printf("The file cannot open!\n");
}
data = getfiletail(fp, 1);
printf("The current para is %c.\nEnter the new para:", data);
scanf(" %c", &data);
setfiletail(fp, 1, data);
printf("The new para is %c.\n", getfiletail(fp, 1));
}
/* 实践表明.exe文件尾部的内容不影响(只能说我还没找到 *
* 产生影响的例子, 我对.exe文件的结构不了解, 还请高 *
* 手指教), 这样, 我就可以把程序要保存的参数放在文件 *
* 的末尾, 程序执行时先从尾部读取参数即可. */

我对游戏的存盘也很哦兴趣,这是我为了保存扫雷游戏记录而写的一段代码,即不用生成任何文件,也不修改注册表,就能保存信息于文件尾部。其中也有文件定位的问题,希望对你有所帮助。 可来信讨论 t357@163.com
98440622 2003-05-15
  • 打赏
  • 举报
回复
何谓效率底呢?请指教。
程序猿之殇 2003-05-14
  • 打赏
  • 举报
回复
文件以十六进制在ultra Edit中是这样显示的.
00000000h:73 64 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
00000010h:73 64 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
00000020h:73 64 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
00000030h:73 64 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
.....
000000e0h:73 64 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
000000f0h:73 64 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
00000100h:73 64 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
.....
hproof 2003-05-14
  • 打赏
  • 举报
回复
看看有没有skip()什么的文件定位函数(其实是有的,但我忘记了),然后直接对文件输出
程序猿之殇 2003-05-14
  • 打赏
  • 举报
回复
to hproof(hproof) :
现在修改工具那么多,倒是不用自己改。
但我现在想自己做!
hproof 2003-05-14
  • 打赏
  • 举报
回复
直接去下载一个fpe2000吧,反正现在网络方便。。。
想当年,我是不得不自己写作弊器啊。。
程序猿之殇 2003-05-14
  • 打赏
  • 举报
回复
to 98440622(我们的目标是:"没有非典")
其实明白一点也就是说你怎么修改一个存档文件!
98440622 2003-05-14
  • 打赏
  • 举报
回复
虽然没明白你的意思,但是还是支持你!
我曾做过一个大富翁4的存盘数据修改器,有兴趣可以交流一下。
CrazyFrogSoft@yahoo.com.cn

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧