| Сейчас на форуме: 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 - не показывать (скрыть) какие модули загружены с ехе файлом | 
| Эта тема закрыта. Ответы больше не принимаются. | 





 



 Для печати