Исследование программы тестирования TestMaker версии 2.42

 27 июня 2016, понедельник Владимир  4683




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

И вот, придя домой, я стал знакомиться с этой программой. Передо мной оказался программный комплекс под названием TestMaker version 2.42. Автором является Р. И. Мирсанов и, согласно информации из пункта меню О программе, она написана в 1999-2002 годах. В комплекте два основных файла:

1. TInfo.exe – оболочка для прохождения тестирования.

Исследование программы тестирования TestMaker версии 2.42

2. TMaker.exe – оболочка для создания и редактирования тестов.

Исследование программы тестирования TestMaker версии 2.42

TestMaker обладает следующими возможностями:

  • создание теста с неограниченным количеством вопросов;
  • перемешивание вариантов ответа;
  • ограничение времени тестирования;
  • установка пароля на редактирование теста;
  • установка пароля на проведение тестирования;
  • установка пароля на выход из тестирования;
  • запись результатов теста в файл;
  • привязка теста к характеристикам компьютера;
  • и т.п.

Автор хорошо постарался при написании этого комплекса. Теперь мне требовалось каким-нибудь способом извлечь правильные ответы из тестирования чтобы впоследствии их зазубрить.

Первое, что я сделал, это попытался открыть тест на редактирование при помощи конструктора TMaker.exe… но увы, тест оказался запароленным. Стандартные пароли типа qwerty или 111 не подошли.

Исследование программы тестирования TestMaker версии 2.42

Вторым действием я зашел в папку Tests, где хранятся файлы с тестированием, и открыл нужный мне тест на просмотр. Увы, и это мне не помогло – тест закодирован.

Исследование программы тестирования TestMaker версии 2.42

Что ж… остается только «отучить» программу запрашивать пароль. При помощи утилиты PEiD v0.95 выяснил, что программа была упакована пакером ASPack 2.12.

Исследование программы тестирования TestMaker версии 2.42

Упакованный размер программы равен 459776 байт. Далее при помощи утилиты AspackDie v 1.41 я распаковал TMaker.exe и получил файл unpack.exe, который увеличился в размере – 1519616 байт. Это реальный размер неупакованной программы. Программа продолжает корректно запускаться и работать после распаковки.

Исследование программы тестирования TestMaker версии 2.42

Исследование программы тестирования TestMaker версии 2.42

Затем unpack.exe я вновь прогнал через PEiD и получил уже другую картину.

Исследование программы тестирования TestMaker версии 2.42

Итак, программа написана на Borland Delphi v4.0 – 5.0. Теперь такую программу можно отлаживать в любом отладчике. Я использую OllyDbg с установленными плагинами.

Исследование программы тестирования TestMaker версии 2.42

После анализа было выяснено, что перед открытием теста выполняются некоторые проверки и только после успешного их прохождения тест выдается на редактирование! К проверкам относятся: проверка контрольной суммы, проверка характеристик компьютера, проверка ключевой дискеты, проверка пароля. Проверки начинаются с адреса 004CF95B, а проверка пароля с 004D0A19.

004D0A19 BA9C234D00 mov edx, $004D239C
004D0A1E A13C695000 mov eax, dword ptr [$0050693C]
004D0A23 8B00 mov eax, [eax]
004D0A25 E83203F8FF call 00450D5C
004D0A2A E94B170000 jmp 004D217A
004D0A2F 6A64 push $64

Как видно из кода, после вывода сообщения о неверном пароле осуществляется переход по адресу 004D217A. Этот адрес выхода из процедуры редактирования теста! Его нужно подменить на адрес открытия теста. Его найти несложно. Он располагается сразу после всех проверок.

Исследование программы тестирования TestMaker версии 2.42

Вот его адрес: 004D0D46. Остается только заменить в отладчике команду jmp 004D217A на jmp 004D0D46 и сохранить изменения в файл.

Исследование программы тестирования TestMaker версии 2.42

Теперь, несмотря на введенный пароль, после сообщения «Пароль неверен!» программа все равно откроет тест на редактирование. Кстати, перейдя на вкладку ПараметрыЗащита теста можно без труда узнать текущий пароль на тест! Надеюсь, разработчик все еще продолжает сопровождать эту замечательную программу для тестирования и исправит в дальнейшем все найденные уязвимости в новых версиях. Желаю ему успехов! Материал представлен исключительно в ознакомительных целях! Модифицированная версия программы намеренно не выкладывается для скачивания. Тест я сдал на четыре :-)

Скачать