Comments 17
Насколько Я знаю, AES — это алгоритм симметричного шифрования. Может всё-таки где-то в исходниках хранится ключ?
0
Использую для выставления зачетов студентам программу MyTestXPro. Для студентов создаю один *.exe файл теста, при запуске которого студенту предъявляется 20-30 вопросов из 400-500 общего числа заданий. Причем сам *.exe файл автором программы зашифрован.
Однако при запуске *.exe файла ВСЕ задания с ответами расшифровываются в памяти, откуда их студенты успешно копируют и легко проходят тест.
Не порекомендуете что-нибудь похожее на обфускатор для решения этой проблемы.
Однако при запуске *.exe файла ВСЕ задания с ответами расшифровываются в памяти, откуда их студенты успешно копируют и легко проходят тест.
Не порекомендуете что-нибудь похожее на обфускатор для решения этой проблемы.
0
Думается, не обфускатор нужен, а другой подход. Например, клиент-сервер.
0
Поставлена задача выдавать тесты студентам на дом, для дистанционного обучения. После прохождения теста студенты присылали зашифрованные файлы с оценками. Так было некоторое время до вскрытия программы.
0
Написать разработчику о проблеме. Там у них на форуме 200+ страниц обсуждения и разработчик активен.
0
С разработчиком переписывался. Предложил не расшифровывать ВСЕ задания и ответы к ним в памяти. Но пока решения нет. Разработчик использует одну из стандартных защит программы.
0
Спасибо автору за статью, разбор вполне качественный.
Предлагаю составлять задание не как тест+ответ, а как конечный автомат. Это дает возможность сделать задания со сложной логикой ответа.
Обычный тест — линеен, на вопрос выбирается один из вариантов ответа, иногда можно выбрать несколько одновременно. Это нельзя назвать хорошим подходом.
Древовидный тест позволял бы открывать дополнительные варианты по мере продвижения вглубь дерева, и выполнять «поиск в возвратами».
Еще более общий конечно-автоматный тест позволяет двигаться от одного состояния к другому и превращать тест в квест по уточнению ответа, с начислением баллов за каждый переход в правильном направлении (или штрафом за неправильные).
При этом каждый переход может расшифровывать свое следующее состояние и для того чтобы извлечь все ответы теста (или хотя бы правильные) придется написать виртуальную машину, которая будет снапшотить состояние на каждом шаге и делать все возможные переходы.
Если сделать процедуру расшифровывания достаточно длительной (увеличением размера ключа, например), и с зависимостью от предыдущих шагов, то расшифровывать весь пакет заданий студент будет гораздо дольше, чем если бы готовился обычным способом. Подобрав время и алгоритмы мы могли бы сделать расшифровку более длительной, чем время всех студентов потраченное на обычную подготовку, что делает атаку нецелесообразной. И это я еще не посчитал время и требуемую квалификацию на написание расшифрощика, который будет обходить конечные автоматы.
Предлагаю составлять задание не как тест+ответ, а как конечный автомат. Это дает возможность сделать задания со сложной логикой ответа.
Обычный тест — линеен, на вопрос выбирается один из вариантов ответа, иногда можно выбрать несколько одновременно. Это нельзя назвать хорошим подходом.
Древовидный тест позволял бы открывать дополнительные варианты по мере продвижения вглубь дерева, и выполнять «поиск в возвратами».
Еще более общий конечно-автоматный тест позволяет двигаться от одного состояния к другому и превращать тест в квест по уточнению ответа, с начислением баллов за каждый переход в правильном направлении (или штрафом за неправильные).
При этом каждый переход может расшифровывать свое следующее состояние и для того чтобы извлечь все ответы теста (или хотя бы правильные) придется написать виртуальную машину, которая будет снапшотить состояние на каждом шаге и делать все возможные переходы.
Если сделать процедуру расшифровывания достаточно длительной (увеличением размера ключа, например), и с зависимостью от предыдущих шагов, то расшифровывать весь пакет заданий студент будет гораздо дольше, чем если бы готовился обычным способом. Подобрав время и алгоритмы мы могли бы сделать расшифровку более длительной, чем время всех студентов потраченное на обычную подготовку, что делает атаку нецелесообразной. И это я еще не посчитал время и требуемую квалификацию на написание расшифрощика, который будет обходить конечные автоматы.
0
Стоит отметить, что у вас сообразительные студенты
0
Можно попробовать enigmaprotector.com/en/about.html (не реклама)
0
Спасибо всем, кто откликнулся.
1. Заметьте, автор-хакер не откликнулся.
2. NeoLab. Стал противником «сообразительных» не в той области студентов.
3. Rigidus. Если бы Вы написали такую оболочку для составления тестов, то я купил бы ее, а не MyTestXPro.
4. Пока выхожу из положения генерацией из оболочки MyTestXPro «бумажных» вариантов теста, которые раздаю студентам: каждому свой вариант теста. Недостаток — проверка ответов вручную.
1. Заметьте, автор-хакер не откликнулся.
2. NeoLab. Стал противником «сообразительных» не в той области студентов.
3. Rigidus. Если бы Вы написали такую оболочку для составления тестов, то я купил бы ее, а не MyTestXPro.
4. Пока выхожу из положения генерацией из оболочки MyTestXPro «бумажных» вариантов теста, которые раздаю студентам: каждому свой вариант теста. Недостаток — проверка ответов вручную.
0
Как вариант — запихните его на любой VDS.
При аренде с почасовой оплатой затраты небольшие, вплоть до нулевых, на амазоне или у китайцев например.
При аренде с почасовой оплатой затраты небольшие, вплоть до нулевых, на амазоне или у китайцев например.
0
Простите, но без погружения в тему данной программы трудно что-либо дельное посоветовать… Можно предлагать различные варианты вплоть до разработки своего защищенного решения, но это равносильно вождению вилами по воде.
0
Энигма не шифрует память. Я не так давно «распаковал» файлы, запакованные в enigma-контейнер, простым дампом памяти и восстановлением их из известной структуры в программе.
0
Хороший пример бесполезности .Net для написания шароварных программ. Все может быть легко взломано и украдено.
0
Sign up to leave a comment.
Исследование защиты программы TurboConf