Recover Keys. Поисковик ключей Windows и других программных продуктов

Как узнать серийный номер программы

Поисковик Product Key                 

Восстановление кодов продуктов для Windows, Office, Adobe products, Acronis products, Electronic Arts games, WinZip, Nero и более чем 10,000+ других программ

Информация об программе

Название:

Portal Keys

Версия:

2.5.1

Платформа:

PC

Язык интерфейса:

Русский

Год выхода:

2017

Разработчик:

encrypting

Лекарство:

Не требуется

Microsoft Product Keys позволяет найти ключи для:

  • Windows 10;
  • Windows Server 2016;
  • Windows 8.1;
  • Windows Server 2012;
  • Windows 8;
  • Windows 7;
  • Windows Server 2008;
  • Windows Vista;
  • Windows Server 2003;
  • Windows XP;
  • Office 2016;
  • Office 2013;
  • Office 2010;
  • Office 2007;
  • Microsoft Visual Studio;
  • Microsoft SQL Server;
  • Microsoft SharePoint;
  • Microsoft Exchange Server.

Дополнительные скриншоты

Скачать программу ShowKeyPlus

Скачайте программу с нашего сервера. Программа будет в архиве zip. После скачивания извлеките программу, для этого нажмите на скаченном архиве правой кнопкой мышиизвлечьизвлечь все. Архив распакуется в то же место где расположен архив. После этого откройте папку и запустите файл ShowKeyPlus.exe

Способ взлома программ 1. Поиск введенного пароля в памяти

Пароль, хранящийся в теле программы открытым текстом, — скорее из ряда вон выходящее исключение, чем правило. К чему услуги хакера, если пароль и без того виден невооруженным взглядом? Поэтому разработчики защиты всячески пытаются скрыть его от посторонних глаз (о том, как именно они это делают, мы поговорим позже).

Впрочем, учитывая размер современных пакетов, программист может без особого труда поместить пароль в каком-нибудь завалявшемся файле, попутно снабдив его «крякушами» — строками, выглядящими как пароль, но паролем не являющимися. Попробуй разберись, где тут липа, а где нет, тем более что подходящих на эту роль строк в проекте средней величины может быть несколько сотен, а то и тысяч!

РЕКОМЕНДУЕМ:
Взлом приложений для Андроид с помощью отладчика

Давайте подойдем к решению проблемы от обратного — будем искать не оригинальный пароль, который нам неизвестен, а ту строку, которую мы скормили программе в качестве пароля. А найдя, установим на нее бряк, и дальше все точно так же, как и раньше. Бряк всплывает на обращение по сравнению, мы выходим из сравнивающей процедуры, корректируем JMP и…

Взглянем еще раз на исходный текст ломаемого нами примера passCompare1.cpp:

for(;;)

{

    printf(«Enter password:»);

    fgets(&buff[0],PASSWORD_SIZE,stdin);

    if(strcmp(&buff[0],PASSWORD))

        printf(«Wrong passwordn»);

    elsebreak;

    if(++count>2)return1;

}

Обратите внимание — в buff читается введенный пользователем пароль, сравнивается с оригиналом, затем (при неудачном сравнении) запрашивается еще раз, но (!) при этом buff не очищается! Отсюда следует, что, если после выдачи ругательства Wrong password вызвать отладчик и пройтись по памяти контекстным поиском, можно обнаружить тот заветный buff, а остальное уже дело техники!

Итак, приступим (мы еще не знаем, во что мы ввязываемся, — но, увы, в жизни все сложнее, чем в теории). На этот раз запустим passCompare1.exe отдельно от отладчика. Затем подключимся к процессу из отладчика (Attach to process в WinDbg). Хочу обратить ваше внимание: в окне выбора процесса отображаются все запущенные процессы и для каждого из них выводится его разрядность в столбце Platform. Вводим любой пришедший на ум пароль (например, KPNC Kaspersky++), пропускаем возмущенный вопль Wrong мимо ушей и в отладчике нажимаем Break (сочетание клавиш Alt + Del).

Окно со списком процессов для выбораОкно со списком процессов для выбора

Попробуем отыскать в памяти введенный пароль:

0:001>sa0x0L?0x7FFFFFFF«KPNC Kaspersky»

Пояснения

Первый параметр после команды s — флаг -a — определяет цель поиска как набор ASCII-символов. Второй параметр — смещение, откуда начать искать. Вообще-то начинать поиск с нулевого смещения — идея глупая. Судя по карте памяти, здесь расположен служебный код и искомого пароля быть не может. Впрочем, это ничему не вредит, и так гораздо быстрее, чем разбираться, с какого адреса загружена программа и откуда именно начинать поиск.

Третий параметр — верхний предел поиска, то есть «докуда». Здесь у нас стоит максимальное 32-битное знаковое число, таким образом мы охватываем весь возможный диапазон 32-битного процесса.

Последний параметр — собственно искомая строка. Обратите внимание, что мы ищем не всю строку, а только ее часть (KPNC Kaspersky++ против KPNC Kaspersky). Это позволяет избавиться от ложных срабатываний, возникающих из-за ссылок на внутренние буфера.

Результат (у вас значения, скорее всего, получатся другими, и они будут меняться при каждом перезапуске приложения):

00f9f8104b504e43204b6173706572736b792b2bKPNC Kaspersky++

0147fd804b504e43204b6173706572736b792b2bKPNC Kaspersky++

Целых два вхождения! Почему два? Предположим, что при чтении ввода с клавиатуры символы сперва попадают в системный буфер, который и дает ложное срабатывание. Тем не менее не ставить же, не разобравшись, сразу обе точки останова. В данном случае четырех отладочных регистров процессора хватит, а как быть, если бы мы нашли десяток вхождений? Да и в двух бряках немудрено заблудиться с непривычки! Как отфильтровать помехи?

Начинаем думать.

На помощь приходит карта памяти — зная владельца региона, которому принадлежит буфер, можно очень многое сказать об этом буфере. Наскоро набив уже знакомую команду !dh passCompare1, мы получим приблизительно следующее (выбраны сведения только о секциях .data и .rdata):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

SECTION HEADER#2

.rdata name

A7E virtual size

2000virtual address

C00 size of raw data

1200file pointer toraw data

0file pointer torelocation table

0file pointer toline numbers

0number of relocations

0number of line numbers

40000040flags

Initialized Data

(no align specified)

Read Only

SECTION HEADER#3

.data name

388virtual size

3000virtual address

200size of raw data

1E00file pointer toraw data

0file pointer torelocation table

0file pointer toline numbers

0number of relocations

0number of line numbers

C0000040 flags

Initialized Data

(no align specified)

Read Write

Заодно определим базовый адрес модуля приложения: lmf m passCompare1 (в моем конкретном случае он равен 0xDE0000, а у вас значение, скорее всего, будет другим). Узнаем, куда в памяти загружена секция .rdata: 0xDE0000 + 0x2000 == 0xDE2000, а также куда загружена секция .data: 0xDE0000 + 0x3000 == 0xDE3000. Это гораздо выше найденных адресов расположения буферов с введенным паролем. Следовательно, найденные адреса не указывают в области .data и .rdata.

Думаем дальше. Адрес 0x147fd80 выходит далеко за пределы ломаемого приложения, и вообще непонятно, чему принадлежит. Почесав затылок, мы вспомним о такой «вкусности» Windows, как куча (heap). С помощью команды !heap посмотрим, где она начинается:

Index Address Name Debugging options enabled

1:01470000

Из этого заключаем, что адрес 0x147fd80 явно находится в куче.

Разбираемся дальше. Поскольку стек растет снизу вверх (то есть от старших адресов к младшим), адрес 0xf9f810 находится в стеке. Уверенность подогревает тот факт, что большинство программистов размещает буфера в локальных переменных, ну а локальные переменные, в свою очередь, размещаются компилятором в стеке.

Ну что, попробуем поставить бряк по первому адресу?

0:001>ba r400f9f810

0:001>g

На втором запросе пароля снова вводим KPNC Kaspersky++. Жмем Enter и дожидаемся сиюминутной активации отладчика. Бряк произошел на второй из этих строк:

77c349f38806           mov     byteptr[esi],al

77c349f546             inc     esi

77c349f68975d8         mov     dword ptr[ebp28h],esi

Смотрим, что находится в регистре esi:

dc esi

00f9f810434e504b73614b20737265702b2b796bKPNC Kaspersky++

Впрочем, этого и следовало ожидать. Попробуем выйти из текущей функции по Shift + F11. И мы снова попадем на эту же строку. Вновь посмотрим содержимое этого регистра:

00f9f81120434e507073614b6b7372650a2b2b79PNC Kaspersky++.

Ага, один символ откусан. Следовательно, мы находимся в сравнивающей процедуре. Выйдем из нее нажатием на F5, так как при нажатии на Shift + F11 мы перейдем следующую итерацию перебора символов.

00de10e0b80821de00 mov eax,offset passCompare1!`string(00de2108)

00de10e58a11mov dl,byteptr[ecx]

00de10e73a10cmp dl,byteptr[eax]ds:002b:00de2108=6d

00de10e9751ajne passCompare1!main+0xc5(00de1105)

И вот мы в теле уже хорошо нам знакомой (развивайте зрительную память!) процедуры сравнения оригинального и введенного пользователем паролей. На всякий случай для пущей убежденности выведем значение указателей EAX и ECX, чтобы узнать, что с чем сравнивается:

0:000>dc eax

00de21084f47796d6170444f6f777373000a6472myGOODpassword..

0:000>dc ecx

00f9f810434e504b73614b20737265702b2b796bKPNC Kaspersky++

Как раз то, что мы ищем!

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

Выводы

Итак, мы познакомились с одним более или менее универсальным способом взлома защит, основанных на сравнении пароля (позже мы увидим, что он подходит и для защит, основанных на регистрационных номерах). Его основное достоинство — простота. А недостатки… недостатков у него много:

  • если программист очистит буфера после сравнения, поиск введенного пароля ничего не даст, разве что останутся системные буфера, которые так просто не затереть, но отследить перемещения пароля из системных буферов в локальные не так-то легко;
  • служебных буферов много, и очень трудно определить, какой из них «настоящий». Программист же может располагать буфер и в сегменте данных (статический буфер), и в стеке (локальный буфер), и в куче, и даже выделять память низкоуровневыми вызовами типа VirtualAlloc или… да мало ли как разыграется его фантазия. В результате подчас приходится просеивать все найденные вхождения тупым перебором.

Резервное сохранение активационных ключей

Потеря ключей активации может быть весьма затратной проблемой с точки зрения временных и финансовых ресурсов. Вы можете сохранить ваши ключи активации в обыкновенном текстовом файле, Word, Excel, PDF, HTML, CSV, XML или просто оправить их прямо на принтер.

Сканировать другую систему Windows или жесткий диск

Recover Keys может также сканировать другие операционные системы Windows или другие жесткие диски (HDD) на предмет поиска ключей, функциональные или нет

Если не получилось

Если у вас не получилось сделать по инструкции или остались какие то вопросы, можете обратиться за помощью к нашим специалистам

Системные требования

Работает на Windows NT / 2000 / XP / Vista / 7 / 8 / 8.1 / 10. 32-битные или 64-битные системы. Особые требования отсутствуют.

Программа SIW

Последний раздел статьи. Используем программку SIW. Вам достаточно скачать её, запустить и перейти слева на вкладку «Лицензии».

Риски при использовании кейгенов

Как правило кейгены распространяются , вместе с тем программным обеспечением, к которому они предназначены. Они написаны с помощью алгоритмов, которые аналогичны тем, что используются при создании вирусов и троянов. По этой причине многие из них определяются антивирусными программами как вредоносные. Зачастую это и вправду так.

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

Однако Россия из года в год занимает первое место по использованию нелицензионного программного обеспечения. Связано это с тем, что стоимость многих из них является немалой. К этому стоит прибавить и неотработанное правоприменение в отношении нарушителей авторских прав при использовании лицензионных продуктов. Чаще всего кейгены выпускаются к таким популярным платным программам, как офисные пакеты от Microsoft, операционные системы семейства Windows, программы распознавания текстов (например, Abbyy»s FineReader) и графические редакторы (Adobe Photoshop).

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: