2012-06-11 3 views
0

Сегодня я пытаюсь удалить несколько байтов из EXE-файла.Crack some exe file - как удалить байты

Внутри EXE я нашел путь к файлу, который должен загружать EXE. Я хочу изменить путь, и для этого мне нужно удалить некоторые символы ../../. Когда я делаю это и сохраняю файл, он теряет свой значок и «ошибка формата un32 для win32» отображается, когда я пытаюсь его выполнить.

Если я не удаляю эти байты, а заменяю их на 0, значок не будет потерян, и файл будет выглядеть правильно. Тем не менее, путь неверен.

Так что, когда я удаляю байты, теряется положение другой информации внутри файла, включая ресурсы (значок). После удаления этих байтов мне нужно добавить еще 6 байтов, чтобы сохранить одинаковый размер и положение других данных. Где я должен это делать? Если я добавлю эти байты в конец файла, это не сработает. Не могли бы вы дать мне несколько подсказок? Благодаря!

ответ

3

После удаления ../../ с начала строки придерживайте шесть 0 байтов в конце строки (я предполагаю, что вы можете определить конец вручную). Таким образом, смещение всего в файле остается неизменным. Удалив всего 6 байтов, смещение вещей после строки изменится. Заменив 6 байтов на 0, смещение строки изменится (теперь она будет действительно там, где она была + 6).

+0

Спасибо! Основная идея состоит в том, чтобы изменить ссылку на файл из 2-х директорий назад в фактический каталог. Вставка шести 0, не добавит ли еще 6 байтов в файл? – ali

+0

@ali я имел в виду после удаления ../../ с начала – dave

+0

O.K. Я понимаю. Некоторые инструменты отладки для EXE, поэтому я вижу другие возможные ошибки? Благодаря! – ali