找回密码
 加入
搜索
查看: 3580|回复: 10

如何修改二进制文件?

[复制链接]
发表于 2009-8-1 19:13:22 | 显示全部楼层 |阅读模式
不知道AU3如何修改并保存2进制文件?

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

使用$file = FileOpen("test.dll", 16)
$chars = FileRead($file)
可以成功的读取到数据,但是不知道应该如何保存数据~用filewrite函数视乎不行,或者是我用法错误,希望有人能告知下如何保存,谢谢!
发表于 2009-8-1 21:32:41 | 显示全部楼层
你是直接写源文件吗?试过写为另一个文件没
 楼主| 发表于 2009-8-1 22:18:33 | 显示全部楼层
写另一个文件结果保存为文本了~
发表于 2009-8-1 22:21:25 | 显示全部楼层
那就把后缀改成dll 试试吧
 楼主| 发表于 2009-8-1 22:26:58 | 显示全部楼层
那就把后缀改成dll 试试吧
afan 发表于 2009-8-1 22:21

看来你没明白我的意思~~DLL如果数据写成文本了,那就没用了~里面的函数已经无法调用了~

我需要保持DLL的数据格式,只是想修改其中的几个字节~就像用UE替换二进制数据一样~文件的格式不变
发表于 2009-8-1 22:31:41 | 显示全部楼层
还真没用au3搞过dll,以前都是用Restorator搞的
你用直接覆写的办法,写入时可能需要重新打开FileOpen
发表于 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)
 楼主| 发表于 2009-8-2 16:53:40 | 显示全部楼层
当然是使用16进制字符替换
发表于 2009-8-2 17:34:08 | 显示全部楼层

共同努力,一起創造幸福

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

评分

参与人数 1金钱 +25 贡献 +10 收起 理由
afan + 25 + 10

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-22 21:23 , Processed in 0.083448 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表