Python中文
首页
教程
问答
标签
搜索
登录
注册
用Python修改二进制文件
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试修补一个十六进制文件。 我有两个补丁文件(十六进制)名为“patch 1”和“patch 2”</p> <p>要修补的文件是一个名为“file.bin”的16MB文件。</p> <p>在过去的6到7个小时里,我尝试了很多不同的方法来找出如何做到这一点。我可以整天在文件中写入字符串,但我正在尝试执行以下操作:</p> <p>用读取字节打开patch1.bin 打开带有读取字节的patch2.bin 用写字节打开file.bin</p> <p>我想查找位置0xc010和0x7c010,并应用patch1.bin 然后我想寻找0x040000并应用patch2.bin</p> <p>所以总而言之,我将应用3个补丁,然后关闭“file.bin”</p> <p>如果有人给我举个例子,我会非常感激的:)</p> <p>我先试试这个:</p> <pre><code>patch1 = open("patch1", "r"); patch2 = open("patch2", "r"); main = open("file.bin", "w"); main.seek(0xC0010); main.write(patch1); main.seek(0x7C0010); main.write(patch1); main.seek(0x40000); main.write(patch2); main.close(); </code></pre> <p>但被告知我正试图在一个文件中写入一个字符串,而这确实不是我想要的,哈哈 然后我试着说:</p> <pre><code>infile1 = open("patch1.bin", "rb") new_pos1 = int("0x00", 16) infile1.seek(new_pos1, 0) infile2 = open('file.bin', 'wb') new_pos2 = int('0xc0010', 16) infile2.seek(new_pos2, 0xc0010) chunk1 = int("6FFFE0", 16) #this is how long patch1 file is data1 = infile1.read(chunk1) with open("file.bin", "a") as outfile: outfile.write(data1) </code></pre> <p>但它也不起作用,因为无论我尝试了什么,我都无法让它以正确的偏移量写入数据。</p> <p>我确实设法将patch1写入file.bin,但它没有在正确的偏移位置进行修补,事实上,它删除了file.bin,只是将patch1复制到其位置。这当然是错的。</p> <p>我必须提醒你,我对python和编程还不太熟悉,但我确实在努力钻研它并学习它,所以任何好的例子都会被检查,希望对我来说都是一个很好的学习课程:)</p> <p>谢谢你们帮我找出我做错了什么:)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>1.txt文件:</p> <pre><code>asdf </code></pre> <p>一份:</p> <pre><code>with open('1.txt','r+b') as f: f.seek(2) f.write('D') </code></pre> <p>1.txt文件:</p> <pre><code>asDf </code></pre> <p>这应该给你一个线索。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何将Python中的列表复制到给定的目标中?
6 回答
如何将python中的列表插入SQL表
5 回答
如何将python中的列表转换为numpy数组以放入十位
5 回答
如何将python中的列表输入javascript?
1 回答
如何将python中的列表返回给dag?
6 回答
如何将Python中的列表项重新排列成成对的元组/列表?
4 回答
如何将Python中的初始化对象序列化为XML?
5 回答
如何将python中的十进制字符串转换为数字?
2 回答
如何将Python中的原始输入文本转换为Tkinter中的标签?
8 回答
如何将python中的反斜杠命令转换为在Linux上运行
4 回答
如何将python中的命令行参数转换为字典?
6 回答
如何将python中的图像值传递到kivy中的kv文件?
3 回答
如何将Python中的图像数组(枕头对象)上传到Google云
3 回答
如何将Python中的图像编码为Base64?
1 回答
如何将python中的图像调整为灰度低分辨率,如MNIST时尚数据?
2 回答
如何将python中的多个html输出保存到单个文件(或多个)中?
5 回答
如何将Python中的多个ifelse语句重构为一个函数?
6 回答
如何将Python中的多处理与Django结合使用,从xml文件创建数千个模型实例?
2 回答
如何将python中的多级API响应转换为dataframe
7 回答
如何将python中的多线程编程模型转换为异步/等待模型?
4 回答