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

 eXeL@B —› Протекторы —› HWID в Enigma 5.X
Посл.ответ Сообщение

Ранг: 9.1 (гость), 20thx
Активность: 0.040.08
Статус: Участник

Создано: 08 апреля 2020 10:23
· Личное сообщение · #1

Добрый день.
На T4U (Ссылка) полгода назад был выложен небольшой челлендж по смене HWID в Enigma 5.Х. Честно, я не уверен, что это именно 5 (DIE сказал), а не 6, т.к. при установке программа автоматически сразу обновляется. Там отписались как-раз, что Enigma поменяла генерацию хвида - раньше были скрипты, сейчас не работают. Стало интересно.
Там виртуальная машина. Немного разобрал генерацию хвида под ней, например, хвид 01296-5398B-3F772-FECC6 хранится как F67EBA8ED185CC75422B, где каждый байт это позиция в строке "ABCDEF1234567890-", т.е. 0-F, 1-6, 2-7 т и т.п.
Хвид всегда выплёвывается на выходе из одной и той же функции по [esp+128] (ниже часть кода функции). Там же мы его можем и подменить.
Как я понимаю, это не всё, т.к. не регистрируется данными из челленджа

Может кто-н подсказать в каком направлении дальше копать? Я просто думаю, что может эта функция генерит только информацию для внешнего представление хвида, а где-то там есть ещё само число..

Code:
  1. ADD AL, BYTE PTR SS:[EBP + ESI - 114]
  2. AND AL, FF
  3. MOV ECX, DWORD PTR SS:[EBP - 4]
  4. MOV CL, BYTE PTR DS:[ECX + EBX]
  5. AND EAX, FF
  6. XOR CL, BYTE PTR SS:[EBP + EAX - 114]
  7. MOV EAX, DWORD PTR SS:[EBP - 8]
  8. MOV BYTE PTR DS:[EAX + EBX], CL
  9. INC EBX
  10. DEC DWORD PTR SS:[EBP - 14]
  11. JNE vorpcontrol.A1A6D0
  12. POP EDI
  13. POP ESI
  14. POP EBX
  15. MOV ESP, EBP
  16. POP EBP
  17. RET 8




Ранг: 9.1 (гость), 20thx
Активность: 0.040.08
Статус: Участник

Создано: 11 апреля 2020 01:19
· Личное сообщение · #2

Странно, 400+ посмотров, а нет ни одного ответа. На карантине время есть) Отвечу сам - вдруг будет интересно.

Исходные данные:
1. Программа, накрытая последней Энигмой (6.x 32-bit).
2. Рабочая связка HWID+Name+Key.

По замыслу, HWID + Name отправляются разработчику, который отправляет в ответ Key и программа регистрируется.

Задача: получить HWID 01296-5398B-3F772-FECC6 (из той рабочей связки)

Решение:
1. Изменим вид на более читабельный: 0129-6539-8B3F-772F-ECC6
2. Используем шаблон "ABCDEF1234567890" (без кавычек) для преобразования во внутреннее представление, т.е. "0" в нашем хвиде будет "F", "1" - "6" и т.д.
3. Получим внутреннее представление: F67E-BA8E-D185-CC75-422B (в памяти он хранится без тире)
4. Применим блочный RC5 (Ronald Rivest, 1994) на последние 16 цифр, используя вшитый в программу 256-битный ключ.
5. Результат дешифровки (в нашем случае): F67E-1500-959C-D202-7875

После серии экспериментов были установлены следующие зависимости:
1. Часть "F67E" - контрольная сумма, получается автоматически при верных остальных
2. Часть "1500" - постоянна для одной программы (вшита?)
3. Часть "959C" - младшее слово серийного номера винчестера.
4. Часть "D202" - младшее слово хэша (XOR + ADD + mod 2) множественного вызова CPUID с различными параметрами.
5. Часть "7875" - постоянная, т.к. это младшее слово хэша обработки вызова "//./Device/PhysicalMemory", а он завершается на Win10 как STATUS_OBJECT_TYPE_MISMATCH ==>> просто хэш нулей.

Таким образом достаточно подменить только SN SDD и результаты CPUID при загрузке, чтобы получить нужный HWID 01296-5398B-3F772-FECC6.
Конечно, если привязка была сделана также по другим параметрам, то HWID просто будет длиннее на нужное количество используемых входных данных (видел длиной 8).

| Сообщение посчитали полезным: TryAga1n, CyberGod, Nightshade, mak, v00doo, Jaa, Hugo Chaves

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

Создано: 14 апреля 2020 16:33
· Личное сообщение · #3

плотно ковырял пятую версию - там всё гораздо круче наворочено.
а о каком челлендже идёт речь ?



Ранг: 9.1 (гость), 20thx
Активность: 0.040.08
Статус: Участник

Создано: 14 апреля 2020 18:08 · Поправил: Illuzion
· Личное сообщение · #4

bartolomeo пишет:
плотно ковырял пятую версию - там всё гораздо круче наворочено.


эээ... Может быть Вы что-то путаете "круче наворочено"? Это последняя энигма (сайт) - 6+, заголовок топика неверный. Включены основные опции - машина, обфускция, сжатие, серийник хдд+привязка, константа, антиотладка..
Звучит сомнительно, что в 5-ой версии было сложно, а в 6-ой стало просто) Раскладывается как по нотам. Более того, есть погуглить, то до версии 5.4 хвид менялся просто подменой, и есть паблик скрипты. Сейчас этого не сделать, т.к. по-сути там нет цельного понятия хвид, он только для пользователся в таком виде представлен. А для более поздних версий в паблике я не нашёл ничего (может плохо искал), потому и поделился.
P.S. а то, что я алгоритм такой просто написал, то это же уже результат - остальное за кадром же.




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

Создано: 16 апреля 2020 20:59 · Поправил: difexacaw
· Личное сообщение · #5

Так а в чём проблема. Инфа получается через сервисные запросы. Лог может быть сложным для поиска инфы в нём из за размера, может например сканиться весь реестр, будет трудно выделить нужные ключи.. Что касается всяких констант/строк/сигнатур так это детская задача, крутнуть автоматикой она всё сама находит.

-----
vx




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

Создано: 19 апреля 2020 02:53
· Личное сообщение · #6

Illuzion пишет:
эээ... Может быть Вы что-то путаете "круче наворочено"?

да я перепутал с генерацией ключа - там какая то лютая математика.
насколько я помню в 5-ой версии хвид генерился 2 раза, видимо как раз для того чтоб его нельзя было подменить инструментами из паблика.


 eXeL@B —› Протекторы —› HWID в Enigma 5.X
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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