информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Страшный баг в WindowsАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / hacking
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование 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
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Смотря где буфер находится. 14.08.01 11:42  Число просмотров: 791
Автор: Glory <Mr. Glory> Статус: Elderman
<"чистая" ссылка>
Если буфер в виртуальном адресном пространстве твоего приложения - JMP на точку входа программы. А если нет - придется через ReadProcessMemory() скопировать ее к "себе" и сделать как в первом случае.
<hacking>
Загрузка программ в Win из памяти 14.08.01 10:31  
Автор: Go Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Хай, гайз.
Возникла проблема загрузки программы (EXE и DLL) из памяти. Т.е. имеется буфер с кодом программы и необходимо его запустить без сохранения на диск. Если кто знает как это можно провернуть, pls, ответьте.
Смотря где буфер находится. 14.08.01 11:42  
Автор: Glory <Mr. Glory> Статус: Elderman
<"чистая" ссылка>
Если буфер в виртуальном адресном пространстве твоего приложения - JMP на точку входа программы. А если нет - придется через ReadProcessMemory() скопировать ее к "себе" и сделать как в первом случае.
Смотря где буфер находится. 14.08.01 15:05  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
> Если буфер в виртуальном адресном пространстве твоего
> приложения - JMP на точку входа программы. А если нет -
> придется через ReadProcessMemory() скопировать ее к "себе"
> и сделать как в первом случае.

не так просто :)

1) бинарный файл не обязан совпадать с тем что будет в памяти (выравнивание секций, настройка адресов импорта) - это можно настроить вручную (как - читай формат PE файлов; в последних MSDN описан)

2a) для EXE: скорее всего у этой проги будет тот же дефолтный BaseAddress 0x400000 и её нужно будет переносить на другой адрес; а если у неё нет Relocation Table (что не редкость у exe-файлов) то обломись :))

2b) для DLL: у них почти всегда есть RelocationTable и ты сможешь загрузить и настроить её

может ещё есть проблемы - сразу не вспоминается больше :)

сразу скажу - не одну бессонную ночь проведёшь :)

может быть проще будет посмотреть как нужная тебе ОС запускает проги;
она же должна сначала отмапить файл таким какой он есть (т.е. он будет в некотором буфере - как тебе и нужно), а потом вызвать какую то функцию для настройки - вот она то тебе и нужна - научишься её вызывать - не надо будет самому настраивать исполняемый файл

желаю удачи :)
1




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


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