Есть ли способ перенаправить доступ к файловой системе DLL (только чтение) к файлу / каталогу, отображенному в памяти? - PullRequest
0 голосов
/ 09 апреля 2019

Во-первых: возможно, это проблема XY: что я действительно пытаюсь решить, так это схему защиты бедняков от шпионажа в нашем исходном коде. Мы используем HALCON (библиотека обработки изображений) в проекте C #; Дело в том, что части HALCON хранятся в виде простого источника и компилируются / собираются DLL только в начале программы, когда вы указываете, где находится источник. Мое намерение состоит в том, чтобы поместить источник в зашифрованном виде на диск и загрузить / расшифровать его в часть памяти при запуске программы до инициализации DLL. Идея состоит в том, чтобы запретить доступ к источнику через файловую систему (подключение к USB-накопителю и копирование) - я знаю, что это довольно слабая форма защиты, если я упускаю какой-то очевидный и превосходный способ, пожалуйста, сообщите.

Я искал RAM-диски, но они не помогают в защите, так как приложение работает круглосуточно. Файлы на основе памяти были бы идеальными, потому что они исчезают, когда приложение закрывается, и должны быть более или менее невидимыми для внешнего мира, но вместо этого я должен дать DLL простой путь к файлу DOS (например, «C: / HALCON / ourproject») файлового потока / дескриптора, поэтому остается вопрос, можно ли (в Windows!) наложить файловую систему на процесс с переходной частью, находящейся в ОЗУ.

Edit: Я использую интерфейс HDevelop, то есть процедуры HALCON вызываются через объекты HDevProcedure, которые вызывают для процедуры интерпретатор HALCON.

1 Ответ

0 голосов
/ 10 апреля 2019

Вместо непосредственного использования HDevelop вы можете преобразовать свои процедуры в код C #: Файл -> Экспортировать или экспортировать проект библиотеки:

enter image description here

Ваш код будетБыть скомпилированным вместе с остальным проектом, но вы должны знать, что декомпиляция программ на C # очень проста.

...