298311657 发表于 2009-8-1 19:13:22

如何修改二进制文件?

不知道AU3如何修改并保存2进制文件?

我想要打开一个DLL,把里面的几个2进制代码替换掉~

使用$file = FileOpen("test.dll", 16)
$chars = FileRead($file)
可以成功的读取到数据,但是不知道应该如何保存数据~用filewrite函数视乎不行,或者是我用法错误,希望有人能告知下如何保存,谢谢!

afan 发表于 2009-8-1 21:32:41

你是直接写源文件吗?试过写为另一个文件没

298311657 发表于 2009-8-1 22:18:33

写另一个文件结果保存为文本了~

afan 发表于 2009-8-1 22:21:25

那就把后缀改成dll 试试吧

298311657 发表于 2009-8-1 22:26:58

那就把后缀改成dll 试试吧
afan 发表于 2009-8-1 22:21 http://www.autoitx.com/images/common/back.gif
看来你没明白我的意思~~DLL如果数据写成文本了,那就没用了~里面的函数已经无法调用了~

我需要保持DLL的数据格式,只是想修改其中的几个字节~就像用UE替换二进制数据一样~文件的格式不变

afan 发表于 2009-8-1 22:31:41

还真没用au3搞过dll,以前都是用Restorator搞的
你用直接覆写的办法,写入时可能需要重新打开FileOpen

sunless 发表于 2009-8-2 11:25:24

估计你的问题应该出在替换过程中.替换时要用16进制数,而不是字符.
$file = FileOpen("test.dll", 16)
$chars = FileRead($file)
$chars = stringreplace($chars,"41","42");把A替换成B
FileClose($file)
$file = FileOpen("test.dll", 16+2)
FileWrite($file,$chars)
FileClose($file)

298311657 发表于 2009-8-2 16:53:40

当然是使用16进制字符替换

焯泠星 发表于 2009-8-2 17:34:08

共同努力,一起創造幸福

爱情也要有些障碍,有些难度,这样才有持久的刺激。懂得这一点,才知道什么样的爱情能吸引自己,什么样的爱情自己易厌倦,学会选择。再聪明一点,就知道在别人追求自己时,有意设置一些障碍,这才能保持对对方的刺激力。轻易得到的东西是没什么滋味的。广州发票这些,也是爱情的智慧。女人恰恰喜欢和自己最一样又最不一样的男人!这是爱情的真理。只有“一样”,两个人处在一个平面内,才有可能相交;只有“不一样”,两个人性格正好凸凹相对,才能接合,吻合,才能长短相补,相互给对方提供新意。用这个真理检验自己所熟悉的一对对幸福的夫妻,情人,无不如此。两个人相爱,必有非常相同的地方,那是他们结合的基础;深圳发票同时又必有他们相异的地方,那同样是他们牢固结合的基础。

lecen 发表于 2009-9-7 19:41:19

二进制文件怎么读写呀。

sensel 发表于 2009-9-9 00:27:03

要用到的几个UDF:
_WinAPI_CreateFile
_WinAPI_ReadFile
_WinAPI_WriteFile
_WinAPI_SetFilePointer
_WinAPI_CloseHandle
页: [1]
查看完整版本: 如何修改二进制文件?