Сейчас на форуме: zds (+5 невидимых) |
eXeL@B —› Программирование —› Ошибка в коде |
Посл.ответ | Сообщение |
|
Создано: 02 января 2014 17:17 · Личное сообщение · #1 Привет всем. Такая задача: имеется exe файл, необходимо во переписать во второй exe файл все содержимое 1го файла с одним изменением: заменить команду JMP по адресу 0x11BE на nop. Вроде логика программы верная, но выходной второй файл получается с ошибкой....куда-то исчезает содержимое файла,т.е. вместо 56кб у меня выходит 2кб.....даже не подозреваю где ошибка в коде: #include <stdio.h> void main() { char n; const unsigned char bt_nop=0x90; FILE* f1,*f2; f1=fopen("f:\DU.exe","r"); f2=fopen("f:\DU1.exe","w+"); int k=0x0; while(!feof(f1)) { n=getc(f1); if(k==0x11BE) { fwrite(&bt_nop, 1,1,f2); } else { fwrite(&n, 1,1,f2); } k++; } fclose(f1); fclose(f2); } |
|
Создано: 02 января 2014 17:35 · Поправил: vovanre · Личное сообщение · #2 Кхм, вы издеваетесь? Копируете файл, а дальше через маппинг. Как то так Code:
Или так Code:
|
|
Создано: 02 января 2014 17:54 · Личное сообщение · #3 Code:
и еще бы учесть, что надо нопить 2 байта, а не один. | Сообщение посчитали полезным: Supervitas |
|
Создано: 02 января 2014 18:16 · Личное сообщение · #4 |
|
Создано: 02 января 2014 18:30 · Личное сообщение · #5 |
eXeL@B —› Программирование —› Ошибка в коде |
Эта тема закрыта. Ответы больше не принимаются. |