Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Программирование —› Delphi - не показывать (скрыть) какие модули загружены с ехе файлом
Посл.ответ Сообщение

Ранг: 1.4 (гость)
Статус: Участник

Создано: 26 декабря 2016 18:17 New!
Цитата · Личное сообщение · #1

Есть программа на Delphi, которая для работы подгружает dll файлы. Нужно решение для того чтобы спрятать их от диспетчера задач, Process hacker , Process monitor и подобных.

Есть какие возможности?


Ранг: 326.7 (мудрец)
Статус: Участник

Создано: 26 декабря 2016 18:24 New!
Цитата · Личное сообщение · #2

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

Ранг: 1.4 (гость)
Статус: Участник

Создано: 26 декабря 2016 18:27 New!
Цитата · Личное сообщение · #3

можно какой пример?


Ранг: 326.7 (мудрец)
Статус: Участник

Создано: 26 декабря 2016 18:31 · Поправил: difexacaw New!
Цитата · Личное сообщение · #4

vlkc

Какой пример ?

Смена типа проекции юзалась как антидебаг метод. Второе юзалось для загрузки копии модуля, но это не норм способ, во первых из области грязных хаков и извращений над осью. Во вторых отвалятся системные механизмы, к примеру GMDH(). Ну а в третьих такая манипуляция не совместима с ав.

В принципе решение этой задаче есть, но оно из продвинутых викс техник - изолировать выборку данных --> Link <--

При чтении загрузочной базы(списки LDR) из чужёго процесса или из ядра будет фейл. Из текущего же процесса можно подставить любые данные и загрузчик будет успешно работать. В более сложном варианте что бы небыло фейла при чтении и соответственно подозрений всё приложение должно быть взято под слой супервизора(хотя есть иные способы отследить выборку - к примеру железячная точка останова позволит отследить разыменование и далее подмену ссылки, таким образом два ридера - локальный и удалённый получат разную инфу), но это пока не законченная реализация, думаю подмена данных в данном случае это наилучшее решение.

Ранг: 1.4 (гость)
Статус: Участник

Создано: 26 декабря 2016 18:41 New!
Цитата · Личное сообщение · #5

немало в инете инфо про inject ntdll.dll . Но это нажерное будет прятать сам процесс..


Ранг: 326.7 (мудрец)
Статус: Участник

Создано: 26 декабря 2016 18:50 New!
Цитата · Личное сообщение · #6

vlkc

Уже давно в виксах принцип - ничего не скрывать. Так как детект выполняется по факту сокрытия


Ранг: 334.6 (мудрец)
Статус: Участник
born to be evil

Создано: 26 декабря 2016 19:15 New!
Цитата · Личное сообщение · #7

vlkc
вариантов масса. один фик, не тот форум выбрали. лучше гугль курИте


Ранг: 326.7 (мудрец)
Статус: Участник

Создано: 27 декабря 2016 10:02 New!
Цитата · Личное сообщение · #8

Вот семпл, показывающий базовую идею. Я изменил немного другой POC.

Идея следующая. Переходим к загрузочному блоку - это проход по ссылке PEB.Ldr. Туда мы загружаем невалид ссылку и обрабатываем выборку данных по этой ссылке. Удалённый поток(из ядра, другого процесса или к примеру поток, для которого выборка данных запрещена(так и получается список модулей обычно) или выборка данных разрешена из доверенного кода) прочитает невалид значение и не сможет далее распарсить базу.
Это элементарный пример, есно оно не рабочее(заведётся только в младшей версии) - в старших версиях ссылки на загрузочный блок хранятся не только в пеб(обращение пройдёт мимо пеб, через интернал структуры). Далее загрузочный список это не просто блок памяти, это связанные блоки в двусвязанном списке по рандом адресам, поэтому нужно изменить таким же образом два элемента списка - Flink.Blink и Blink.Flink. Сделать это можно для желаемого описателя модуля, тогда будут получены модуля, которые есть в списке до целевого, либо можно сделать это для начала списка.
Для полноценной реализации необходимо немного пореверсить загрузчик - посмотреть порядок вставки элемента в список, порядок перечесления и интернал ссылки, подробно изучить как это устроено.
По нормальному для отката состояние треда после выборки данных запускается итерация динамической эмуляции, но для примера используется TF останов, в принципе это не существенно. Так же должна выполняться эмуляция инструкций, базовый регистр которых является так же операндом(eg: add eax,[eax]).

При таком подходе загрузчик будет работать как обычно, но происходит разграничение доступа между читающим кодом(ридер).

{ Атач доступен только для участников форума } - LDRIDP.rar

Ранг: 0.3 (гость)
Статус: Участник

Создано: 27 декабря 2016 13:25 New!
Цитата · Личное сообщение · #9

difexacaw, ты случаем не Indy/Clerk? Зачем помогать вирусописакам?!


Ранг: 240.4 (наставник)
Статус: Участник

Создано: 27 декабря 2016 13:51 New!
Цитата · Личное сообщение · #10

Вообще такое пишут в основном для читов к онлайн играм, а не для VX


Ранг: 326.7 (мудрец)
Статус: Участник

Создано: 27 декабря 2016 13:59 New!
Цитата · Личное сообщение · #11

Я в общем и сказал что это из продвинутых викс техник сразу, иначе задача не разрешима. Но и это не предел. Приложение может быть полностью взято под слой супервизора, тогда любая проблема и проблемы сокрытия принципиально исчезают. Но это тоже виксы, всюду они

Добавлено спустя 5 минут
domabeluh

> Зачем помогать вирусописакам?!

Это тех задача из области фундаментальных, она не имеет отношения к вирусам.

Ранг: 220.9 (наставник)
Статус: Участник

Создано: 27 декабря 2016 16:38 New!
Цитата · Личное сообщение · #12

PE loader

Ранг: 1.4 (гость)
Статус: Участник

Создано: 27 декабря 2016 20:04 New!
Цитата · Личное сообщение · #13

спасибо всем. С модулями видимо у меня не получится. Я делаю программу на Delphi. Может тогда подскажите как не показывать вообще процес?

И по поводу вирусов - у меня ж голове только избежание конкуренции...


Ранг: 326.7 (мудрец)
Статус: Участник

Создано: 27 декабря 2016 23:05 New!
Цитата · Личное сообщение · #14

Почему не получится ?

Процесс скрывать идея не из лучших.


Ранг: 2008.6 (!!!!)
Статус: Модератор
retired

Создано: 29 декабря 2016 20:57 New!
Цитата · Личное сообщение · #15

Долой скрытия, даёшь открытость и прозрачность!
 eXeL@B —› Программирование —› Delphi - не показывать (скрыть) какие модули загружены с ехе файлом
Эта тема закрыта. Ответы больше не принимаются.

Видеокурс ВЗЛОМ