十六进制更改并保存

时间:2013-07-16 08:00:24

标签: php

我尝试从可以读取rss的工具Feed Notifier更改配置文件feeds.dat。 http://www.feednotifier.com/

动态地在Php中。 (然后我可以拉进来。)

我想要修改一个网址。

在这个例子中,我确实有“默认”网址: http://www.feednotifier.com/welcome.xml

如果我尝试用另一个str_replace它,它就会失败(Feed Notifier)。

所以,我尝试使用hexa类。同样的问题。

有人知道如何更改网址吗?

1 个答案:

答案 0 :(得分:1)

由于文件包含二进制信息,因此必须使用二进制标志打开和写入。 比如fopen('feeds.dat', 'wb+');

您知道该.dat文件的文件格式吗?如果您没有手册,则需要反向工程,并且提取信息。

url http://www.feednotifier.com/welcome.xml之前可能有二进制格式的长度,例如 31http://www.feednotifier.com/welcome.xml所以在更改该网址时,您还需要更改有效内容信息。文件内部可能还有校验和,必须更改。所有依赖都是开发人员决定实施的格式

小心将数据或配置文件发布到互联网,因为可能包含用户名和密码,而且有些人非常善于提取这些信息。

要使PHP在二进制文件中使用数据类型,您需要pack();函数及其所有格式代码:http://php.net/pack

要了解数据类型:http://en.wikipedia.org/wiki/Data_typehttp://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

有关如何进行逆向工程的提示:通过Feed通知软件向数据文件添加条目(右键单击托盘,首选项或添加Feed)。然后查看文件改变了什么。添加另一个Feed并再次查看已更改的内容。是否有类似时间戳的数据类型?标识?那里有什么字符串(大多以null-byte终止或以paylod开头),那里有什么数字,它们以何种方式改变。该程序是否仍可用于更改(二进制安全!)值?