Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

модифицирование кода

Аноним
подскажите как можно в вин32 во время выполнения модифицировать код.
Аноним
Честно говоря не знаю, как это под Win32, но просто по теории защищенного режима нужно создать псевдодескриптор, ссылающийся на нужный сегмент, но с правами записи, то есть сегмент с тем же абсолютным адресом, что и у сегмента кода, но с другими нужными аттрибутами сегмента. Для предотвращения конфликтов советую изменять сегмент кода из другого сегмента кода, то есть перед изменением сменить текущий сег. кода на тот, который содержит процедуры по изменению.
555
25 декабря 2001 года
AcidJAM
25 / / 20.05.2000
Модификация кода возможна если ты програмишь на асме, потому что в нем можно указывать так сказать вручную куда что класть (ложить),
а высокоуровневые компиляторы просто все данные и код положат в разные секции и все.
Так вот если ты знаешь структуру PE-файла (exe под винды), то в нем есть таблица объектов(секции), в которых есть характеристики подправив которые можно модифицировать что угодно в пределах размера
программы.

Best regardz from JAM.

mailto [EMAIL]jamk@mail.ru[/EMAIL]
Аноним
блин все проще просто код который тебе надо изменять надо записать в дата-сегмент и туда управление из ентрипоинта передать ... и изменяй сколько хочешь ...
если так не хоцца то можно в hiew немного поменять заголовок проги ..
710
15 января 2002 года
bi0id
38 / / 20.05.2000
710
15 января 2002 года
bi0id
38 / / 20.05.2000
а разве чтобы из сегмнета данных что-то выполнить, его не нада модифицировать(в вин98 вроде надо)
461
30 января 2002 года
gerard
102 / / 20.12.1999
Цитата:

On 2002-01-15 1604, bi0id wrote
а разве чтобы из сегмента данных что-то выполнить, его не нада модифицировать(в вин98 вроде надо)


Кстати, да. Ведь в PM каждый сегмент имеет строго определенный тип (код, стек, данные, спецсегмент и т.д.), и если загрузить указатель на сегмент кода не в CS, то сразу будет ошибка (кажется, General Protected Mode).

606
03 февраля 2002 года
Soulless
18 / / 20.03.2000
Секция кода по умолчанию имеет атрибут readable.При попытке записи туда происходит
ошибка защиты.Переход на сегмент данных сделать можно, но записаться в секцию кода всё
равно не получится.Можно изменить атрибут секции в тексте exe'шника на writable.Если исходник чужой(файл изменять нежелательно).
То надо создавать псевдоним дескриптора на секцию кода с правами записи в необходимую область.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог