Сейчас на форуме: jinoweb, bartolomeo (+5 невидимых) |
eXeL@B —› Программирование —› Delphi - не показывать (скрыть) какие модули загружены с ехе файлом |
Посл.ответ | Сообщение |
|
Создано: 26 декабря 2016 18:17 · Личное сообщение · #1 |
|
Создано: 26 декабря 2016 18:24 · Личное сообщение · #2 |
|
Создано: 26 декабря 2016 18:27 · Личное сообщение · #3 |
|
Создано: 26 декабря 2016 18:31 · Поправил: difexacaw · Личное сообщение · #4 vlkc Какой пример ? Смена типа проекции юзалась как антидебаг метод. Второе юзалось для загрузки копии модуля, но это не норм способ, во первых из области грязных хаков и извращений над осью. Во вторых отвалятся системные механизмы, к примеру GMDH(). Ну а в третьих такая манипуляция не совместима с ав. В принципе решение этой задаче есть, но оно из продвинутых викс техник - изолировать выборку данных При чтении загрузочной базы(списки LDR) из чужёго процесса или из ядра будет фейл. Из текущего же процесса можно подставить любые данные и загрузчик будет успешно работать. В более сложном варианте что бы небыло фейла при чтении и соответственно подозрений всё приложение должно быть взято под слой супервизора(хотя есть иные способы отследить выборку - к примеру железячная точка останова позволит отследить разыменование и далее подмену ссылки, таким образом два ридера - локальный и удалённый получат разную инфу), но это пока не законченная реализация, думаю подмена данных в данном случае это наилучшее решение. ----- vx |
|
Создано: 26 декабря 2016 18:41 · Личное сообщение · #5 |
|
Создано: 26 декабря 2016 18:50 · Личное сообщение · #6 |
|
Создано: 26 декабря 2016 19:15 · Личное сообщение · #7 |
|
Создано: 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 |
|
Создано: 27 декабря 2016 13:25 · Личное сообщение · #9 |
|
Создано: 27 декабря 2016 13:51 · Личное сообщение · #10 |
|
Создано: 27 декабря 2016 13:59 · Личное сообщение · #11 Я в общем и сказал что это из продвинутых викс техник сразу, иначе задача не разрешима. Но и это не предел. Приложение может быть полностью взято под слой супервизора, тогда любая проблема и проблемы сокрытия принципиально исчезают. Но это тоже виксы, всюду они Добавлено спустя 5 минут domabeluh > Зачем помогать вирусописакам?! Это тех задача из области фундаментальных, она не имеет отношения к вирусам. ----- vx |
|
Создано: 27 декабря 2016 16:38 · Личное сообщение · #12 |
|
Создано: 27 декабря 2016 20:04 · Личное сообщение · #13 |
|
Создано: 27 декабря 2016 23:05 · Личное сообщение · #14 |
|
Создано: 29 декабря 2016 20:57 · Личное сообщение · #15 |
eXeL@B —› Программирование —› Delphi - не показывать (скрыть) какие модули загружены с ехе файлом |
Эта тема закрыта. Ответы больше не принимаются. |