Снимаем пароль с тестов 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)
Утилита для извлечения теста (.mtf/.mtx) из .exe-файла (пароль kaimi-io)

В этот раз я постараюсь минимизировать количество рассуждений и ассемблерных листингов, дам только краткое описание идеи. Начнем с извлечения тестов из автономных файлов. Тест содержится в ресурсах .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: 127 комментариев

  1. Уважаемый, а можно как нибудь обойти защиту незарегистрированной копии продукта, без вкладывания финансовых средств? ;)

    1. есть одна прога, на самом деле ерундовая, но очень хочется отковырять ее от защиты.

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

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

  3. подскажите, почему в обоих случаях извлечения mtx файла из ехе выскакивает ошибка cant find test in memory ?

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

  4. Здравствуйте,у меня не получается снять пароль!Как с вами связаться для консультации?

  5. Можно ли тожесамое сделатьдля майтест10.2, очень нужно, если да то как именно это сделать?

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

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

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

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

  6. Здравствуйте!
    У меня версия 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 и открываешь редактором из статьи.

      1. Спасибо за помощь. В следующий раз поставлю нужную версию. Всего найлучшего!

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

    Оба варианта извлечения .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: Хочу знать дабы не беспокоить в будущем.

        1. Своеобразная папка %TEMP% У тебя. Не было прав на запись, как я понимаю. Может запуск с UAC решил бы проблему.

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

    1. Тест точно от pro версии? Может там обычная версия, тогда надо другую статью смотреть.

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

  10. Здравствуйте, у меня тест создан в версии 10.2.0.2 на него утилита не катит как можно достать?

      1. Благодарю
        Пробовал на 8.1 ошибку Can't memory выводило по второму способу ,по первому ничего

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

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

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

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

  15. Вытащил тест, на нем лежит пароль. Теперь не получается пропатчить редактор

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

  16. есть ask-файл, открывается через Assistent, как взломать пароль такого файла?

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

    1. Так он и без манипуляций не запускается с тем же сообщением. Может файл битый просто.

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

      1. У меня Windows 10, как не пытался, тест вытащить не могу, есть возможность прислать готовый вариант?

          1. В итоге так и не получилось ничего сделать, наверное что-то я делаю не так

          2. Kaimi, если у вас есть возможность переслать готовый тест, буду премного благодарен за помощь

          3. Получилось, спасибо большое за программу, ты действительно очень помог!

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

  20. Помогите пожалуйста снять пароль, с улитой что то я не так делаю, не получается

  21. Возможны ли процедуры снятия защиты для тестов в редакторе t Maker (пакет SunRav TestOfficePro 4)?

  22. Здравствуйте. Вопрос такой. Есть два теста. Прикреплю на них ссылки. Можно ли как-нибудь сделать так, чтоб вытащить на них ответы. Я пробовал сделать, так как у вас написано, ничего не получилось. Скажу сразу, что я "не шарю в компах" :-). Если есть есть возможность пообщаться, каким-либо другим способом, было бы отлично (почта, соц.сети и т.д.). Готов материально отблагодарить.
    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 тест, также я проверю, это одно и тоже. Вы меня очень выручили, напишите как можно отблагодарить вас.

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

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

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

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

  26. Привет, пробовал и с 8.1 windows и 7 - пишет Can't find test data in memory.
    Тест очень серьезный и нужно подготовиться в ограниченное время. Помоги, пожалуйста!
    http://dropmefiles.com/mXAPg

  27. Добрый вечер, помогите пожалуйста вытащить файл с тестом, я уже все перепробовал и через утилиту вашу и в ручную и через виртуальную машину и все никак. Один раз утилита выловила тест но от не открывался в редакторе, а все следующие разы пишет что не найден файл.
    https://drive.google.com/file/d/0B7tNP83ml0lyd3ZjT3UxRGx3bUE/view?usp=sharing

    1. Утилита для извлечения приведенная почти в самом начале поста не помогает?

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

  28. здравствуйте, можете помочь с извлечением теста, никак не извлекается ошибку выдает. и так и сяк пробовал. http://rgho.st/8kH6nnzfQ

        1. Нормально извлекается, да и это не Pro версия, в другой статье написано, как извлечь руками.

  29. Здравствуйте.
    Не могли вы помочь разобраться с проблемой - *mtx файл из этого теста успешно достается по первому способу, но открыть его в редакторе не получается, выскакивает вот такое сообщение
    http://imgur.com/a/XF3bx
    И в так происходит и в новом редакторе, и в том, который у вас здесь по ссылке. Патчить пробовал.
    Сам тест - https://drive.google.com/file/d/0B3B0TzgPI5AsWXhRZ1pzeDRYYmM/view?usp=sharing

    1. Видимо тест не вполне корректно извлекся, надо пробовать обеими утилитами и MyTestXProHelper и MyTextXTractor

      1. Через MyTextXTractor вообще ничего не извлекается.
        А через хэлпер одним из методов вытаскивается файл, но не открывается.
        Вот видео, где пробую через трактор. Ничего не выходит. Пробовал так же запуска через администратора.
        https://drive.google.com/file/d/0B3B0TzgPI5AsbGFhOGtDVHFrMDA/view?usp=sharing
        Не могли бы вы вытащить этот злосчастный файл за вознаграждение?

  30. Здравствуйте, помогите плиз взломать тест , пробовал вышим способом достать mtx , но пишет ошибку "can't find test " и не создает не какого файла.
    https://yadi.sk/d/mxYu42vG3JvS2U

        1. То что он тест загружает это ничего, после закрытия окна в директории с тестом ничего не создается?

Комментарии запрещены.