Сейчас на форуме: (+4 невидимых) |
eXeL@B —› Вопросы новичков —› Подбор ответного кода по запросному. |
Посл.ответ | Сообщение |
|
Создано: 26 мая 2006 13:55 · Личное сообщение · #1 Есть софтина, которая привязываясь к железу дает запросный код - ответным кодом регистрируется. Запросный - 6 цифр, ответный 6 или 7 цифр. Есть около 15 пар. Определенная закономерность иногда проявляется. Можно ли понять алгоритм полностью? Я с Олькой шерстил прогу пару недель - ничего путнего из этого не вышло. Путем изменения значения ключа в реестре брутфорсером я таки ломанул эту прогу на двух компах, от 3 до 6 часов Непрофессионально. Какие идеи ? Кто-то сталкивался ? Спасибо за внимание |
|
Создано: 26 мая 2006 16:12 · Личное сообщение · #2 |
|
Создано: 26 мая 2006 16:14 · Личное сообщение · #3 |
|
Создано: 26 мая 2006 17:21 · Личное сообщение · #4 Ambient пишет: Я с Олькой шерстил прогу пару недель Если не нравится брутфорс - ищи дальше. Число размером в одно слово - найти не проблема. И алгоритм не должен быть сложным. Если программа в пределах 10 Мб - давай ссылку. По поводу пар - ничего не понятно. Пары для одного и того же железа или для разного ?! Если для разного - ничего угадать нельзя без программы. Если для одного, то тоже я не знаю. Я понимаю, когда алгоритм в ключе зашит, но в программе и чего-то угадывать - глупо. Пока ясно, что есть арифметическая растущая функция + логические операции, т.к. есть провалы. |
|
Создано: 26 мая 2006 17:40 · Личное сообщение · #5 Спасибо за ценный ответ! ссылка на прогу: www.ambient.com.ua/download/InView.rar 1,5Мб после ввода неправильного ответного кода перестает запускаться. Лечение: HKEY_CURRENT_USER\Software\In4Tools\Viewer параметр acode установить 0 там же размещается правильно подобранный код. Ключи приведены для разных компов, при форматировании винта и перестановке Винды запросный ключ меняется. |
|
Создано: 27 мая 2006 16:31 · Поправил: tundra37 · Личное сообщение · #6 Ambient Ты прав по поводу того, что проверка сложная( чисто вычислительно), но не найти этого места - это удивительно 00541477 . 8D4D D8 LEA ECX,DWORD PTR SS:[EBP-28] 0054147A . B2 07 MOV DL,7 0054147C . A1 C4A57900 MOV EAX,DWORD PTR DS:[79A5C4] 00541481 . E8 AAEFFCFF CALL in4VIEW.00510430 Перед этим идет запрос кода с экрана, запись его в реестр и вот после еще нескольких подпрогамм - этот вызов. Я даже не искал по функциям доступа к реестру и т.п. Просто нашел, где ссылка на ASCII-код "acode" встречается. Для этого просто весь дизассемблер сбросил в файл и поискал там. Подпрограмма по адресу 00510430 в EAX имеет ссылку на введенный код, а на выходе строчку 1-хххххх, которая вскорости сравнивается со строчкой, которую ты называешь запрос, точнее 1-<запрос> Теперь есть два варианта : 1) разобраться с арифметикой в этой программе и построить обратную функцию - это долго, т.к. так наверчено много, хотя и небезнадежно. Степени 7-ки я уже разглядел. 2) Пропатчить это местечко в программе, чтобы она брут-форс делала - это ведь быстрее, чем с риппер-студиями возиться. Есть конечно экзотика : найти генератор запроса и пропатчить так, чтобы он одно и то же выдавал. Но тогда придется проконтролировать, где параметры железа в программе используются - тоже невеселое занятие. ++++++++++++++++++ Короче все получилось. Полный перебор занимает несколько минут. Надо будет повыкидывать из экзе все лишнее и сделать этакий неуклюжий брут-форсе. |
|
Создано: 27 мая 2006 22:27 · Поправил: Ambient · Личное сообщение · #7 |
|
Создано: 28 мая 2006 13:15 · Поправил: tundra37 · Личное сообщение · #8 Ambient пишет: и Dede ее кушает на ура Только толку никакого, кроме LStrCmp. Дизасм от олли лучше. Там все функции работы c реестром есть. Ambient пишет: Учиться, учиться и еще раз учиться! Я понял ты сам хочешь заняться. Тогда просто подсказки : 1) В олли следи за стеком( у меня правда экран на 22 дюйма и много в стеке видно). Просто и Си и Дельфи рабочие ячейки держат на стеке и ASCII строки олли классно показывает. Если из стека мало показывает - делай скроллинг периодически) 2) В Дельфи адреса параметров часто передаются через регистры, поэтому останавливайся перед call и смотри регистры - опять же обращаем внимание на ASCII. 3) Ну и старый метод, который в этом случае избавил бы от многих хлопот и меня и тебя. Идем от точки входа по методе "Step over" и находим верхний CALL, в котором происходит, то что ищем. Потом перезапускаем программу и делаем "Step into" на нужном CALL и т.д. Только искали мы не то : искали как обрабатывают ответ, а если бы искали почему заканчивается программа при неправильном ответе, то прямо бы от точки входа доскакали до сравнения обработанного "ответа" с "запросом". Я потом когда увидел, где лежит проверка - обалдел. Всего в 200 командах прямо на первом уровне CALL. Т.е. я тоже "не сразу нашел". ======================= DeDe может быть полезен в дальнейшем. Если ты не просто взломать прогу решил, а повзаимствовать оттуда алгоритмы работы. По крайней мере все кнопочки есть. |
eXeL@B —› Вопросы новичков —› Подбор ответного кода по запросному. |