Сейчас на форуме: (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Подбор ответного кода по запросному.
Посл.ответ Сообщение

Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 мая 2006 13:55
· Личное сообщение · #1

Есть софтина, которая привязываясь к железу дает запросный код - ответным кодом регистрируется.
Запросный - 6 цифр, ответный 6 или 7 цифр. Есть около 15 пар. Определенная закономерность иногда проявляется. Можно ли понять алгоритм полностью?
Я с Олькой шерстил прогу пару недель - ничего путнего из этого не вышло. Путем изменения значения ключа в реестре брутфорсером я таки ломанул эту прогу на двух компах, от 3 до 6 часов Непрофессионально.
Какие идеи ?
Кто-то сталкивался ?
Спасибо за внимание



Ранг: 79.4 (постоянный)
Активность: 0.090
Статус: Участник

Создано: 26 мая 2006 16:12
· Личное сообщение · #2

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



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 мая 2006 16:14
· Личное сообщение · #3

Запрос Ответ

104273 300151
109173 325632
122408 259098
142207 683093
146861 728515
154438 630211
157322 690606
162734 729193
171846 630317
260140 843150
410401 1753363
433329 1893016
476993 2006147
556763 2503578
618991 2868059
639203 2312807
693109 2987663
739458 3346646
916089 4983952



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 26 мая 2006 17:21
· Личное сообщение · #4

Ambient пишет:
Я с Олькой шерстил прогу пару недель

Если не нравится брутфорс - ищи дальше. Число размером в одно слово - найти не проблема.
И алгоритм не должен быть сложным. Если программа в пределах 10 Мб - давай ссылку.
По поводу пар - ничего не понятно. Пары для одного и того же железа или для разного ?!
Если для разного - ничего угадать нельзя без программы. Если для одного, то тоже я не знаю.
Я понимаю, когда алгоритм в ключе зашит, но в программе и чего-то угадывать - глупо.
Пока ясно, что есть арифметическая растущая функция + логические операции, т.к. есть провалы.



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 мая 2006 17:40
· Личное сообщение · #5

Спасибо за ценный ответ!
ссылка на прогу:
www.ambient.com.ua/download/InView.rar
1,5Мб
после ввода неправильного ответного кода перестает запускаться. Лечение:
HKEY_CURRENT_USER\Software\In4Tools\Viewer параметр acode установить 0
там же размещается правильно подобранный код.
Ключи приведены для разных компов, при форматировании винта и перестановке Винды
запросный ключ меняется.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 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) Пропатчить это местечко в программе, чтобы она брут-форс делала - это ведь быстрее, чем с риппер-студиями возиться.
Есть конечно экзотика : найти генератор запроса и пропатчить так, чтобы он одно и то же выдавал. Но тогда придется проконтролировать, где параметры железа в программе используются - тоже невеселое занятие.
++++++++++++++++++
Короче все получилось. Полный перебор занимает несколько минут. Надо будет повыкидывать из экзе все лишнее и сделать этакий неуклюжий брут-форсе.



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 27 мая 2006 22:27 · Поправил: Ambient
· Личное сообщение · #7

Прочитал и разбираюсь. Огромный тебе respect tundra37!
Не найти этого места - удивительно, это ты прав.
Учиться, учиться и еще раз учиться! (это мне)

Кстати - прога ничем не запакована, написана на Delphi
и Dede ее кушает на ура, это тоже должно помочь
в исследованиях.
Еще раз спасибо!



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 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 —› Вопросы новичков —› Подбор ответного кода по запросному.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати