Сейчас на форуме: jinoweb, bartolomeo (+5 невидимых)

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

Ранг: 1.6 (гость)
Активность: 0.01=0.01
Статус: Участник

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

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

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




Ранг: 338.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

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

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

-----
vx




Ранг: 1.6 (гость)
Активность: 0.01=0.01
Статус: Участник

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

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




Ранг: 338.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

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

vlkc

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

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

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

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

-----
vx




Ранг: 1.6 (гость)
Активность: 0.01=0.01
Статус: Участник

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

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




Ранг: 338.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

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

vlkc

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

-----
vx





Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

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

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

-----
От многой мудрости много скорби, и умножающий знание умножает печаль





Ранг: 338.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

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

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

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

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

4798_27.12.2016_EXELAB.rU.tgz - LDRIDP.rar

-----
vx




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

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

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




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

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

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




Ранг: 338.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

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

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

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

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

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

-----
vx




Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

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

PE loader

-----
xchg dword [eax], eax




Ранг: 1.6 (гость)
Активность: 0.01=0.01
Статус: Участник

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

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

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




Ранг: 338.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

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

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

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

-----
vx





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

Долой скрытия, даёшь открытость и прозрачность!


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