MS Windows Only: нужен способ создания частной файловой системы в рамках процесса - PullRequest
0 голосов
/ 30 января 2020

У меня есть приложение, которое запускает приложения с интенсивным использованием CPU / GPU как дочерние процессы. В каждом дочернем процессе я ищу способ создания частной файловой системы процесса (зашифрованной, скрытой и т. Д. c ...), к которой имеет доступ только этот процесс. Эта файловая система может находиться на локальном диске, пути UN C или подключенном диске. Только процесс, который создал эту частную файловую систему (подпапку), может иметь к ней доступ. Любой другой процесс, включая пользователей и администраторов, не должен иметь возможности «видеть» содержимое этой частной файловой системы. Эта файловая система может основываться на диске или памяти (если к файловой системе на основе памяти можно обращаться через подключенный диск)

Возможные решения:

  1. Приват-процесс RAMDISK. (невидимо или недоступно для зарегистрированных пользователей)
  2. Зашифрованная папка, которой можно управлять с помощью уникальных (случайных) паролей, которые поддерживаются процессом. Опять же, пользователям и администраторам никогда не следует разрешать доступ к содержимому этой файловой системы.
  3. Пользовательский драйвер устройства?

Примечание. «Файловая система» может быть реальной файловой системой на диске. или папка, которая находится в существующей иерархии дисков.

Любая помощь будет высоко ценится.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

В проекте, который я работал, была «файловая система», в которой в основном была карта хэшей: [path, fileInMemory].

В нашем случае файловая система была stati c, хранящейся между несколькими файлами и зашифрованы.

При инициализации программы она была расшифрована, и карта была заполнена. В нашем случае все «виртуальные пути», которые мы использовали, хотели бы получить доступ к «Диску D:», например, «d: \ file», это потому, что мы поддерживали использование незашифрованных файлов в реальном файле fs и их использование (более простая разработка)

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

Использовать MinHook или Detour.

Вы можете использовать мой метод (или что-то подобное) с обходной или минхук, перехватывающий api-файл WIN32, таким образом, вы можете перенаправлять / делать с файлами все, что хотите, сохранять их в памяти и т. д. c ... или проще, пусть они находятся в любой папке, которую вы хотите, но шифруете и дешифруете их, когда вызывается API.

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

0 голосов
/ 02 февраля 2020

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

Скрыто Папки

Проблема здесь в том, что все, что вы скрываете, используя обычные средства, я могу в значительной степени гарантировать найти. Это даже не особенно сложный процесс на windows. Любое приложение, которое я запускаю на своем P C, может быть исследовано с помощью Process Monitor - эта программа Microsoft позволит вам увидеть каждый файл, к которому процесс обращается, читает или записывает. Он поразительно прост в использовании (учитывая, как мало он используется обычным пользователем) и будет go до уровня детализации, показывающего точный доступ к файлам или любые используемые ключи реестра.

Шифрование / Пароль защита

Это более надежное решение, чем сокрытие вещей, но это не гарантия. Старая поговорка «любое клиентское программное обеспечение находится в руках врага» актуальна здесь. Если вы планируете читать из зашифрованной папки, вам понадобится какой-то способ расшифровки, аналогично, если он защищен паролем, вам понадобится какой-то способ присвоения файловой системе пароля. Если вы планируете делать это на моем компьютере, я вижу все, что вы делаете. Скорее всего, потребуется какое-то программное обеспечение, например ollyDbg , которое позволит мне увидеть инструкции, которые вы выполняете на моей машине, и я лично считаю, что гораздо больше усилий , чем при использовании монитора процесса. , Это не вопрос простого присоединения к процессу, а затем просмотра списка всех файлов для чтения / записи - хотя ollyDbg делает это так же просто. Есть списки строк, доступные для поиска операционные коды, все, что кому-то нужно для доступа к вашим зашифрованным / защищенным паролем данным.

Запутывание

Вы не упомянули об этом, но это стоит посмотреть. Запутывание в основном означает сокрытие ваших данных в виде плоскости. Если вы запутываете свой код , который выполняет шифрование / обработку пароля, тогда все становится намного сложнее. Без дополнительных данных о том, что вы делаете, трудно предложить конкретные сведения о том, как запутывать, - на самом деле, если вы особенно параноик, вы не захотите следовать моим предложениям, поскольку это будет руководство о том, как ваш код обфусцируется для кого-либо найти в гугле.

...