为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

游戏存档数值寻址C#源程序zip

2017-10-17 6页 doc 19KB 16阅读

用户头像

is_650122

暂无简介

举报
游戏存档数值寻址C#源程序zip游戏存档数值寻址C#源程序zip using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication5 { //用于游戏存档数据地址寻找,用于多个存档的对比分析 class Program { //把文件写入二进制,找出二进制中相应数据的地址,返回地址数组 static int[] readbyte(strin...
游戏存档数值寻址C#源程序zip
游戏存档数值寻址C#源程序zip using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication5 { //用于游戏存档数据地址寻找,用于多个存档的对比分析 class Program { //把文件写入二进制,找出二进制中相应数据的地址,返回地址数组 static int[] readbyte(string wenjian, int seeing) { byte[] jinzhi = new byte[800000]; FileStream asave = new FileStream(wenjian + ".sav", FileMode.Open); asave.Read(jinzhi, 0, Convert.ToInt32(asave.Length)); int i = 0, j = 0; int[] dizi1 = new int[30000]; while (i < jinzhi.Length) { if (jinzhi[i] == seeing) { dizi1[j++] = i; } i++; } int[] dizi = new int[j]; while (j > 0) { dizi[j - 1] = dizi1[j - 1]; j--; } asave.Close(); return dizi; } //对比地址数组中的地址数据,求出对应文件的正确的数据,返回对应地址,缩小搜索范围 static int[] remain(string wenjian, int[] dizi, int seeing) { int i = 0; int j = 0; byte[] jinzhi = new byte[800000]; FileStream asave = new FileStream(wenjian + ".sav", FileMode.Open); asave.Read(jinzhi, 0, Convert.ToInt32(asave.Length)); int[] zonghe1 = new int[30000]; while (i < dizi.Length) { if (jinzhi[dizi[i]] == seeing) { zonghe1[j++] = dizi[i]; } i++; } int[] zonghe = new int[j]; while (j > 0) { zonghe[j - 1] = zonghe1[j - 1]; j--; } asave.Close(); return zonghe; } //主函数 static void Main(string[] args) { Console.WriteLine("改程序主要用于游戏存档数据地址寻找,用于对多个存档的对比分析。\n请把存档.sav文件放到该程序的同一目录下,比如要找到存储金钱的数值位置,\n现在有3个存档:01.sav,02.sav,03.sav;\n金钱数分别是10000,20000,30000;\n在运行窗口中按提示输入10000,回车,01,20000,回车,02,30000,回车,30000;\n就可以把该内存地址找到,于是就可以对文件进行存档修改。\n该程序不保证一定找到地址。\n"); int i = 0; int[] dizi; string wenjian; int seeing; //便于循环操作 while (true) { Console.WriteLine("开始初始搜索,输入要查询的数值"); seeing = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("初始搜索,输入要打开的文件名,请不要输入扩展名,扩展名默认是.sav"); wenjian = Console.ReadLine(); try { dizi = readbyte(wenjian, seeing); } catch (IOException e) { Console.WriteLine("打开失败"); Console.WriteLine(e.ToString()); Console.ReadKey(); return; } Console.WriteLine("初次搜索找到{0}个地址", dizi.Length); if (dizi.Length == 0) { Console.WriteLine("该数据不存在,本轮搜索结束"); continue; } //等到地址只剩下1个的时候结束循环 while (dizi.Length != 1) { Console.WriteLine("再次输入要查询的数值"); seeing = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("再次输入要打开的文件名,请不要输入扩展名,扩展名默认是.sav"); wenjian = Console.ReadLine(); try { dizi = remain(wenjian, dizi, seeing); } catch (IOException e) { Console.WriteLine("打开文件失败"); Console.WriteLine(e.ToString()); Console.ReadKey(); return; } i = 0; while (i < dizi.Length) { Console.WriteLine("综合筛选的地址一共有{0}个,第{1}个地址是:{2}", dizi.Length, i, dizi[i]); i++; } //如果地址为空,跳出大循环,搜索失败 if (dizi.Length == 0) { Console.WriteLine("找到0个解,搜索失败,继续重新搜索"); break; } Console.WriteLine("此时一共还剩{0}个地址", dizi.Length); } Console.WriteLine("搜索完成,最终剩下的地址是{0},请记下此地址", dizi[0]); } } } }
/
本文档为【游戏存档数值寻址C#源程序zip】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索