Pull to refresh

Как я не сдал тест

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

.


С чего все начиналось


Вся группа знала, что тест будет очень большим 1600 вопросов. Всем ( и мне тоже) хотелось набрать высокие баллы и получить хорошие оценки.
Вооружившись джентельментским набором флешкой, коробочкой «Раффаэлло» отправился на охоту в компьютерный класс.
Проявив все свое мастерство общения с девушками и потратив 30 минут времени все необходимое было у меня в кармане.

«Все необходимое»


На флешке оказались:
папка с программой SunRav TestOfficePro
папка «Материалы преподавателей»

В папке с программой SunRav TestOfficePro были компоненты tTester ( программа для запуска теста), tMaker (редактирование базы вопросов), tAdmin (статистика).
В папке «Материалы преподавателей» Списки групп и база с вопросами ( читай тот самый заветный файл).

Разбор


Открыть tAdmin не составило ни малейшего труда, пароль подобрал за 2 секунды 123
К сожалению, ничего нужного для себя я не нашел. Идем дальше…
tTester Сама программа. Пароль тот же 123 ничего нужного…
tMaker программа для редактирования тестов. Посмотрим.

Открываем нужный тест и… Первое препятствие. Наш пароль не подходит. Файл рсширения .SRT
Поискав немного на форумах убеждаемся, что это файл не субтитров.

Позже был найден измененный tMaker который сразу отображал пароль. На удивление пароль оказался 09876543211

Открываем базу с тестами и убеждаемся в огромном количестве вопросов ( 1600).

На этом все и закончилось.

Было несколько вариантов.
1. Выучить все (как вариант даже не рассматривался)
2. Изменить базу тестов
3.Сделать все ответы правильными под номером 1

Был еще один вариант
Не вижу смысла выкладывать исходники. Кто захочет — создаст свою программу, моей задачей было рассказать как можно обойти конкретный тест. Патчить ничего не нужно, да и не выйдет это, как правило заменить файл программы вам никто не даст. Просто создаётся своя программа, которая незаметно ни для кого работает.
Список API:

SendMessage — использовал для запроса текста.
FindWindow — для поиска главного окна программы тестирования FindWindow(0, «tTester — Информационная безопасность»). Возвращает ID окна.
GetWindow — возвращает, в зависимости от параметров (GW_HWNDNEXT, GW_CHILD) ID следующего окна на том же уровне либо ID дочернего окна.
GetClassName — позволяет определить класс окна по его ID
PostMessage — посылать в окно событие «клик мышки»
GetKeyState — функция для определения нажатой кнопки мыши.

Программа запущена, кликаю правой кнопкой мышки, начинает работать моя программа — получаем ID главного окна программы функцией FindWindow(0, «tTester — Информационная безопасность»), от него глядя в Microsoft Spy++, смотрим, как далеко от него находится окно с вопросом. С помощью функции GetWindow и различных параметров получаем ID окна с вопросом. Используя этот ID получаем текст вопроса функцией SendMessage с параметром WM_GETTEXT. Далее смотрел в текстовом файле правильные ответы и перебирая окона, искал нужный ответ и посылал «клик мышки» в checkbox напротив нужного ответа функцией PostMessage. Всё.
Нужный ответ отметился автоматически по клику на правую кнопку мыши :) Преподаватель не видит. Тест сдан на «отлично».
Взято с форума xakep.ru


Последний идеально подходил. Правда совершенно не зная ни одного языка программирования ничего не вышло.
А тест я завалил.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.