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

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

Ранг: 42.9 (посетитель), 13thx
Активность: 0.040
Статус: Участник

Создано: 02 февраля 2016 02:00
· Личное сообщение · #1

Здравствуйте уважаемые друзья,
столкнулся с одной проблемой - нужно мне было создать кейген одной программы которая генерирует серейник по hwid (GetVolumeInformationA),
места генераций серейника (и сам алгоритм) я нашел, сам ключ тоже, но алгоритм генераций оказалось очень завернутым и кейген писать для меня трудно будет,
теперь собственно вопросы:

1. можно ли создать захватчик серейника ?
(так как ключ каждый раз генерируется и проверяется с юзеровским ключом в файле license.lic)

2. Если да, есть у кого примеры реализаций на C# e ?

Серейник генерируется( в функций sub_40EE90() ) и проверяется с юзеровским(v21) в этой части:

Code:
  1.  
  2. if ( strcmp((const char *)sub_40EE90(&v18, 0), (const char *)&v21) )


3. Означает это - что сперва надо захвативать функцию strcmp() ?

4. В программе несколько вызовов этой функций как узнать когда именно нужно захвативать ?

Заранее спасибо!

С уважением,
cryptX.



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 02 февраля 2016 03:49
· Личное сообщение · #2

cryptX
может тебе достаточно что-то наподобие --> Serial Sniffer Creator<-- ?

| Сообщение посчитали полезным: cryptX

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

Создано: 02 февраля 2016 12:31 · Поправил: VodoleY
· Личное сообщение · #3

типа простой лоадер.. который грузится в память таргета.. потом его стопает на нужной функе.. забирает данные.. потом востанавливет/отдает управление основному процессу.. с нужными данными.. скучно

Добавлено спустя 2 минуты
если по феншую.. то каждой проге нужен кей ген... если ВЫ нашил процедуру.. и можете просчитать ответ.. вам это делать надо 1 раз.. но смысл ТЗ от меня както по прежнему скрыт.. количество вызовов.. не имеет значения, если прога будет иметь валидную пару
ЗЫ. типа патчи.. это зло..

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




Ранг: 42.9 (посетитель), 13thx
Активность: 0.040
Статус: Участник

Создано: 02 февраля 2016 12:43 · Поправил: cryptX
· Личное сообщение · #4

SReg
Спасибо за ответ дружище!

Но проблема в том что в программе нет кнопки(и.т.д) которая вызывает процедуру проверки ключа, проверка происходит только при загрузке программы через файл лицензий.
Поетому хотелось по подробнее узнать как захват осуществить (да и перед захватом надо несколько байтов в памяти поправить).

Есть другие идеи ?

Добавлено спустя 10 минут
VodoleY
Спасибо за ответ!

Есть где почитать про этот простой лоадер ? (на C# если можно)
Как я понимаю лоадер будет ставить бряки ?

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

Почему не кейген - процедура "извращений" огромная, а знаний мои в эту сторону ограничены ...




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 02 февраля 2016 13:27 · Поправил: Kindly
· Личное сообщение · #5

Если ключ привязан только к GetVolumeInformationA, то подменяй его в проге, и юзай найденный для него ключ, если закейгенить никак.

-----
Array[Login..Logout] of Life


| Сообщение посчитали полезным: cryptX


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

Создано: 02 февраля 2016 19:46 · Поправил: DenCoder
· Личное сообщение · #6

cryptX пишет:
Серейник генерируется( в функций sub_40EE90() ) и проверяется с юзеровским(v21) в этой части:

if ( strcmp((const char *)sub_40EE90(&v18, 0), (const char *)&v21) )

Инжектится dll, которая устанавливает хук на выходе из ф-ции sub_40EE90, забирает серийник и предлагает сохранить в файле license.lic . Чем не вариант?

Добавлено спустя 2 минуты
Один раз забирает и устанавливает в true флаг, что серийник забран, чтоб ещё миллион ненужных раз этого не делать.

-----
IZ.RU




Ранг: 42.9 (посетитель), 13thx
Активность: 0.040
Статус: Участник

Создано: 07 февраля 2016 13:47
· Личное сообщение · #7

Спасибо друзья за ответы!

Друг помог мне с лоадером, но жалко захваченный сереиник не подошел, там оказалось АES.

А статьи про создания лоадера я так и не нашел. (Скажем как ставить хук на выходе функций ? практический пример)




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

Создано: 07 февраля 2016 19:34
· Личное сообщение · #8

cryptX пишет:
как ставить хук на выходе функций ? практический пример)


Есть 2 способа:
1) Ставится хук на начало ф-ции путём замены 5 байт на jmp в свою dll. При перехвате обязательно исполняются заменённые инструкции и работает вставка в стек перед адресом возврата адреса пост-обработчика.

2) Ставится хук на конец ф-ции путём замены байт. Всё аналогично 1му варианту, только без кода первого обработчика.

Чтобы осуществить замену в коде определённых байт на свои, используются 2 функции:
VirtualProtect() для разрешения записи в участок памяти для кода и FlushInstructionCache(), чтобы "случайно" кэшированный старый код не исполнялся.

-----
IZ.RU


| Сообщение посчитали полезным: cryptX

Ранг: 42.9 (посетитель), 13thx
Активность: 0.040
Статус: Участник

Создано: 10 февраля 2016 14:02
· Личное сообщение · #9

DenCoder

А можно кусок кода на C#-е демонстрирующее первый способ ?



Ранг: 42.2 (посетитель), 42thx
Активность: 0.040
Статус: Участник

Создано: 10 февраля 2016 14:44 · Поправил: kid
· Личное сообщение · #10

cryptX пишет:
А можно кусок кода на C#-е демонстрирующее первый способ ?


ИМХО вы совсем не тот инструмент выбрали.

а по большому счету вам надо заменить начало оригинальной функции кодом который бросит в стек указатель на начало вашего кода .




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

Создано: 10 февраля 2016 16:46
· Личное сообщение · #11

cryptX пишет:
А можно кусок кода на C#-е демонстрирующее первый способ ?

В теории есть и для шарпа класс как-то вроде WinApi. Но зачем так извращаться? Я лично пишу такие вещи на си иногда с применением асм-вставок, гораздо проще так! Тут ничего нового - скачайте любой апи-логгер, апи-шпион, пореверсите и поймёте...

Добавлено спустя 1 минуту
Тем более давно это всё в многочисленных сорцах

-----
IZ.RU



 eXeL@B —› Вопросы новичков —› Создание захватчика ключа из памяти
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати