![]() |
eXeL@B —› Вопросы новичков —› Как расколоть тест? |
Посл.ответ | Сообщение |
|
Создано: 26 сентября 2007 17:28 · Личное сообщение · #1 Есть тест. Состоит из файла test.exe и 5-ти файлов test.fad (test1.fad, test2.fad...). *.fad-ы зашифрованы. При запуске test.exe он спрашивает какой из файлов *.fad загрузить. В каждом файле разное количество вопросов - от 127 до 212-ти. Запускается оболочка, где нужно ответить на вопросы. Если выбрать test1.fad, то в нем задается вопрос и перечислено несколько ответов. Нужно напротив правильного ответа поставить в боксе галочку. Если выбрать test2.fad, то в нем нужно набрать на клавиатуре вариант правильного ответа - "да", "нет", "никогда", "34 гайки" етс... Пользую Олли Дебаг. Разных сборок. В основном - SND. IdaPro 4.x по русски не понимает. Другие на моей машине не работают (Сисер и СофтАйс), как только я вокруг нее с бубном не прыгал. Так вот, нашел я в памяти где она берет ответы. Прямо рядом с вопросом "Сколько гаек" через пару байт ответ - 34. В большинстве случаев. Но не всегда. Бывает так, что рядом просто набор мусора какой-то. Это Олли так интерпретирует? Ведь не может она некоторые части блока перевести правильно, а некоторые - нет? Потом, в тех местах, где надо ставить галочки в боксах - там как определить, что галку в нужное место воткнул? Ставил брейки на обращение к данному участку памяти - что-то не сработали. ![]() |
|
Создано: 26 сентября 2007 17:49 · Личное сообщение · #2 |
|
Создано: 26 сентября 2007 18:13 · Поправил: SeaMan · Личное сообщение · #3 А что происходит, например если ты неправильно ответишь? Программа закрывается, или ошибка итд. Просто нужно определить какой участок кода вызывается если неправильный ответ (он чаще всего один и тотже) и пропадчить этот участок так, чтоб программа продолжала свой ход в том месте, куда бы был переход если ты ответил правильно. Это если тебя правильные ответы не интересуют а важен результат теста ![]() Думаю так вроде. Хотя вслепую както неочень ![]() ![]() |
|
Создано: 26 сентября 2007 18:49 · Личное сообщение · #4 |
|
Создано: 26 сентября 2007 21:12 · Личное сообщение · #5 Желательно найти верные ответы. Пытался заставить прогу давать правильную оценку - там куча проверок. Сначала выдает, но только отвернешься - сбрасывает, "палит" тебя. Показывает реальное количество правильных ответов и соотв. оценку. Я три уровня этих защит обошел, потом сдался. Там их наверное штук 10. До корня так и не добрался. Потому и хочу ответы посмотреть. Прогу залить не могу - она внутри предприятия. Сам могу кывирять сколько угодно, никто мне ничего не скажет, но выносить не могу. А так бы с удовольствием. "либо плагин есть для ольки- ищет сообщения о неверных ответах" - что за плагин? В HDasmе еще не пробовал, но Олли и Ида Про одинаково ее дизасмят. Попробую в HD, но сомневаюсь, что будет что-то другое. Мне еще пояснили, что это организация памяти такая в Windows - блок кончился, вот и пошел мусор в этом месте вместо ответа. Точнее не мусор а адрес другого блока, где ответ лежит. Но что-то я сомневаюсь. Сами то вопросы не разрываются. ![]() |
|
Создано: 26 сентября 2007 22:16 · Личное сообщение · #6 |
|
Создано: 26 сентября 2007 23:14 · Личное сообщение · #7 Хм, ясно... Hdasm иногда корректно кириллицу отображает(в причину еще не вник полностью), плагин держи. Попробуй все-таки ответы в .fad найти, иначе пока даже и не знаю, как быть тебе... имхо, проверки в екзешнике, там и надо патчить. грузи в HIEW, может, че увидишь, там тоже поиск по тексту есть, но в отладке он не поможет, скорее всего. нереально без проги... ![]() ![]() |
|
Создано: 27 сентября 2007 16:51 · Личное сообщение · #8 Если ответы зашифрованны, то дизасмить думаю не очень подходящий вариант для нахождения правильных ответов. Тут только отладка, ибо там ты видишь что на самом деле происходит. Да и товеты там уже в расшифрованном виде. Есть 2 варианта. Вариант номер раз: Находим программный код (или если так угодно алгоритм) с помощью которого расшифровываются ответы из файлов. Вникаем в алгоритм и пишем прогу, которая с выдранным алгоритмом полностью расшифровывает файлы скажем в текстовый файл. Вариант номер два: Ищем место в программе, где каждый раз сравнивается правильный ответ с введённым (я как понял ты уже на это место наткнулся когда нашёл в памяти "34 гайки"), ставим бряк на этот адрес и при каждом новом вопросе "подсматриваем" правильный ответ. Записываем все правильные ответы в какую нибудь базу данных с поисковкой. ![]() |
|
Создано: 27 сентября 2007 16:56 · Личное сообщение · #9 Я fad вижу только в памяти, когда ехе-шник его запускает и разворачивает там. Т.е. дизасмить один ехе-шник нет смысла. fad только в режиме отладки можно увидеть, когда он подцеплен и распакован. Искать в ехе алгоритм распаковки - мне не по зубам, слишком много времени потеряю. Тем паче, думаю он хорошо запрятан, раз у проги такая нехилая многоуровневая защита, то и распаковку поди закрыли. Т.е. остается все-таки попытаться в памяти снять дамп fad - а и нормально его расшифровать. Благо большинство ответов уже видны. Спасибо за плагин. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Как расколоть тест? |