Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
7 / 7 / 1
Регистрация: 22.07.2015
Сообщений: 675
1

Редактирование hex значений в файле

16.05.2019, 13:09. Просмотров 4242. Ответов 6
Метки нет (Все метки)


Всем привет. Не знаю как сделать то что на 2 скриншотах. На 1 до, на втором - после.
В какую сторону копать?
А то руками замучился менять. Хочется реализовать поиск и замену.
0
Миниатюры
Редактирование hex значений в файле   Редактирование hex значений в файле  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2019, 13:09
Ответы с готовыми решениями:

Hex редактирование - замена строк в файле
Есть файл (вернее 3d модель) в котором нужно сменить имя текстуры, при помощи Free Hex Editor Neo...

[Dendy] Увеличить начальную скорость падения блоков в tetris.1989 (редактирование значений в HEX редакторе)
Доброго дня! Когда-то мне здесь помогли написать диплом. Теперь снова обращаюсь к Вам. Играю в...

Редактирование hex
Подскажите вот етсть файл нужно отредактировать строку через hex как это сделать подскажите на...

Добавление редактирование hex
BinaryWriter BinWrite = new BinaryWriter(File.OpenWrite(OpenFolderDota + "123.txt")); ...

6
7 / 7 / 1
Регистрация: 22.07.2015
Сообщений: 675
16.05.2019, 14:28  [ТС] 2
Offset всегда разный
0
1266 / 656 / 360
Регистрация: 07.01.2019
Сообщений: 2,123
16.05.2019, 14:33 3
а файл какого размера, если можно прочитать полностью, то прочитать в режиме rb и заменить просто, а потом записать назад
0
7 / 7 / 1
Регистрация: 22.07.2015
Сообщений: 675
16.05.2019, 14:35  [ТС] 4
tooru, 200-300кб.
Естественно rb. Как искать и уж тем более как записывать что то не пойму. Может в литературу ткнете?
0
1266 / 656 / 360
Регистрация: 07.01.2019
Сообщений: 2,123
16.05.2019, 14:58 5
Лучший ответ Сообщение было отмечено blackeangel как решение

Решение

Можно перевести в bytearray, а там уже можно replace сделать

Python
1
2
3
4
5
6
7
8
with open('tst.txt', 'rb') as file:
    data = file.read()
data = bytearray(data)
 
data= data.replace(b'\x38\x36', b'\x31\x35')
 
with open('tst.txt', 'wb') as file:
    file.write(data)
1
7 / 7 / 1
Регистрация: 22.07.2015
Сообщений: 675
16.05.2019, 18:01  [ТС] 6
tooru, а замена происходит всех совпадений или только первого?
0
1266 / 656 / 360
Регистрация: 07.01.2019
Сообщений: 2,123
16.05.2019, 18:05 7
Лучший ответ Сообщение было отмечено blackeangel как решение

Решение

Всех, но можно передать третьим аргументом, сколько совпадений заменить, только первое так

Python
1
data= data.replace(b'\x38\x36', b'\x31\x35', 1)
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2019, 18:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Поиск и изменение HEX в файле
Помогите пожалуйста решить проблему Есть бинарный файл. Размер около 100 Мбайт. Есть HEX значения...

Замена hex значений
Читаю файл вот так: procedure ReadFileAsHex(const AFileName: string; ADestination: TStrings); var...

Парсинг hex значений
Здравствуйте. В ASM файле есть такая строка к примеру dc.w 0, $8CE, $6AC, $48A, $268, $46,...

Поиск и замена hex значения в dll файле
Как мне найти и заменить несколько hex значений в dll файле?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.