1 (изменено: belyankin12, 2019-03-23 12:59:29)

Тема: AHK: Запущена ли программа из-под песочницы

Здравствуйте, товарищи. Возникла необходимость определить запущен ли определенный процесс из-под песочницы. Я пока решил отбросить побочные проверки по типу определения перемещался ли курсор в системе за n-е время или сравнивать время вызова системных функций (которое в песочнице должно быть в разы дольше), хочу попытаться точно определить. Ситуация следующая: имеется процесс, есть хэндл процесса. Погуглив, узнал что можно определить песочницу по наличию определенного .dll в памяти процесса. С dllcall и win api функциями я не сталкивался ещё, потому обращаюсь к вам. Дальше идут предположения. Вроде бы GetModuleHandle сможет мне помочь в этом, однако если я правильно понял он только для родительского процесса работает - внешний нельзя. В таком случае можно попытаться получить список всех модулей в целевом процессе после чего какой-нибудь регуляркой найти нужное имя, для этого есть EnumProcessModulesEx, однако мне непонятны тонкости с 32 и 64 битными приложениями и модулями и все тот же dllcall. Искомый модуль: SbieDll.dll. Если мой вопрос выходит за рамки AHK то прошу сообщить куда мне обратиться, а то без объяснений мне будет трудно. Возможно вы знаете другой способ определить запущен ли процесс из-под песочницы имея его хэндл буду рад узнать. Рассчитываю на вашу помочь.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

2

Re: AHK: Запущена ли программа из-под песочницы

Собираетесь обмануть антивирус? Запрещается обсуждение способов осуществления любых форм компьютерного вредительства.

3

Re: AHK: Запущена ли программа из-под песочницы

Вы сейчас мыслите как большинство антивирусов: не знаю что делает скрипт значит вредоносный. Мне нужно чтобы скрипт не выполнял свои функции в процессе который запущен из-под песочницы.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

4

Re: AHK: Запущена ли программа из-под песочницы

EnumProcessModules(Ex) можно применить, если битность исследуемого процесса не превышает битности вызывающего. Вы используете AHK 32-bit, какая битность нужного процесса?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Запущена ли программа из-под песочницы

belyankin12 пишет:

для этого есть EnumProcessModulesEx, однако мне непонятны тонкости с 32 и 64 битными приложениями и модулями и все тот же dllcall.

Тема-то уже есть про это: AHK: список модулей процесса. Или именно там что-то не понятно?

6

Re: AHK: Запущена ли программа из-под песочницы

Так там вроде тоже с битностями проблема. Список модулей можно получить из PEB, а его получение вроде уже сделано для любых битностей.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Запущена ли программа из-под песочницы

Почему тоже? Топикстартер ещё и DllCall не использовал. Но если можно через PEB, то можно и через PEB.

8 (изменено: belyankin12, 2019-03-23 21:25:26)

Re: AHK: Запущена ли программа из-под песочницы

YMP, не нашел эту тему, сейчас посмотрю. teadrinker, 32 битное приложение, я буду рад если вы поможете мне с этим универсальным методом.

UPD: посмотрел, определяет модули на ура. Однако вопрос: он определит модуль 64-битной песочницы (ведь я полагаю бывают 32 и 64 битные версии песочниц)? Или это на практике придется проверять. Мой скрипт 32 бит.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

9

Re: AHK: Запущена ли программа из-под песочницы

Процесс может загрузить модуль только соответствующей битности.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Запущена ли программа из-под песочницы

teadrinker, понял, тогда решение от YMP вполне мне подойдет. Завтра буду пытаться узнавать из-под песка или нет запущен процесс. Спасибо всем!

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.