精华内容
下载资源
问答
  • 先感谢编写这段代码的作者, 这段代码可以完美的以16进制方式修改数据文件,经测试在2M左右内的文件可以完美运行,但是我在修改一个100M的文件时提示内存溢出,在这大神云集的地方特来请教大师们帮我修改成能运行在...
  • 如何修改Keil的工程名

    千次阅读 2019-09-04 10:01:10
    1、删除如下所示的两个文件夹中的所有文件。 2、在工程文件目录中,将old.uvoptx和old.uvprojx名字改成new...4、点击魔法棒,点击Output修改可执行的项目名称(hex文件与map输出); 5、点击F7重新编译工程。 ...

    1、删除如下所示的两个文件夹中的所有文件。

    2、在工程文件目录中,将old.uvoptx和old.uvprojx名字改成new.uvoptx和new.uvprojx。

    3、打开工程

    4、点击魔法棒,点击Output修改可执行的项目名称(hex文件与map输出);

    5、点击F7重新编译工程。

    展开全文
  • 我打开了一个文件(二进制)的,然后利用bin2hex函数,将其变成了十六进制的字符串,并且修改了其中一个特定位置的数值,现在问题是,我想保存回去,发现变成了ASCII文件,请问各位,如何应该保存成和源文件格式一样的...

    我打开了一个文件(二进制)的,然后利用bin2hex函数,将其变成了十六进制的字符串,并且修改了其中一个特定位置的数值,现在问题是,我想保存回去,发现变成了ASCII文件,请问各位,如何应该保存成和源文件格式一样的代码呢?

    下面是代码:

    $fp=fopen("sample.bin",'rb');

    $word='';

    while(!feof($fp)){

    $buf = bin2hex(fread($fp,48));

    $pos = strpos($buf, '02000100'); // 查找土地

    //if $pos == 0 {

    // echo "这是土地";

    //}

    echo $buf;

    echo "\n-------------\n";

    echo ($pos/2);

    echo $buf2=str_replace("02000100","BE010000",$buf);

    $word=$word.$buf2;

    echo "\n";

    }

    fclose($fp);

    echo $word;

    $new= fopen('new.bin','w');

    fwrite($new,$word);

    fclose($new);

    ?>

    回复讨论(解决方案)

    一个文件一种格式,存两种格式也没有意义,可以在需要时候再取出来转换,不用转为十六进制

    1、既然你用 $fp=fopen("sample.bin",' rb'); 打开文件,表示你的程序可在 window 系统下工作,那么写入时也应 $new= fopen('new.bin','w b');

    b 表示二进制方式,window 下必须严格区别,linux 下无所谓

    2、处理后的 $word 的内容是十六进制表示,你在写入文件时并没有再转回二进制

    可用 $word = pack('H*', $word); 转换

    $word = '';

    $from = pack('H*', '02000100');

    $target = pack('H*', 'BE010000');

    while(!feof($fp)){

    $buf = bin2hex(fread($fp,48));

    $buf2 = str_replace($from, $target, $buf);

    $word .= $buf2;

    }

    这样 $word 中依旧是二进制数据

    $word = '';

    $from = pack('H*', '02000100');

    $target = pack('H*', 'BE010000');

    while(!feof($fp)){

    $buf = bin2hex(fread($fp,48));

    $buf2 = str_replace($from, $target, $buf);

    $word .= $buf2;

    ……

    谢谢xuzuning的意见,我按照你的修改了代码,如下:

    $fp=fopen("old.bin",'rb');

    $word='';

    $from = pack('H*', '02000100');

    $target = pack('H*', 'BE010000');

    while(!feof($fp)){

    $buf = bin2hex(fread($fp,48));

    $buf2 = str_replace($from, $target, $buf);

    $pos = strpos($buf, '02000100'); // 查找土地

    //if $pos == 0 {

    // echo "这是土地";

    //}

    echo $buf;

    echo "\n-------------\n";

    echo ($pos/2);

    echo $buf2;

    //echo $buf2=str_replace("02000100","BE010000",$buf);

    $word=$word.$buf2;

    echo "\n";

    }

    fclose($fp);

    //echo $word;

    $new= fopen('new.bin','wb');

    fwrite($new,$word);

    fclose($new);

    ?>

    但是生成的new.bin的大小依然是old.bin的两倍,和之前没有什么区别,我的测试环境是在我的WIN2008的服务器上,IIS7+PHP,您还有什么建议么?

    对不起,我 #3 的代码错了,应该是这样

    $word = '';

    $from = pack('H*', '02000100');

    $target = pack('H*', 'BE010000');

    while(!feof($fp)){

    $buf = fread($fp,48);

    $buf2 = str_replace($from, $target, $buf);

    $word .= $buf2;

    }

    完全按二进制方式操作

    对不起,我 #3 的代码错了,应该是这样

    $word = '';

    $from = pack('H*', '02000100');

    $target = pack('H*', 'BE010000');

    while(!feof($fp)){

    $buf = fread($fp,48);

    $buf2 = str_replace($from, $target, $buf);

    $wo……

    感谢,问题解决!

    唠叨说了关键了, windows的确区分文本和二进制文件, 因为文本的末尾是以某个特殊字节标示的.

    WINDOWS下,不太了解的同学经常用fgetc函数以文本打开二进制文件, 试图一个字节一个字节的读取, 结果发现只能读了一半就开始返回EOF了, 其实是因为恰好某个字节是文本里的作为结束符的特殊字节。

    但Linux一律以系统API : read返回0作为文件末,所以b参数是被忽略的。

    楼主的作法多余了, 不就是想找到 土地 两个字, 然后替换一下吗 ?

    不知道楼主所说的二进制文件是怎么生成的, 其实一切都是二进制, 只是在windows下b打开和非b打开得到的结果会有区别, 非b打开和用文本编辑器编辑结果是一致的.

    假设你原本的文件就是一个utf8文本文件,里面有“土地”两个字,作法很简单,UTF8多字节编码的,循环fread并不一定正好能将完整的“土地”两个字的字节读到一个buffer里,所以比较好的办法是file_get_contents,之后直接str_replace("土地", “兄弟”)即, 在C语言里其实就是内存映射后替换字符串.

    转什么十六进制, 纯属多此一举, 而且循环读是一定有bug的, 可能"土地"两个字是被拆开读进来的.

    就连vim这种软件都是内存映射的, 文件太大它也没办法, 只能告诉你失败.

    请问怎么可以调用保存窗口保存么

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • 注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。 Rem Message Sample:@Rem Here is the description. 5.Pause 命令 运行 Pause 命令时,将显示...
  • 掌握如何在windows及linux中修改并保存二进制文件 操作要求 电脑系统为win10 64位 游戏版本为英文原版 v1.0.0.1051 数据文件(dat文件)编辑器为Hex Editor Neo 任务探索 进入游戏之后,创建新用户,用户名为...

    挑战

    • 修改「植物大战僵尸」的存档文件,将一个新玩家的关卡进度直接修改到5-2关(跳关),金钱直接修改到10000

    说明

    • 了解二进制、十六进制对于计算机的意义
    • 掌握二/七/八/十/十二/十六等多种数据进制间的转换
    • 掌握如何在windows及linux中修改并保存二进制文件

    操作要求

    • 电脑系统为win10 64位
    • 游戏版本为英文原版 v1.0.0.1051
    • 数据文件(dat文件)编辑器为Hex Editor Neo

    任务探索

    • 进入游戏之后,创建新用户,用户名为“Aichard”,然后寻找该用户的游戏存档位置;C:\ProgramData\PopCap
      Games\PlantsVsZombies\userdata,新用户的存档文件为:user1.dat,用Hex EditorNeo打开如图:

    • 关卡01:

    此时处于第一关

    • 关卡02:
      在这里插入图片描述
    • 关卡03:
      在这里插入图片描述
    • 由上边三幅图可知关卡的变动是由04的改变而改变的
    • 修改地址04的数据,保存存档文件后,进入游戏看关卡是否已经改变;修改数据为“10”,进入游戏发现关卡已经改变为:

    在这里插入图片描述

    • 多次调试后发现关卡04对应的数值为十六进制,所以我们只需计算出42的十六进制为2a即可:
      在这里插入图片描述
      在这里插入图片描述
    • 来到5-2关后我们的商店解锁了,此时的金币为0:

    在这里插入图片描述

    • 进行一局游戏后金币为10:

    在这里插入图片描述

    • 然后观察表后发现08的数据从00变到了01,猜测金币数量是该数据十进制值的十倍;在这里插入图片描述

    • 地址08能存储的金币最大值是2550枚(ff的10倍),商店里有很多商品的价格都超过了2550,所以应该是使用了多位地址存储金币数量;经验证,地址08-0B按照从字节低到高的顺序存储了金币数量;

    • 修改地址08-0B数据为e8 03 00 00,经验证,游戏内金币数量已改为10000;
      在这里插入图片描述
      在这里插入图片描述

    展开全文
  • 第一:将工程中后缀名为“dep,ewd,ewp,eww”的这四个文件直接重命名为自己想要的名字,如原工程名字是TEST_1,现在重命名为TEST_2。...第三:再将后缀名为ewp的文件拖进记事本,用替换把文件中TEST_1.hex换成TES...
    第一:将工程中后缀名为“dep,ewd,ewp,eww”的这四个文件直接重命名为自己想要的名字,如原工程名字是TEST_1,现在重命名为TEST_2
    第二:打开一个空的记事本,将后缀名为eww的文件拖进去,记事本显示内容如下: 
        $WS_DIR$\TEST_1.ewp
    然后将上面TEST_1换成TEST_2
    第三:再将后缀名为ewp的文件拖进记事本,用替换把文件中TEST_1.hex换成TEST_2.hex。
    第四:同理后缀名为dep的文件按第三步照做。(貌似不做也行)

    修改完成后再次打开工程,发现已经修改成功

    展开全文
  • Hex2CCScriptASM 用于入侵EarthBound的工具。 正如尼姆所暗示的那样,它将十六进制字节解释为伪汇编代码,CCScript可以使用该伪代码将其编译回65816汇编十六进制。 您将需要文件来了解我的意思,并允许CCScript将...
  • 这篇博文主要讲述如何Hex editor修改植物大战僵尸,首先先下载Hex editor Neo。 1.Hex editor下载 在我的个人页面能在上传的资源里找到Hex editor,我已经将执行文件设置为免费,大家可以安心下载。 修改用户数据 ...
  • emacs编辑二进制文件 ALT+X 进入命令输入状态,在emacs的命令行输入: hexl-mode 则进入16进制模式 选中你要修改的位置emacs ALT+X hexl-insert-hex-char 插入16进制字符 或者 CTRL+ALT+X 命令 然后输入16进制数...
  • 如何使用 bat 或 cmd 等批处理文件快速将十六进制的数字转换为十进制的数字 创建一个文本文件修改后缀名为 cmd 文件 使用如下代码即可创建一个变量,在变量里面设置十六进制,此时输出就是 10 进制字符串 set ...
  • Hex Editor Neo打开user1.dat文件2.3创建用户2.4对比信息2.5 修改信息3.金币修改4.开启解密模式和生存模式1.解密模式1.把game1_0.dat 复制粘贴,然后把文件名改为user1.dat2.打开游戏,发现第四个创建的用
  • .out文件转bin文件

    千次阅读 2017-06-25 15:44:09
    如何使用CCS生成.bin文件 使用TI提供的mkhex4bin.exe即可在CCS下面生成所需的.bin,任何使用CCS开发的芯片平台都可以支持。 C:\ti\ccsv5\utils\tiobj2bin 具体步骤: 1、修改tiobj2bin.bat脚本 此脚本完成...
  • 《植物大战僵尸》游戏存档修改

    千次阅读 多人点赞 2021-03-21 21:43:37
    《植物大战僵尸》游戏存档修改说明需求知识必要软件原理进行过程总结软件下载相关说明相关链接说明需求知识必要软件原理进行过程...掌握如何修改并保存二进制文件 必要软件 Hex Editor Neo 《植物大战僵尸1》 原理
  • 掌握如何修改并保存二进制文件 操作平台 电脑系统为win10 64位 游戏版本为中文免安装绿色版,冒险模式关卡一共5大关,每大关又有10小关;关卡3-5之后,商店解锁,金币系统解锁 数据文件(dat文件)编辑器为Hex ...
  • 2. 使用HexEdit工具,新建一个空白的文件,这里使用了软件Hex Editor Neo工具,将图像数据粘贴到hex文件中。 3. 文件另存为logo.bmp,即bmp格式的文件 4. 用画图板打开logo.bmp,就可以看到图片内容,修改后保存...
  • 分享一下任务完成流程 任务说明 了解⼆进制、⼗六进制对于计算机的意义。 掌握⼆/七/⼋/⼗/⼗⼆/⼗六等多种数据进制间的转换 掌握如何在windows及linux中修改并保存⼆进制⽂件 ...选取打开dat文件的软件是Hex Editor
  • 今天调试别的人的工程出现这个问题,我按网上的方法修改了两处地方,修改了第二处之后就好了,不确定第一处有没有起作用。 第一处.工程生成的程序输出 .out 文件,不包含调试信息和地址信息,需要生成 .hex 文件 ...
  • 当然,这是低效的!base64设计用于在文本中存储二进制文件。它在转换后会生成更大的块。顺便问一下:你想要什么样的效率?...如果你想要简洁-你可以很容易地修改代码以存储在二进制文件中,或者如果你想要00011001...
  • 掌握如何在Windows中修改并保存二进制文件 学习工具 Hex Editor Neo(二进制、十六进制文件编辑查看器) 提取码:ayyh 学习过程 理清思路 首先,植物大战僵尸是一个单机游戏,那它的存档必然是保存在本地,具体...
  • Ctrl2cap 还显示如何使用 NtDisplayString() 打印初始化蓝屏的消息。 DebugView Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用...
  • 关于植物大战僵尸如何更改关卡与金币 仅仅关于主要关卡,不包括生存模式...掌握如何在windows及linux中修改并保存⼆进制⽂件 1.需要下载二进制编辑器文件,直接网上可以找到。一般是hex editor 2。需要找到电脑中的用
  • UCGUI如何固化字库

    2010-06-10 14:20:00
    请教UCGUI如何固化字库?谢谢!----已有解决方案 我现在用44B0X,UCOS和UCGUI已经能...需要解决的问题: 1 字库怎样做成单独的.HEX或.BIN文件 2 UCGUI的字库结构怎样让它按指定地址编译 3 怎么让UCGUI取固化的字...
  • 其实就是通过上位机把.bin/hex文件以CAN通讯的方式发送给单片机并存储在规定的Flash中。这个过程与手机端更新APP类似。以STM8单片机为例,该如何实现Bootloader呢?今天和大家分享一下。01什么是...
  • 发现,前四行是文件头,除此之外,其余编码都为00000000。 然后,修改其中一些编码,得到图案: 多次调试后就可以改出需要的图案了,我的任务是使用二进制画一个图(带黑线的图像),这里我就简单画一个十字,如图...
  • filecompare.ZIP 比较文件的例子 (1KB) 67,filecopy.ZIP 拷贝文件的例子, 有拷贝进度条 (7KB) 68,dellines.ZIP 删除文本文件中含有指定字符串的行 (3KB) 69,hexdump.ZIP 读16进制的文件 ...
  • .reg文件如下 ``` Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TopDomain\e-Learning Class\Student] "Knock1"=hex:1d,70,39,3a,14,44,35,1f,15,0f,0e,5a,...请问应如何修改
  • VS1003播放MP3音乐生成

    2021-01-19 11:41:22
    分析例程后,找到MP3Sample.C文件,里面存放的是MP3转为HEX文件的数组。由此分析只需修改本文件中的数据内容即可播放自己想要的音乐文件。 音乐数组如何生成?是个需要解决的问题。在网上搜索MP3转换HEX工具,找到...
  • 本文档详细介绍了如何制作基于ATmega8芯片的Arduino开发板,材料十分精简,但足以完成Arduino的开发,使用高压编程器或其他可修改熔丝位的下载器下载BootLoader.hex文件,使用串口更新固件,修改了熔丝位,使得可以...
  • PIC单片机之反汇编

    万次阅读 2015-11-02 02:10:24
    前言   反汇编 ,一般情况大家用的不多。但在一些行业确实比较常见...反汇编是比较枯燥,又有一定挑战性的东西下面我给大家讲解如何 从BIN文件->HEX文件->汇编->C语言的全部过程。  第一步破解芯片  这个作为一般是
  • 步骤二,挑选部分例程的HEX,比如LED灯的例程HEX文件,下载到芯达STM32开发板中,观察两个LED灯的闪烁情况。 步骤三,准备几个常用的文档,比如《STM32的用户手册》,《STM32固件库使用手册》等文档。 步骤四,开始...

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

如何修改hex文件