Снимаем пароль с тестов MyTestXPro

Год назад в своей старой статье я рассматривал процесс открытия защищенных паролем тестов MyTestX, а также процесс получения .mtf-файлов из .exe-файлов автономных тестов.
Прогресс не стоит на месте, и в последнее время все чаще встречаются просьбы открытия запароленных .mtx-файлов и их извлечения. Для справки: .mtf-файлы создаются в программе MyTestX (последняя версия 10.2.0.3 от 31.08.2012), .mtx-файлы создаются в программе MyTestXPro (последняя версия 11.0.0.37 от 30.08.2015), то есть MyTestX давно не обновляется, а MyTestXPro является платной программой и имеет свой, отличный от бесплатной версии, формат файлов. Таким образом, процесс, который я описывал в своей старой статье, не подходит для MyTestXPro. Давайте разберемся, что с этим делать.

Снимаем пароль с тестов MyTestX (НЕ PRO-версия!, .mtf)

В этот раз я постараюсь минимизировать количество рассуждений и ассемблерных листингов, дам только краткое описание идеи. Начнем с извлечения тестов из автономных файлов. Тест содержится в ресурсах .exe-файла, в RCData->TEST, в этом можно убедиться, например, с помощью CFF Explorer. Вот, как это выглядит на примере сферического теста в вакууме:

cff-res

Но не спешите радоваться, тест хранится в зашифрованном виде. В этом можно убедиться, например, с помощью утилиты ent. Если сравнить оригинальный .mtx-файл и файл с данными извлеченными из ресурсов (RCData->TEST) автономного теста, то мы увидим, что энтропия файлов практически не отличается, однако значения распределения хи-квадрат отличаются более чем в 5 раз.

ent

Что это значит? Это значит, что, скорее всего, .mtx-файл просто сжат, а ресурс сжат и зашифрован. Почему? Можно прочитать тут. Я пробовал проанализировать, какой алгоритм шифрования был применен, но, по всей видимости, ответственный за процесс дешифровки код был виртуализован средствами VMProtect.

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

Соответственно, можно извлечь из памяти расшифрованный тест, таким образом мы получим оригинальный .mtx-файл.

Теперь разберемся с открытием защищенных паролем тестов в редакторе MyTestEditor. Все довольно просто. Каждый тест, после того как его содержимое будет расшифровано и/или распаковано, представлен в памяти программы несколькими классами. Один из классов, который отвечает за информацию и настройки теста, называется TTest, он обладает методом LoadFromStream, в этом методе заполняются поля класса, в том числе после FPasswordEdit, именно в нем хранится MD5 пароля, который запрашивается при открытии теста в редакторе.

ttest

Если это поле не заполнять, то пароль не будет запрошен, то есть достаточно тем или иным образом изменить этот фрагмент кода в памяти. Почему в памяти? Редактор защищен навесным протектором VMProtect, который проверяет целостность файла при запуске, а возня с протектором - лишнее и абсолютно ненужное занятие в данном случае.

Вот и все. Чтобы не делать вышеописанные процедуры руками - я написал простую утилиту на C#, которая умеет извлекать .mtx-файл из памяти автономного теста и должным образом править память MyTestEditor, чтобы он не запрашивал пароль при открытии защищенных тестов.

mytestxhelper

Как пользоваться для извлечения .mtx-файла из автономного теста (.exe-файла):

Этот вариант срабатывает не для всех версий:
1. Запускаете тест.
2. Запускаете утилиту.
3. В списке процессов слева находите имя процесса теста (совпадает с именем файла), кликаете по нему.
4. Справа выбираете MyTestStudent.
5. В Dump Path указываете путь, куда сохранить файл с тестом.
6. Нажимаете Dump Test, при успешном извлечении появится окно с текстом OK.
7. По указанному в Dump Path пути находите файл с тестом.

Этот вариант обычно срабатывает, но метод извлечения теста довольно специфичен и нестабилен:
1. Запускаете утилиту.
2. Справа выбираете MyTestStudent.
3. В EXE Path Указываете путь к автономному тесту (.exe-файлу).
4. В Dump Path указываете путь, куда сохранить файл с тестом.
5. Нажимаете Dump Test, при успешном извлечении появится окно с текстом OK.
6. По указанному в Dump Path пути находите файл с тестом.

Как пользоваться для открытия защищенных паролем .mtx-файлов в MyTestEditor:
1. Запускаете MyTestEditor.
2. Запускаете утилиту.
3. В списке процессов слева находите имя процесса редактора - MyTestEditor, кликаете по нему.
4. Справа выбираете MyTestEditor.
5. Нажимаете Patch, при успешной правке кода появится окно с текстом OK.
6. Открываете любой защищенный паролем тест в MyTestEditor, пароль не будет запрошен.

Утилита актуальна для MyTestXPro версии 11.0.0.37, но, в случае с извлечением .mtx-файлов, может подойти и для более старых версий.

Для работы необходим .NET Framework 2.0.
Скачать утилиту: MyTestXProHelper
Скачать MyTestXPro 11.0.0.37: sendspace, mega.nz

P.S.: d_x провел ревизию некоторых своих продуктов и обновил Proxy Checker Lite и StepFucker. Hail Assembly Language!

Снимаем пароль с тестов MyTestXPro: 101 комментарий

  1. Спасибо за статью. Удивило то, как быстро по конечному представлению вы определили в какую сторону нужно копать.

    //Было бы очень круто убрать из комментариев требование ввода почты

      1. получается тогда никак его не вынуть? [email protected] блин:(( труба

      1. Эту статью я видел, но я имел ввиду вытащить из памяти программы файл теста, тоесть тест розданый по локалке с сервера и можно ли вытащить из памяти клиента (MytestStudent 10.2) тест и сохранить его для дальнейшего открытия в Едиторе

        1. Такой у меня нет. Если тест раздается по сети, то можно просто обратиться к серверу за тестом, а не из памяти вытаскивать.

        2. А как можно обратится к серверу за файлом теста?? Мне бы желательно чтоб это было как можно меньше заметно на сервере. Буду очень благодарен за помощь в данной ситуации

          1. Это будет заметно как запрос теста на стороне сервера. Берешь Wireshark, поднимаешь сервер, клиент, настраиваешь, смотришь, какой запрос шлет клиент при старте теста по сети. Повторяешь запрос программно.

  2. Здравствуйте!
    У меня версия MyTestEditor 3.0.9, я раз 10 перечитывал ваши статьи (https://kaimi.io/2014/06/opening-protected-mytestx-easyquizzy/comment-page-3/#comments), но так и не смог разобраться со старой версией.

    Помогите пожалуйста очень надо или подскажите как можно обойти запрос пароля на редактирование.
    Вот сам редактор тестов (https://drive.google.com/file/d/0B9tUHGd3MD56T2UxSGRMdUotb1U/view?usp=sharing)

    Заранее огромное спасибо.

    1. На официальном сайте есть утилиты по преобразованию тестов в более новый формат. Преобразуешь в формат совместимый с 10.2 и открываешь редактором из статьи.

  3. Прошу Вашей помощи.

    Оба варианта извлечения .mtx файла из .ехе при помощи MyTestXProHelper к сожалению не увенчались успехом:
    В первом способе выскакивает "ERROR" Can't find test data in memory;
    Во втором http://pixs.ru/showimage/Erarpng_3123071_19736946.png

    О программе MyTestXPro Версии 11.0.0.24 [PRO]
    Вот, собственно сам тест https://www.sendspace.com/file/drcpif
    Заранее благодарю.

      1. Kaimi, Очень признателен тебе за помощь.^_^

        А в чём собственно заключалась ошибка? И каким путем удалось её решить?
        █Ps: Хочу знать дабы не беспокоить в будущем.

  4. Добрый день!Есть файл теста сделанный в mytest, версии не знаю.следую инструкции, в обоих случаях пишет, что Can't find test data in memory. Пробовал и с запуском от админа, все тоже самое. Заранее спасибо!

  5. Прошу прощения. Тест был очень похож на mytestx или pro, но оказался veraltest, что было написано в свойствах. Что-то даже не подумал. А есть ли решения для последнего? Спасибо.

  6. Здравствуйте.
    Удалось "вытащить" из теста mtx файл, но возникла проблема открытия файла в MyTestEditor(выдает ошибку "Невозможно открыть тест"), перепробовал много версий MyTestXPro, но ни одна не работает. Исходный тест создан в MyTestXPro, версия 11.0.0.22, тест без пароля, просто открываешь и решаешь. Хотелось бы получить рекомендацию в следующих шагах. Спасибо.

  7. Здравствуйте.
    Пытался открыть защищенный паролем .mtx файл с помощью вашей утилиты,после выбора процесса MyTestEditor и нажатия кнопки "patch" выдает ошибку (failed to patch process),что делать?

  8. Админушка, можешь помочь с тестом http://rgho.st/8jwcrh9Mv
    Из exe вроде как вытащил тест в формате mtx, но редактор принимает ток mtf формат. Как мне быть?
    Если не сложно,помоги)

  9. Оказалось, надо было скачать новую версию. Но теперь другая проблема. На тесте пароль лежит. А когда пытаюсь патчить новую версию, пишет "Failed to patch process"

    1. Если речь о mtf, то исправленный редактор выложен, если о mtx, то надо бы убедиться, что патчится именно та версия, которая описана в статье

  10. Здравствуй Kaimi, раньше всегда открывал тесты вашей утилитой MyTestXProHelper, и она очень помогала, даже те тесты которые по дате не проходят и не открываются вовсе, ваша программа легко взламывала и доставала mtx, но сейчас как не взламываю не получается открыть, пишет "Невозможно открыть тест..." помогите пожалуйста, залил файл на rghost http://rgho.st/8Zgf8DMVF

  11. Здравствуйте!
    У меня версия MyTestXPro 11.0.0.44, нужно вытащить тест, но не один из вариантов извлечения к сожалению не работает. Пишет Can t find test data in memory. Это из-за более новой версии. Возможно ли что-то сделать?
    https://yadi.sk/d/1dbCvJ7K32vDNK

  12. Добрый вечер, пожалуйста помогите распаковать VERALTEST, есть ли какие нибудь программы или варианты, заранее спасибо

  13. Приветствую! Столкнулся с: Can't find test data in memory (выдает mytestxhelper) . На win10 и 7-ке все одинаково плохо. Режим совместимости или из-под админа не пашет . Файл из серии тестов, до этого все было тип-топ. Что можно сделать?
    https://mega.nz/#!MUgAiAQI!c34iiQh427YjOxo4BE9fLMkwEhX4TfjlFGT8CILBPsc

  14. Здравствуйте. Вопрос такой. Есть два теста. Прикреплю на них ссылки. Можно ли как-нибудь сделать так, чтоб вытащить на них ответы. Я пробовал сделать, так как у вас написано, ничего не получилось. Скажу сразу, что я "не шарю в компах" :-). Если есть есть возможность пообщаться, каким-либо другим способом, было бы отлично (почта, соц.сети и т.д.). Готов материально отблагодарить.
    https://yadi.sk/d/8rSXZc2x3Ehgrj
    https://yadi.sk/d/xZIOuM933Ehgtw
    Версия программы, через которую открываю тесты
    https://programki.net/program.php?pr=244
    ОС - семерка.
    Если ответите на почту, будет вообще отлично)))

        1. Не может.
          helper это MyTestXProHelper
          Под редактором для mtx подразумеваю MyTestXPro 11.0.0.37.
          Инструкция, которая начинается со слов: Как пользоваться для открытия защищенных паролем .mtx-файлов в MyTestEditor

          1. Возникла проблема. Не могу скачать MyTestXPro 11.0.0.37. Пишет что ссылка заблокирована, можете выложить файл каким-нибудь другим образом?

            1. УРА. Наконец-то понял что и как. Скачал. MyTestXPro 11.0.0.45. Через MyTestEditor открывается тест, который вы мне скинули, там все отлично. Еще одна просьба, сделайте 2 тест, также я проверю, это одно и тоже. Вы меня очень выручили, напишите как можно отблагодарить вас.

  15. Добрый вечер. Помогите пожалуйста, сама программа 37 версии XPro не скачивается, т.к. сайт заблокирован. Везде только 45 версия, а патч не действует на 45 версию. Выдаёт ошибку патч.
    Вот сама ссылка на файл - https://yadi.sk/d/CIuug3wx3FpzB5
    Нужно пароль убрать.

      1. Спасибо, большое человеческое!
        Всё работает, а то 37 не качалась, а в интернете не найти, только 45 версия везде.

  16. Спасибо, Kaimi, с первого курса знаком с твоим блогом, а в частности, с тематикой MyTestStudent и MyTestXPro. Огромная благодарность за помощь.

  17. Добрый день.
    Тоже проблема с тестом. Правда я сижу под маком и все запускаю с помощью CrossOver
    Вашу программу запустил нормально (установив .NET), но при попытке распаковать тест ошибка Can't find test data in memory
    Собственно сам тест https://www.dropbox.com/s/dqdi3atstzpy42g/test_2017.exe?dl=0
    Может сможете помочь?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *