![]() |
|
Модераторы: bsa |
![]()
|
|
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Как заменить байт в файле.
Нужно заменить байт в определённом файле по определённому адресу. Ну, скажем, заменить "01" на "02" в файле "D:\a.exe", по адресу 123ABCD, все значения - в 16-ричной системе счисления. Как это делается? В Интернете искал, находил только какие-то части, не знаю как это всё воедино свести. Это сообщение отредактировал(а) slavaentp - 2.6.2009, 22:46 |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
http://msdn.microsoft.com/en-us/library/aa365747(VS.85).aspx
Добавлено через 1 минуту и 57 секунд http://www.cplusplus.com/reference/clibrary/cstdio/fwrite/ |
|||
|
||||
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Alca
Во второй ссылке нет указателя на адрес в файле, функцией из первой ссылки не понял как пользоваться. |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
slavaentp, судя по уровню вопроса, тебе еще рано этим заниматься)
но вообще, это делаться через CreateFile+SetFilePointer+WriteFile |
|||
|
||||
| Alca |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
Функция WriteFile похожа на fwrite.
Добавлено @ 23:21
Добавлено @ 23:22 http://www.cplusplus.com/reference/clibrary/cstdio/fseek/ Добавлено через 6 минут и 26 секунд fseek == SetFilePointer fputs == WriteFile Это сообщение отредактировал(а) Alca - 2.6.2009, 23:24 |
||||
|
|||||
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Alca
fwrite(buffer[111111],1,sizeof(buffer),pfile); - пишет на эту строчку ошибку "d:\a\main.cpp|10|error: invalid conversion from `char' to `const void*'|" |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
Это сообщение отредактировал(а) Alca - 2.6.2009, 23:52 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Во первых. buffer - содержит один элемент. Значит диапазон адресов 0-0.
А в строке fwrite(buffer[111111],1,sizeof(buffer),pfile); ты обращаешься к элементу 111111, а такого не существует. А сообщает тебе компилятор о том, что ты в функцию fwrite передаешь тип char, а должен const void*. Вобще, трудно понять что этот код должен делать. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Alca
Спасибо! Пример, который ты скопировал - сработал. Только там в fopen нужно "r+", а не "w", иначе файл стирается после вставки байтов. Это сообщение отредактировал(а) slavaentp - 3.6.2009, 00:06 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |