информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыПортрет посетителяSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[Win32] Можно ли исполняющуюся DLL отделить от ее раскрытого файла? 30.11.01 10:10  
Автор: BXS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
В голову пришла мысль: а можно ли каким-нть хитрым способом исполнять программу так, чтобы сам файл этого модуля (будь то DLL или EXE) не числился открытым и вообще чтобы система его не держала?

Было бы очень удобно - загрузил DLL в память - и отконнектил файл....а дальше его удаляй, пиши в него - что угодно! :)

Знающие люди, скажите, возможно ли такое???

Спасибо.
[Win32] Можно ли исполняющуюся DLL отделить от ее раскрытого файла? 30.11.01 11:15  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
можно:
1) не используй явно импорт из DLL
2) не используй стандартные функции типа LoadLibrary()
3) не отображай DLL в память
4) прочитай содержимое модуля DLL через ReadFile
5) вручную настрой DLL (import table, relocation table)
6) вызови её EntryPoint
7) ты скорее всего не сможешь использовать стандартные функции GetModuleHandle(), GetProcAddress(), так что адреса функций придётся искать вручную по таблице экспорта

удачи :)
[Win32] Можно ли исполняющуюся DLL отделить от ее раскрытого файла? 30.11.01 15:07  
Автор: BioUnit Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Напрямую "в лоб" решить эту задачу не получиться. Загрузка dll, как обычного файла в память с помощью ReadFile ничего не даст.
Придется писать свой собственный загрузчик, обрабатывать PE-заголовок, разбрасывать сегменты по памяти, настраивать JMP'ы.
А функции GetModuleHandle(), GetProcAddress() работать точно не будут, т.к. они работают с MODREF и IMTES, а это структуры с которыми работает загрузчик win32.
Вообще то, задачка интересная, но стоит ли игра свечь. На кой тебе это надо, может есть более простой способ?
Советую почитать на эту тему: Мэтт Питрек "Секреты системного программирования Windows 95"

> можно:
> 1) не используй явно импорт из DLL
> 2) не используй стандартные функции типа LoadLibrary()
> 3) не отображай DLL в память
> 4) прочитай содержимое модуля DLL через ReadFile
> 5) вручную настрой DLL (import table, relocation table)
> 6) вызови её EntryPoint
> 7) ты скорее всего не сможешь использовать стандартные
> функции GetModuleHandle(), GetProcAddress(), так что адреса
> функций придётся искать вручную по таблице экспорта
>
> удачи :)
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach