![]() |
eXeL@B —› Вопросы новичков —› Пишу Loader, появились вопросы. |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 28 ноября 2006 15:28 · Личное сообщение · #1 |
|
Создано: 23 декабря 2006 01:58 · Личное сообщение · #2 |
|
Создано: 23 декабря 2006 03:04 · Личное сообщение · #3 |
|
Создано: 23 декабря 2006 04:39 · Личное сообщение · #4 Простите, что вклиниваюсь не по теме. По поводу релоков хотел спросить. Где бы почитать необходимые действия по вставке пары своих релоков (записей) в таблицу перемещаемых элементов? Сам по-своему вставил, но прога не хочет запускаться, пишет, что мол ошибка инициализации. Если вкратце, то дела так обстоят. Есть секция .reloc, в ней где-то посередине на некой странице нужно добавить 2 записи (4 байта). Я знаю какие и где. Нашёл страницу, добавил 4 байта (2 записи). Исправил в заголовке SizeOfBlock. В начале файла поправил "истинный" размер секции (VirtualSize в union'е IMAGE_SECTION_HEADER), убрал лишние 4 байта из секции за счёт выравнивающих байтов. На этом правку закончил. И эта байда не хочет запускаться. Когда я просто даже пару нулей добавляю и проделываю все те же операции, то всё равно не инициализируется (вылетает). Надо ещё отметить, что код, в котором есть абсолютные адреса я дописывал сам к сегменту кода. Я пробовал плагин к PETools, который релоки переделывает, но мне не нравится как он это делает. Дело в том, что у меня в секции релоков таблица экспорта находится (тоже я её туда всунул) и плагин, вместо того, чтобы использовать свободное от выравнивания место создал ещё одну секцию .reloc (в смысле названия), увеличил размер файла, а старую секцию "обнулил". Две секции с названием .reloc смотрятся не аппетитно. Плагин нашёл правильные релоки (которые должны были появиться после дописывания моего кода), молодец. Кто что посоветует. Давайте мат часть. Буду читать. ![]() |
|
Создано: 23 декабря 2006 04:49 · Личное сообщение · #5 |
|
Создано: 23 декабря 2006 04:54 · Личное сообщение · #6 Да, нее. Это-то я знаю. Я свой pe-viewer использую, где и смотрю секцию базовых поправок. Уж туда можно не отсылать, раз я знаю как их смотреть. Это дело не хитрое. Меня больше беспокоит добавление пары записей где посмотреть. Что нужно поменять, кроме размера поля SizeOfBlock. Почему работающий файл (dll) при добавлении простых 00 00 и изменении поля размера уже не грузится? ![]() |
<< . 1 . 2 . |
![]() |
eXeL@B —› Вопросы новичков —› Пишу Loader, появились вопросы. |