Сейчас на форуме: asfa, bartolomeo (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Что такое дельта смещение? |
Посл.ответ | Сообщение |
|
Создано: 13 июля 2012 10:42 · Поправил: yashechka · Личное сообщение · #1 |
|
Создано: 13 июля 2012 10:51 · Личное сообщение · #2 |
|
Создано: 13 июля 2012 11:14 · Личное сообщение · #3 |
|
Создано: 13 июля 2012 15:01 · Поправил: Coderess · Личное сообщение · #4 Вот еще : Code:
Code:
Отрывок из ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 13 июля 2012 18:27 · Личное сообщение · #5 yashechka Дельта-смещение это разница между двумя адресами. Когда мы пишем привычными для программера средствами, то адресную арифметику настраивает компиллер, точнее он формирует код и файл таким образом чтобы во время работы исполнимого файла все было ок. Когда же мы пишем к примеру вирус, или какой-нить код который является чежеродным для исполняемого процесса, то возникает вопрос "Как адресоваться?". Формулировка проблемы : Как адресоваться внутри чужеродного куска кода к его собственным данным? Решением этой проблемы является: "Пишите базово-независимо". Другими словами мы при написании кода, или формировании кода(а мы же можем писать и кодогенераторы) формируем так код, чтобы он адресовался относительно заранее принятого адреса. Во время работы файла мы вычисляем "А где реально находится это место в пространстве процесса?", когда мы знаем этот реальный адрес мы вычитаем его из нами предположенного и тем самым получаем "дельта-смещение", далее прибавив эту разницу там где мы хотим адресоваться в теле базово-независимого кода мы получаем нормально функционирующий код. Как правило пишется нечто вроде этого: Code:
Этот кусок кода вычисляет место в процесс, где же реально находится этот next ? Работает примитивно и просто, разжевывать не буду, просто вспомните как работают эти маш.инструкции ![]() |
|
Создано: 13 июля 2012 19:05 · Личное сообщение · #6 |
|
Создано: 13 июля 2012 22:34 · Личное сообщение · #7 |
![]() |
eXeL@B —› Вопросы новичков —› Что такое дельта смещение? |