![]() |
eXeL@B —› Вопросы новичков —› Старый hasplms и v2c |
Посл.ответ | Сообщение |
|
Создано: 22 декабря 2015 22:21 · Поправил: connect6 · Личное сообщение · #1 Здравствуйте. Копаю потихонечку hasplms с дров 5.40 (2008 г.) под вин2к. Выбрал первую версию дров, в которой появилась поддержка в2ц апдейтов с надеждой, что там обфускация уступает современным дров хаспа. Цель: понять насколько возможно формат в2ц апдейтов и уметь (даже неполностью) дешифрировать их. Читал, что подпись там рса 1024 стоит и изменений нельзя делать, цель только дешифровать в2ц, не вносить в них изменений. Любая помощь будет полезной. В бизнесстудию олядина сгенерировал себе маленький в2ц апдейт для демо ключа и подаю его hasplms. До фазе "заливки" апдейта в хаспе даже пока нет надобности доходить. Ошибка ненайденного хаспа вполне хватает. Отлаживаю старым софтайсом (с iceext .7), но и софтайс палится в некоторых местах, пока терплю, так как я далеко вообще от понимания, что с в2ц творится. Возможно даже в2ц на самом деле код для ВМ? Не смотря на обфускацию добрался до первого места где после base64 дешифрования уже hex бафер обрабатывается (правда, не совсем последовательно, а с каким-то "танго" шагом): cs:41BCF0 mov byte ptr eax, [ecx+eax] ;eax - buffer offset Линк к древним дровам хаспа, с вопросным hasplms: Тестовой в2ц: ![]() ![]() |
|
Создано: 22 декабря 2015 22:42 · Поправил: MasterSoft · Личное сообщение · #2 connect6 я конечно не знаю как там в хаспе дела обстоят, но если взять любой современный ключ и посмотреть там обновы, то обычно всё это шифруется рса (иногда и шифруется в ключе, как в ру версии сенселока, в таком случае ассиметрия не нужна) и расшифровывается только в ключе и расшифровать это увы невозможно не зная ключа шифрования (который должен быть уникальным для проекта или для ключа), это грамотный подход, а иначе обновление не безопасно. Ещё раз повторюсь, что не знаю как там в хаспе, но если есть доступ к тулзе генерации обнов, то рекомендую начать с неё и посмотреть как они собственно собираются. Вместо айса есть ещё сиська (которая кстати умерла, что несколько раздражает). ![]() |
|
Создано: 22 декабря 2015 22:59 · Поправил: connect6 · Личное сообщение · #3 "Доступ к тулзе генерации обнов" есть у каждого - она общедоступная, но слишком объемная...И на 99% уверен, что оня пользует тот же самый hasplms для синтеза в2ц...Окончательное аес дешифрование происходит в самом хаспе, но интересен формат в2ц. Смотрю дальше происходит что-то вроде SHA1. Начало очередных 64 байтов - CS:452C91. На тот момент ebx счетчик оставшися блоков по 64 байт, а на вершине стека - указатель к (очередному) блоку из 64 байт. Где-то 20 байтов выше данного блока находится буфер хаша 20 байтов 01 23 45 67 89 AB CD EF FE DC.... В первых раундов как в доках sha1 проходит и через CS:51C598 LEA EBX, [EDX+EBX+5A827999] - константа знакомая ;) ![]() |
|
Создано: 25 декабря 2015 15:13 · Поправил: connect6 · Личное сообщение · #4 К сожалению хеш первого блока байтов (14h*40h, в файле по адресу 4 до 503h) не соответствут ни SHA1 , ни SHA0... На выходе CS:4E7847 DEC EBX ; (ebx=0 - нет больше блоков по 64 байт) F9 E1 01 FE 53 54 08 E4 A3 36 D8 39 C3 9B EC CF 0C EC 1A 07 Либо позже еще немножко обрабатывается до: 00 0C 77 1A 89 09 84 95 3C 06 A1 86 0B 3E F8 73 72 C4 74 54 Для удобства приаттачил base64 дешифрованный v2c файл. ![]() Добавлено спустя 12 часов 20 минут Не обращая полного внимания на хеш функу (изменении в в2ц вносить не собираюсь), продвигаюсь дальше один, хотя уверен, что некоторые из вас давно уже разобрались с в2ц. 540 байт в2ц от смещению 1А (16 31 10 84 F4...) с помощью XOR преобразования преобразуются в приаттатченном блоке. Длина и начало преобразования еще не исследованы. Внутри заметен публичный РСА 1536 ключ с експоненты. ![]() ![]() |
|
Создано: 26 декабря 2015 13:37 · Поправил: connect6 · Личное сообщение · #5 Другой WORD хеш вычисляется для 13 байтов, начиная с адреса 12h (94 DE 5E F3 D9 CB 00 00 1A 02 00 00 60). Байты от адреса 1А (1A 02...) уже декодированы с функцией, упомянутой в прежнем посте. WORD по адресу 18h (BDC6) на самом деле хеш вопросных 13 байтов. Но при его вычислением заменена на 0000. Хеш вычисляется CS:497399 и проверяется здесь: CS:540D8A CMP SI,AX ![]() |
|
Создано: 27 декабря 2015 12:35 · Личное сообщение · #6 |
|
Создано: 27 декабря 2015 13:08 · Поправил: connect6 · Личное сообщение · #7 sfinks_2002 Наверное имеешь ввиду vendor code: Добавлено спустя 6 часов 13 минут Возвращаюсь к пока неизвестной SHA- подобной хеш функцией, так как опять с ней вычисляется хеш от (см. файл decoded.bin) смещению 44h (A7 81 ....) длиною в C0 байтов. Обращая внимания на вот такую константу: CS:498EEF LEA EDX,[ [ECX+EDX+50A28BE6] допустил, что возможно на самом деле это RIPEMD-160, но хеш опять не соответствует ![]() Attach/Update failed. Error Description: HASP_INV_UPDATE_DATA Required XML tags not found Contents in binary data are missing or invalid Error Code: 19 Хеш данного блока 0F 80 E7 08 1B CD F9 E2 EB 8E 62 2A FA 68 90 CA 02 CC 11 2C. ![]() |
|
Создано: 28 декабря 2015 10:05 · Личное сообщение · #8 connect6 Информация в дешифрованном файле структурирована по стандарту ASN.1 Сначала с этим надо разобраться , а потом уже хеши искать . ![]() |
|
Создано: 28 декабря 2015 21:53 · Поправил: connect6 · Личное сообщение · #9 |
|
Создано: 29 декабря 2015 15:20 · Личное сообщение · #10 |
|
Создано: 29 декабря 2015 17:31 · Личное сообщение · #11 |
|
Создано: 29 декабря 2015 18:53 · Личное сообщение · #12 |
|
Создано: 29 декабря 2015 20:06 · Личное сообщение · #13 connect6 пишет: Говорят, что аес ключи обновляемых с в2ц фич находятся как раз в в2ц файлах. фичи покрипчены вендор ключем , который не покидает самого ключа ни при каких процедурах . Фича раскрипчиавается в ключе этим вендор ключем , потом криптиться индивидуальным ключем и пишется в еепром . хотите раскриптить в2с - читайте ключ . иначе наверное никак ![]() |
|
Создано: 29 декабря 2015 20:18 · Поправил: connect6 · Личное сообщение · #14 |
|
Создано: 29 декабря 2015 20:19 · Поправил: kid · Личное сообщение · #15 |
|
Создано: 29 декабря 2015 20:27 · Личное сообщение · #16 |
![]() |
eXeL@B —› Вопросы новичков —› Старый hasplms и v2c |