Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамическое создание процедуры [D7, Win95/98, WinXP]


Ландграф мобил=) ©   (2005-10-28 20:59:00) 

Как можно по ходу выполнения программы создать процедуру? Читал что можно, это требуется для скрытия от деббагера и невозможности пропатчить программу.


Anatoly Podgoretsky   (2005-10-29 20:11:00) [1]

Ландграф Павел ©   (29.10.05 14:42) [13]
Единственно что зависит от твоей воли, это не писать сюда, а организовать свой форум и там разрешать или запрещать.


Defunct   (2005-10-29 20:08:00) [2]

Zeqfreed ©   (29.10.05 13:10) [12]

То же, что и подразумевалось у тебя.


Ландграф Павел   (2005-10-29 14:42:00) [3]

Anatoly Podgoretsky>Читай прошлые мои топики, я ТЕБЯ давно просил их не читать и не писать в мои посты... Видно я тебе полюбился чем-то, но извини, я не из "ваших"... и твоя "любовь" пусть направится на таких же как ты...


Zeqfreed   (2005-10-29 13:10:00) [4]

Defunct ©   (29.10.05 4:17) [7]
А что в данном случае подразумевается под понятием процедура?


Anatoly Podgoretsky   (2005-10-29 12:34:00) [5]

Насчет любви - у меня другие наблюдения, любят отвечать в основном люди подверженные этому, явные и латентные вирусмейкеры


Anatoly Podgoretsky   (2005-10-29 12:32:00) [6]

OldNaum ©   (29.10.05 12:26) [9]
Зачем всех, этот известен.


OldNaum   (2005-10-29 12:26:00) [7]

да хватит "всех" подозревать в вирусописательстве, ну ей богу. я уже не раз говорил, что Мастера с удовольствием отвечают на ЯВНО (приводил примеры) вирусописательские вопросы, но с подозрением относятся к относительно безобидным вопросам. обидно. простите за оффтоп.


Anatoly Podgoretsky   (2005-10-29 12:03:00) [8]

Ландграф мобил=)   (28.10.05 20:59)  
Как можно по ходу выполнения программы создать процедуру? Читал что можно, это требуется для скрытия от деббагера и невозможности пропатчить программу.

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


Defunct   (2005-10-29 04:17:00) [9]

Zeqfreed ©   (28.10.05 23:29) [3]
> только никакими "процедурами" в ран-тайме и не пахнет.

неправда ваша. Именно самыми, что ни наесть процедурами в run-time.


Defunct   (2005-10-29 04:08:00) [10]

> Игорь Шевченко ©   (29.10.05 00:04) [4]

Не скажи. Созданное генератором кода чудо может так патчеров запутать, что замаются, лучше сказать "замахаются!", патчить. ;>

> Ландграф мобил
конечно можно. Как два байта переслать.

Почитай:

Pentium® Processor Family
Developer’s Manual
Volume 3:
Architecture and Programming Manual

Глава 11, особое внимение - п. 11.1.2 Protected Flat Model, п. 11.3 Page Translation
Глава 12, п. 12.1 Segment-Level Protection
Глава 25 - всю.

вот тебе пример:

procedure CodeExecutionExample;assembler;
asm
//<-- здесь тулим в стек код который надо выполнить
  push  $c3c3c3c3
//<-- для примера добавил 4 команды ret
  push  esp     // <-- сохраняем в стек адрес начала нашего кода
  call  [esp]   // <-- косвенный вызов нашего кода

  add  esp, 8  // <-- Восстанавливаем указатель стека
end;


Плохиш   (2005-10-29 00:32:00) [11]


> Не надо скрываться, все равно найдут и пропатчат.

Не, это "неуловимый Джо"


Игорь Шевченко   (2005-10-29 00:04:00) [12]


> это требуется для скрытия от деббагера и невозможности пропатчить
> программу.


Наивность - это безусловно полезное качество. Не надо скрываться, все равно найдут и пропатчат.


Zeqfreed   (2005-10-28 23:29:00) [13]

Ландграф мобил=)   (28.10.05 20:59) Можно то можно, только никакими "процедурами" в ран-тайме и не пахнет. Можно записать некие данные в участок памяти, назначить ему права на выполнение и передать ему управление, после чего этот участок выполнится (данные будут интерпретированы как код).


wp2   (2005-10-28 23:20:00) [14]

Ну, а что такое процедура?
Это просто участок кода, который можно вызвать
call Myprocedure
Разница между call и jmp состоит лишь в том, что в стек передается содержимое регистра EIP.
Просто всё это попробуй вручную сделать.

А вообще зачем тебе именно процедура? Путь это будет goto (jmp)


tesseract   (2005-10-28 21:05:00) [15]

Создать нельзя.
На пяльцах:
Можно накатать готовую, зашифровать в теле исполнимого файла переписать его загрузчик чтобы он загружал в память расшифрованную.
В общем на WASM.ru изучать оттенки Дзена.


Наверх

Титульная страница Поиск, карта сайта Написать письмо