Как взломать конструктор тестов

Обновлено: 28.04.2024

Пользователи, просматривающие топик: none

Где ссыль на скачивание? по одним описанием ломать неумеем.

Ну скачал, ну запустил, ну выбрал Бикрееву Анастасию, поле пароля оставил пустым, нажал ок, зашол, начал задавать вопросы, на них нужно давать ответы, в чом проблема-то? Тренируйся на здоровье


не в прикол в том что они сами парол поставили на базу данных с вопросами ! то есть кде мона ответы посматреть! Как мона её ломануть?

спасибо тепеерь у меня будут 5тёрки)))))

Он только работает с теми тестами которые родные а которые сами делают не хочет .

пишет Иденфикатор Adzlib не совпадает программным Ad tester! Возможно файл поврежден и не являеться файлом теста

спасибо тепеерь у меня будут 5тёрки)))))

Он только работает с теми тестами которые родные а которые сами делают не хочет .

пишет Иденфикатор Adzlib не совпадает программным Ad tester! Возможно файл поврежден и не являеться файлом теста

Внесённые мои изменения в тестер, кроме как на проверку ответа, ни на что не влияют. Если хочешь проверь: создай тест родной утилитой 'TestCreator.exe' свой тест и запусти его - всё будет Ok.

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

Вот я загрузил папку с темтами попробуй запусти любой по информатике и посмотри пожалуйста в чём там проблема!
ТЕСТЕР

Дело в том, что первый раз ты дал ссылку на 'ADTester' версии 2.8.1, а во второй на версию 2.88.4. Новый тестер использует другой формат, но для совместимости может читать старый.

Вот ссылка на поломанный 'ADTester 2.88.4'.

Вот я загрузил папку с темтами попробуй запусти любой по информатике и посмотри пожалуйста в чём там проблема!
ТЕСТЕР

Дело в том, что первый раз ты дал ссылку на 'ADTester' версии 2.8.1, а во второй на версию 2.88.4. Новый тестер использует другой формат, но для совместимости может читать старый.

Вот ссылка на поломанный 'ADTester 2.88.4'.

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



Попробуй вот этот файл: никаких чтений\записей в памяти не делает, но ответы ВСЕГДА правильные.

А в админке в статистике тоже проставляются правильные ответы, или там светятся реальные ответы тестируемого?

Кстати, хотелось бы узнать сколько времени ушло на модификацию тестера? (понятно, что это задачка из раздела CrackMe, но все же)


А в админке в статистике тоже проставляются правильные ответы, или там светятся реальные ответы тестируемого?

Не знаю, не проверял.


Кстати, хотелось бы узнать сколько времени ушло на модификацию тестера?

Немного: упакован upx-ом, написан на Delphi, защита от взлома отсутствует вообще.

Спасибо, учту, в следующий раз навешаю хоть какую-нибудь защиту ;)

Почитай Касперского - много полезного, в интернете его книги и статьи распрастранены, так что проблем с поиском не будет. У меня есть несколько его книг (к сожалению, так ни одной и не дочитал до конца), если надо могу скинуть.

1. TestCreator_u_c.exe - открывает запароленные тесты. После открытия теста, можно изменить пароль. Если вместо нового пароля ничего не вписывать, тест будет без пароля.

2. tester_u_c.exe - подправленный тестер. Версия 2.8.1.76. Принцип действия описан в седьмом посте.

fromRIDDER,программа tester_u_c,которую ты скинул почему-то нехочет открывать тесты.

Проверь версии, в архиве версия 2.8.1.76. Открой свойства файла "TestCreateor.exe" или запусти его, потом "О программе". Возможно у тебя тест, созданный более поздней версией программы. Скинь дистрибутив твоего тестера или тест, а можно и то и другое, только без хлеба [sm=ab.jpg].

Версия та, но как я понял, после установки основной программы на неё накладывается патч, после чего тестер не может читать тесты старого образца. А "TestCreator" создаёт только новые. Заплатка не ставит никакой защиты, а только не открывает старые тесты, так что если надо, то вот ссылка на пропатченную программу. Новые тесты открылись нормально, только на не понятном для меня языке - украинском ))).


Исключена подержка ооочень старых форматов. В остальном в тестере лишь исправлены баги. Почему не читает тесты - загадка =)

fromRIDDER> Думаю над структурой "транслируемых" тестов… Т.е. есть исходник теста и скомпиленый вариант. Первый - шифровать каким-нибудь DES или AES. Второй - исключает из себя вспомогательные данные исходника и "транслирует" ответы в подобие байт-кода. Виртуальной машине тестера скармливается ответ студена и байт-код, на выходе работы программы имеем количество заработанных баллов. На сервер поступает ответы студента, а не баллы, где они заново анализируются.
Т.о. проблема "вскрытия" исходника-теста отпадает (точнее пропорциональна сложности пароля создателя теста ;), а компилированный вариант можно преобразовать только в ущербное подобие исходника написав обратный транслятор.

Остается проблема декомпиляции тестера и "внедрения" твоего кода, но она уже не так эффективна, т.к. эффект проявляется только визуально, а на сервер идут необработаные данные.

На сервер поступает ответы студента, …

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

Остается проблема декомпиляции тестера и "внедрения" твоего кода, но она уже не так эффективна, т.к. эффект проявляется только визуально, а на сервер идут необработаные данные.

Для отображения проблем, которые могут возникнуть, нужно изучить программу-сервер, но сразу могу сказать, что можно использовать переполнение буфера. Вместо ответа посылается последовательность байтов …)))

Обучаясь в институте я, конечно, сдавал множество контрольных, проверочных, курсовых работ, экзаменов и зачётов. Но, одна форма проверки знаний была мной сильно нелюбима – это электронные тесты. Не буду здесь описывать плюсы и минусы этого типа проверки знаний, скажу лишь, что против этой формы я был очень сильно.

Таким образом, в один прекрасный день созрела идея как-то облегчить себе сдачу тестов – взломать, обойти или что-то подобное. В интернете по этому поводу информации не то, чтобы не было, её не было совсем, то есть вообще. Сфера электронных тестов не пользуется популярностью у хакеров и прочих взломщиков.

Задача нетривиальная, учитывая то, что создавать программы я умел, но вот каким-то образом вмешиваться в другие программы знаний не было. После изучения литературы стало понятно, что без API программирования тут не обойтись.

Попробую пояснить в картинках, каждая программа состоит из окон, есть главное окно программы, и куча дочерних окон, у которых, в свою очередь, тоже могут быть дочерние окна:

Вот так вот выглядит окно программы:


А вот так, упрощённо, выглядят окна в программе (помечены красным):


Есть так же, хорошая программа, называется Microsoft Spy++, входит в комплект среды разработки программного обеспечения Visual studio. Ей можно посмотреть в какой иерархии находятся эти окна, что они из себя представляют и прочее. Итак:


API программирование позволяет нам найти нужное окно, от него найти окно с вопросом и прочитать текст вопроса. Далее мы зачитываем наш текстовый файл с данными, находим в нём этот вопрос и зачитываем правильный вариант ответа. Далее, применяя опять же API функции, перебираем окна с ответами и сравниваем с тем, что мы зачитали в файле и, при совпадении, посылаем в окно с названием «&1(2,3,4)» событие «клик мышки».

Всё! Программа для сдачи тестов готова! Осталось только незаметно её запустить перед тестом, либо прописать её в автозагрузку. И ещё одно дополнение, прибегать к помощи программы очень удобно по клику на правую кнопку мышки.

Это всё замечательно работает, но что делать, когда файла с вопросами и ответами нет? Можно прибегнуть к небольшой хитрости. По завершению теста нам показывается информационное окно, сколько ошибок было допущено и оценка.
Вот такое окно:


Делаем программу, которая несколько раз в секунду при помощи API функций проверяет простую вещь: не появилось ли у нас в системе окна с названием «Результаты»? И при появлении такового, посылаем этому окну команду «Hide» — скрыть, а заодно показываем своё, заранее подготовленное, окно с нужным нам текстом. При клике на кнопку «ОК» нашего, заранее подготовленного окна, посылаем клик на кнопку «ОК» скрытого окна и закрываем своё. Всё!

Обучаясь в институте я, конечно, сдавал множество контрольных, проверочных, курсовых работ, экзаменов и зачётов. Но, одна форма проверки знаний была мной сильно нелюбима – это электронные тесты. Не буду здесь описывать плюсы и минусы этого типа проверки знаний, скажу лишь, что против этой формы я был очень сильно.

Таким образом, в один прекрасный день созрела идея как-то облегчить себе сдачу тестов – взломать, обойти или что-то подобное. В интернете по этому поводу информации не то, чтобы не было, её не было совсем, то есть вообще. Сфера электронных тестов не пользуется популярностью у хакеров и прочих взломщиков.

