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

 eXeL@B —› Обсуждение статей —› [ MozgC ] Исследование программы BlueFace - делаем кейген
. 1 . 2 . >>
Посл.ответ Сообщение


Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 22 ноября 2010 00:12
· Личное сообщение · #1

Обсуждение статьи Исследование программы BlueFace - делаем кейген. Что такое кейген

-----
Всем не угодишь




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 27 января 2011 22:19 · Поправил: zaichik
· Личное сообщение · #2

Мда... При всём уважении, элементарно, откуда среднеститическому челу знать, то на инструкции
Code:
  1. 00409055 8D4C0201 lea ecx, dword ptr [edx+eax+01]


в EDX (цитирую)
"последняя часть строки, записанной в поле serial number в окне регистрации." Автор догадался? Молодец.

Собсно, я дальше и не читал, если статья построена на догадке. Да, нахождение EAX прослеживается. Нахождение EDX покрыто мраком (это главный вопрос, а сам алгоритм суть 7 ассемблерных инструкций, несложен). По-хорошему тут копать и копать надо, отслеживать изменение ячейки по адресу 4170AC, ибо в этой ячейке находится то, что попадёт в EDX, а как оно попало туда- вот и надо тык скыть это отслеживать.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 27 января 2011 22:29
· Личное сообщение · #3

zaichik пишет:
Собсно, я дальше и не читал, если статья построена на догадке.

Ну и дебил, там 3 абзаца про lea ecx, dword ptr [edx+eax+01] написано и всё обсосано до безобразия полно.



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 27 января 2011 22:35
· Личное сообщение · #4

Вот всё, что написано про нахождения содержания EDX. Тебя это устраивает? Ну хавай, чё. Можешь дифирамбы написать.

"Вспоминаем, что мы хотели. А хотели мы посмотреть, что хранится в edx. Пишем в отладчике "? edx" и как всегда жмем Enter. Самые внимательные возможно заметят, что они уже где-то видели это значение (смотрите в десятичной записи числа). Для остальных подскажу, что это последняя часть строки, записанной в поле serial number в окне регистрации. Кстати строка Serial number будет у всех выглядеть по разному. Также в ней может быть одно или несколько тире. Значит в edx записывается эта последняя часть строки. В принципе нам неважно знать откуда она берется или генерируется. Ведь для генерирования правильного кода, мы будем просто брать эту часть и все. Осталось узнать, что у нас в eax и подвести итоги!"

Ну и кто дебил?



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 27 января 2011 22:43 · Поправил: Vovan666
· Личное сообщение · #5

zaichik пишет:
Ну и кто дебил?

Ты! если читая статью, ты даже не удосужился скачать жертву. Да даже хрен с ней с жертвой, там в конце полная генерация обсосана с примером как выглядит serial number и только Полный дебил не поймет что лежит в edx



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 27 января 2011 22:52
· Личное сообщение · #6

Важно не что лежит в EDX, а каким образом оно туда попадает. Содержание EDX суть производная от номера- и тебе очень повезло, чувак, что автор это УГАДАЛ. НЕ примазывайся к чужому везению.

...Ты про это?
1) Из поля serial number в регистрационном окне берется число - последняя часть строки, после второго тире.
2) К этому числу прибавляется длина имени компьютера + 1 (имя компьютера записано в первой части поля serial number, до второго тире)
3) Полученное число умножается на длину имени компьютера + 1.


Хе, в отладчике эта херь занимает семь срок, я повторяюсь уже
Code:
  1. 00409040  |.  8B4C24 04     MOV ECX,DWORD PTR SS:[ESP+4]
  2. 00409044  |.  8B15 AC704100 MOV EDX,DWORD PTR DS:[4170AC]
  3. 0040904A  |.  C68424 140100>MOV BYTE PTR SS:[ESP+114],0
  4. 00409052  |.  8B41 F8       MOV EAX,DWORD PTR DS:[ECX-8]
  5. 00409055  |.  8D4C02 01     LEA ECX,DWORD PTR DS:[EDX+EAX+1]
  6. 00409059  |.  40            INC EAX
  7. 0040905A  |.  0FAFC8        IMUL ECX,EAX
  8. 0040905D      3BF1          CMP ESI,ECX


И веришь, нет, я сам дойду, что ECX суть введённый мной номер, а ESI зависит от содержания 4170AC
Впрочем, я знаю что ты скажешь- не скачал жертву, всё обоссано и прочее. Типичный тролль.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 27 января 2011 22:57
· Личное сообщение · #7

С этой статьи я начинал реверс. Статья годная, в ней все хорошо...




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 27 января 2011 22:59
· Личное сообщение · #8

Vovan666
Негоже новичков так сходу метлой гонять, даже если и скосячил где.

Что касается статьи, она была написана лет 7 назад, автор уже давно не появляется на форуме, поэтому от него какой-либо фидбек ждать не стоит.



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 27 января 2011 22:59 · Поправил: zaichik
· Личное сообщение · #9

Сказать хорошо- ничего не сказать
Один вопрос- значит, подошли к ключевому сравнению. cmp ESI ECX
В ESI- понятно что.

Как автор узнал что находится в EDX? (не в ECX а в EDX) Я стою на том, что просто ЗАМЕТИЛ. Нет, я жду!



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 27 января 2011 23:14
· Личное сообщение · #10

zaichik пишет:
Я стою на том, что просто ЗАМЕТИЛ.

Скорее всего, в этом и состоит волшебное преимущество отладки перед дизассемблированием - функции и действия можно угадывать, а не разбирать. Просто смотреть, где какие данные, как изменяется память (главным образом регистровая и стэк).



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 27 января 2011 23:30 · Поправил: Hexxx
· Личное сообщение · #11

int пишет:
Скорее всего, в этом и состоит волшебное преимущество отладки перед дизассемблированием


Скорее мозгоразжижающее свойство: "зачем думать если можно в отладчике посмотреть"
Верной дорогой идете zaichik. Все нужно ставить под сомнение.

p.s. Давненько я MozgC не видел и не слышал, аську его потерял...

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 27 января 2011 23:44
· Личное сообщение · #12

Ну да, понимаете, раз получилось, два получилось, 10 раз получилось. Ага, делаем вывод: в EDX то-то и то-то.
А на 11-ый раз имя серийника прежде чем попасть в EDX пройдёт модификацию. И всё, аля-улю, гони гусей.
Я попытался отследить изменения ячейки 4170AC- не получилось. Ну ничё, корячится другой способ. Он визуально некрасив, но надёжен.



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 28 января 2011 01:24 · Поправил: Hexxx
· Личное сообщение · #13

нужно просто в IDA смотреть, там будут указаны XREF - ссылки со всех мест откуда обращаются к адресу 4170AC.

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 28 января 2011 01:37
· Личное сообщение · #14

Ну я сделал по-другому, нашёл в листинге обращение к константе 4170AC (хотя помню, что эта константа была получена динамически) и вижу- вот в такой-то инструкции по адресу 4170AC кладётся значение такое-то (искомое). А как оно генерится? Надо ТОЧНО это знать. Просто копируется часть имени компьютера или как-то по-другому. У меня ума не хватило отслеживать дальше. НО, повторяюсь, я нашёл надёжный способ нахождения серийника и щас над ним работаю.



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 28 января 2011 02:12
· Личное сообщение · #15

zaichik пишет:
вот в такой-то инструкции по адресу 4170AC кладётся значение такое-то (искомое)

ну из регистра же туда кладется. Дальше смотришь откуда данные попали в регистр...

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 28 января 2011 02:22
· Личное сообщение · #16

Hexxx
Отлаживать тоже надо уметь. На счет верной дороги не согласен. В реверсе нет верной дороги (как и в науке?). Человек, начавший заниматься реверсом, может забросить это занятие, так и не начав, устав разбирать километровые листинги с вложенностью 5-7 уровней.



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 28 января 2011 02:40
· Личное сообщение · #17

Hexxxда уж...

Короче, я написал кейген, могу показать.
Суть: кейген генерится в самом BlueFace.exe, а посему:
Так, ребята, не проще ли запустить BlueFace.exe, дождаться инструкции сравнения CMP ESI, ECX и просто слямзить нужный номер из ESI?

Этого можно достичь несколькими путями, тут все кодеры я никого учить не буду. Вот идея такая то есть: считать нужные данные с адресного пространства процесса. Всё! ТО есть считать ЧТО ТАМ ПО ФАКТУ, а не что ДОЛЖНО быть

Ну вот я накропал экзешничек такой:
1) Создаёт процесс BlueFace.exe
2) Sleep (3000); (ждём пока процесс загрузится в память)
3) Считываем даные по адресу 4170AC (тут я немного упростил задачу, не из регистра считал ключ, а сам его вычисляю по алгоритму)
4) Ну, понятное дело, нахожу имя компа, его длину
5) Нахожу ключ, вывожу его на экран, убиваю BlueFace.exe
Всё!

Немного громоздко, согласен, но зато верняк! И потом я только начинаю.
Теперь: данные ячейки 4170AC после появления рожицы в трее НЕ МЕНЯЮТСЯ (ставил хардварные бряки на доступ). То есть данные с этой ячейки можно было смело считывать на этом этапе, на каком и я - они не поменяются.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 28 января 2011 03:27
· Личное сообщение · #18

Чушь неимоверная. Если уж религия не позволяет брать номер из строки Your serial number и генерировать номер как надо, то гораздо лучше и правильней брать его из BlueFace.dft. К примеру что будет с твоим кейгеном если выйдет версия 1.1? А если тебя попросят сгенерировать номер для другого компа?
Да и не кейген это у тебя, а т.н. serial sniffer



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 28 января 2011 03:37
· Личное сообщение · #19

Vovan666 ну чего ты озлобился на нубчика сам же тоже начинал когда-то ))

Code:
  1. 00408937  |> /FFD7          /CALL EDI                                ; msvcrt.rand
  2. 00408939  |. |99            |CDQ
  3. 0040893A  |. |B9 30750000   |MOV ECX,7530
  4. 0040893F  |. |F7F9          |IDIV ECX
  5. 00408941  |. |8BEA          |MOV EBP,EDX
  6. 00408943  |. |FFD7          |CALL EDI                                  ; msvcrt.rand
  7. 00408945  |. |99            |CDQ
  8. 00408946  |. |B9 30750000   |MOV ECX,7530
  9. 0040894B  |. |F7F9          |IDIV ECX
  10. 0040894D  |. |0FAFEA        |IMUL EBP,EDX
  11. 00408950  |. |4B            |DEC EBX
  12. 00408951     |892D AC704100 |MOV DWORD PTR DS:[4170AC],EBP


тут тот самый неуловимый EDX получается )))




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 28 января 2011 03:54
· Личное сообщение · #20

Статья зачетная, с нее я втянулся в это дело. А то, чего не хватает в статье можно найти самому. Бедный BlueFace, на нем я все способы взлома опробовал.

-----
Yann Tiersen best and do not fuck




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 28 января 2011 03:57
· Личное сообщение · #21

ой как интересно...
А чё, наверное если бряк поставить на любую из этих инструкций, он по-любому сработает ДО ТОГО, как по адресу 4170AC упадёт значение, которое после попадёт в EDX... Только вот ведь штука какая- не выполняются эти инструкции, а 4170AC инициализируется...




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 28 января 2011 03:59
· Личное сообщение · #22

Статья расжёвана даже больше, чем требуется новичку!
BlueFace одна из первых прог, наряду с Fant0m's CrackMe по которым учился

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 28 января 2011 04:07
· Личное сообщение · #23

zaichik так ведь файлик то удалить наверное надо? )))



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 28 января 2011 04:15
· Личное сообщение · #24

Адрес что дал NikolayD выполняется единожды при первом запуске проги, удали BlueFace.dft и всё сработает, и даже новый id будет. При последующих запусках твоя долбаная 4170AC заполняется при считывании BlueFace.dft

Тут считывает
Code:
  1. 00408287  |.  50                                     |PUSH EAX
  2. 00408288  |.  E8 77610000                            |CALL <JMP.&MFC42.#2740>


а тут записыват
Code:
  1. 0040855D  |.  8915 AC704100                          MOV DWORD PTR DS:[4170AC],EDX




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 28 января 2011 04:17
· Личное сообщение · #25

Как же невысокие у вас требования, оказывается.

"Самые внимательные возможно заметят, что они уже где-то видели это значение (смотрите в десятичной записи числа). Для остальных подскажу, что это последняя часть строки, записанной в поле serial number в окне регистрации."

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

По мне так, например, было бы хорошо, если бы автор сказал: "вот строка, вот цепочка событий, обрабатывающих серийный номер, после которых в EDX кладётся то-то и то-то". НЕ сказал, ибо заметил сие СЛУЧАЙНО. Да, базара нет, опыт ли, внимательность ли сыграли вою роль. Ну, я очень рад, что автор такой внимательный.

А сам алгоритм мог бы и опустить. Это как раз чистой воды ум, неприменительно ккодингу вообще.



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 28 января 2011 04:21 · Поправил: zaichik
· Личное сообщение · #26

NikolayD пишет:
zaichik так ведь файлик то удалить наверное надо? )))

Хорош загадками говорить.
Какой файлик и почему удалять- и самое главное где там автор про какой файлик удаляемый говорил- ничё непонятно.

А вообще- я рад, что дал вам возможность блеснуть своими знаниями насчёт файлов там разных. НАверное, это очень важно. И я не сомневаюсь, что автор статьи тоже знал и про BlueFace.dft тоже. Только не сказал, скромняга.



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 28 января 2011 04:41
· Личное сообщение · #27

В статье же не написано, что думать своей головой ЗАПРЕЩЕНО ))) .Всё что не запрещено - разрешено. Vovan666 уже всё расписал, добавить тут нечего...



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 28 января 2011 04:45
· Личное сообщение · #28

Ну вот я и думал и придумал




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 28 января 2011 04:51
· Личное сообщение · #29

zaichik пишет:
Как же невысокие у вас требования, оказывается.

Не туда смотришь. Напиши статью так, чтобы человека затянуло в реверс на многие годы и потом критикуй. Откуда вы такие беретесь.

-----
Yann Tiersen best and do not fuck




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 28 января 2011 12:53
· Личное сообщение · #30

Тему замутил не я. Я говорю мало, но в том, что я говорю- я прав. А говорю я... но не буду повторяться. Вся эта херь, весь этот анализ слишком тяжело мне даётся, с очень большим трудом, чтобы я вот так вот отступал перед какими бы то ни было авторитетами.


. 1 . 2 . >>
 eXeL@B —› Обсуждение статей —› [ MozgC ] Исследование программы BlueFace - делаем кейген
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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