Задача нетривиальная, учитывая то, что создавать программы я умел, но вот каким-то образом вмешиваться в другие программы знаний не было. После изучения литературы стало понятно, что без API программирования тут не обойтись.

Попробую пояснить в картинках, каждая программа состоит из окон, есть главное окно программы, и куча дочерних окон, у которых, в свою очередь, тоже могут быть дочерние окна:

Вот так вот выглядит окно программы:


А вот так, упрощённо, выглядят окна в программе (помечены красным):


Есть так же, хорошая программа, называется Microsoft Spy++, входит в комплект среды разработки программного обеспечения Visual studio. Ей можно посмотреть в какой иерархии находятся эти окна, что они из себя представляют и прочее. Итак:


API программирование позволяет нам найти нужное окно, от него найти окно с вопросом и прочитать текст вопроса. Далее мы зачитываем наш текстовый файл с данными, находим в нём этот вопрос и зачитываем правильный вариант ответа. Далее, применяя опять же API функции, перебираем окна с ответами и сравниваем с тем, что мы зачитали в файле и, при совпадении, посылаем в окно с названием «&1(2,3,4)» событие «клик мышки».

Всё! Программа для сдачи тестов готова! Осталось только незаметно её запустить перед тестом, либо прописать её в автозагрузку. И ещё одно дополнение, прибегать к помощи программы очень удобно по клику на правую кнопку мышки.

Это всё замечательно работает, но что делать, когда файла с вопросами и ответами нет? Можно прибегнуть к небольшой хитрости. По завершению теста нам показывается информационное окно, сколько ошибок было допущено и оценка.
Вот такое окно:


Делаем программу, которая несколько раз в секунду при помощи API функций проверяет простую вещь: не появилось ли у нас в системе окна с названием «Результаты»? И при появлении такового, посылаем этому окну команду «Hide» — скрыть, а заодно показываем своё, заранее подготовленное, окно с нужным нам текстом. При клике на кнопку «ОК» нашего, заранее подготовленного окна, посылаем клик на кнопку «ОК» скрытого окна и закрываем своё. Всё!

Здравствуй уважаемый %habrauser%. В данной статье я поделюсь с вами историей о том как я взломал приложение. Взломать сам EXE-шник приложения не получилось, но желаемый результат был получен другим способом. Чтобы сохранить конфиденциальность буду опускать некоторые моменты, сильно обрезать скрины. И так

image


Этот неживой и баснословный мир

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

Начало

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

Первые шаги — экспериментируем

Устанавливаем приложение запускаем его, чтобы посмотреть, что оно из себя представляет.
Открывается такой сплэш экран, и приложение на несколько секунд зависает (данное зависание не спроста).

Открывается сплэш экран, а за ним, через несколько секунд открывается такое окошко:

image

Отсюда делаем вывод, что приложение активируется через интернет и в ее исходниках не зашиты какие-либо ключи активации или алгоритмы расшифровки.

Лезу в папку уставленной программы:

image

    Arial Narrow.ttf – шрифт

image

В итоге передо мной открылась такая картина

image

image

Попробуем деобфусцировать и получаем такой результат:

Тогда я, решил попробовать хотя бы открыть файл базы данных DataSource.data, в SQLite.

image

От нас требуется пароль от базы данных.

Разочарованный неудачей я уже сдавался, взлом я оставил на потом на лучшие времена. Но из головы никак не уходила мысль о том, что я что-то пропустил.

Уважаемый вы здоровы?

image

image

Нажимаем «Compile», сохраняем файл, заменяем с оригинальным и наконец запускаем приложение.

Выйдет такое окно:

image

Стоит отдать должное разработчику приложения, он позаботился о защите своего приложения. Он защитил БД, обфусцировал приложение, содержание data.dat файла тоже зашифровано, но о проверке хеша используемой библиотеки он позабыл.

P.S.: Вред организации, взлом приложения не произвел. К тому времени, пока удалось взломать приложение, другу оно уже не было надобным. Активированная копия приложения была только у меня и третьим лицам передано не было. В связи с ненадобностью приложения у себя я тоже её удалил.

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

WARNING

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

Отладчики

Отладка приложения — это неотъемлемая часть процесса исследования, инструмент, который всегда под рукой у реверсера. В современном мире отладчик должен поддерживать обе интеловские архитектуры — x64 и x86, из этого мы и будем исходить.

Также у нас должна быть возможность отлаживать код, который работает в режиме ядра. Такая нужда периодически возникает, особенно если ты намерен искать zeroday-уязвимости в ядре ОС или реверсить драйверы вирусов. Основных претендентов два: x64dbg и WinDbg. Первый отладчик работает в режиме user mode, второй может отлаживать код в режиме kernel mode.

x64dbg

Этот современный отладчик с весьма приятным интерфейсом — достойный преемник OllyDbg. Поддерживает обе архитектуры — x64 и x86, обладает массой полезнейших плагинов.

x64dbg
Встроенный декомпилятор

Да, безусловно, он не лишен недостатков — в нем до сих пор есть несколько неприятных багов. Однако он активно поддерживается и развивается. Разумеется, из-за того что отладчик работает в пользовательском режиме, он остается уязвимым для многих техник обнаружения отладки. Но этот минус отчасти компенсируется разнообразием плагинов для сокрытия отладчика.

У x64dbg есть встроенный декомпилятор, поддерживается отображение кода в виде графа, можно делать точки останова на чтение, запись, выполнение и доступ, имеется встроенная утилита реконструкции импортов (как x64, так и x86). В общем, что говорить — этот отладчик использовался в узких кругах для того, чтобы победить небезызвестную игровую защиту Denuvo, и успешно справляется с этой задачей!

Почему не OllyDbg

В подборку не попал отладчик OllyDbg — по той причине, что он уже серьезно устарел. Он не поддерживает ни современные ОС, ни архитектуру x64. На официальном сайте приложения был анонс 64-битной версии и даже сообщалось о прогрессе в ее разработке, но сам сайт обновлялся в последний раз в 2014 году. Безусловно, с OllyDbg связана целая эпоха, но, по всей видимости, она прошла. Да и отладчиков kernel mode тоже поубавилось — разработчики забросили Syser Kernel Debugger, а он в свое время был преемником SoftICE.

WinDbg

Если нужно отлаживать ядро или драйвер, то WinDbg нет равных. Этот отладчик поддерживает сама Microsoft, и он входит в состав Windows Driver Kit (WDK). На данный момент это самое актуальное и мощное средство отладки кода ядра. Здесь нет такого приятного интерфейса, как в x64dbg, но и выбора у нас немного — другие отладчики не работают в kernel mode.

WinDbg поддерживает удаленную отладку и умеет скачивать отладочные символы напрямую с серверов Microsoft. Чтобы быстрее настроить его для отладки ядра ОС внутри виртуальных машин, существует надстройка VirtualKD. Безусловно, начинать путь реверсера с WinDbg строго противопоказано, но, когда наберешься опыта и начнешь пробовать разные интересные вещи, он становится необходимостью.

Именно в WinDbg можно запросто посмотреть, как выглядят те или иные системные структуры, и легко дизассемблировать функции NTAPI. Конечно, им можно отлаживать и «обычные» приложения, но лично я предпочитаю распаковывать столь могучий инструмент только при крайней необходимости! 🙂

Дизассемблеры

Сложно представить себе реверс без инструментов статического анализа кода. На сегодняшний день дела с дизассемблерами обстоят немногим лучше, чем с отладчиками, но все-таки можно выделить фаворитов в этой области. Признанный стандарт антивирусных лабораторий — это дизассемблер IDA Pro. Второе место по востребованности занимает фреймворк для реверс-инжиниринга Radare2 (хотя многие считают, что Radare2 не уступает IDA).

IDA Disassembler

Существует две версии IDA — платная (Pro) и бесплатная (Starter). Бесплатная версия урезана по количеству поддерживаемых архитектур — она понимает только x86, кроме того, она не поддерживает плагины. Платная версия лишена подобных ограничений: она поддерживает внушительное количество архитектур процессоров и позволяет подключать расширения.

В IDA есть встроенный отладчик, весьма простенький по набору функций, но к его самобытному интерфейсу придется приноровиться. Также IDA может быть укомплектован дополнением Hex-Rays — декомпилятором исходного кода приложения в код на C. Это полезнейшее дополнение, которое значительно ускоряет анализ программы.

В целом IDA — мощнейший и прекрасно отполированный инструмент, который развивался много лет. Жаль только, что профессиональная версия стоит в районе 500–1000 долларов в зависимости от вида лицензии и кому попало не продается. Кто попало в результате выкручивается как может. 🙂

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Читайте также: