· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› HASP Envelope - как снять ?

<< . 1 . 2 . 3 . 4 . 5 . >>

Посл.отвђт Сообщенiе


Дата: Июл 28, 2004 19:02:49

„А можно еще вопрос (про Transform) ? У меня (я vxd смотрю, а не sys) как-то немного по-другому это выглядит:“

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


Дата: Июл 29, 2004 09:19:45

HarmEr

И (если можно) еще один. Тогда верно ли я понимаю, что возможно получить табличную эмуляцию transform-2, если накопить достаточно пар (порядка 128 штук, видимо) 4-х байтных пар encrypted/decrypted, которые выдает функция 3d и перебрать все варианты 39 бит, фильтруя этими парами ? Перебор возможно улучшить чем-то подобным алгоритму обращения crc (анализ последнего бита - был ли xor на последнем шаге).


Дата: Июл 29, 2004 09:58:48

У меня вопрос не к гуру , а к тем , кто пытается снять envelope без ключа и пока не знает как. Вопрос может быть глупый , поэтому заранее прошу прощения. Кто-нибудь пытался разобратьcя с утилитой instw32.exe от Aladdin , в которой наверняка лежит часть алгоритма envelope.
Мне кажется многое подскажет анализ ее кода.


Дата: Июл 29, 2004 11:40:56 · Поправил: infern0

„ но в случае с
эмулятором Глаши это были просто понты , потому что
кейген никому ничего не дал - без EdStruct генератора
это просто бесполезная вещь , поэтому по логике тебе
надо довести дело до конца . Cможешь ?“

Это были не понты, это было показательное выступление. (я имею в виду сырцы на fasm). Хотя сейчас, когда смотрю на все спокойно, я бы не стал этого делать.
У меня есть решение, так что смогу. А надо-ли ?


Дата: Июл 29, 2004 11:43:18

„Кто-нибудь пытался разобратьcя с утилитой instw32.exe от Aladdin“
я пытался, но завяз в коде ВМ, который занимает 40% места, и содержит 4 или 5 функций, причем выжных из них, как я понял, одна.


Дата: Июл 29, 2004 12:50:34

„И (если можно) еще один. Тогда верно ли я понимаю, что возможно получить табличную эмуляцию transform-2, если накопить достаточно пар (порядка 128 штук, видимо) 4-х байтных пар encrypted/decrypted, которые выдает функция 3d и перебрать все варианты 39 бит, фильтруя этими парами ? Перебор возможно улучшить чем-то подобным алгоритму обращения crc (анализ последнего бита - был ли xor на последнем шаге).“

Без знания алгоритма таблицу не построить
со знанием алгоритма достаточно знать всего 1 валидный ответ. Еще один можно знать для изыбточности(дополнительной проверки.)


Дата: Июл 29, 2004 12:54:43

„У меня вопрос не к гуру , а к тем , кто пытается снять envelope без ключа и пока не знает как. Вопрос может быть глупый , поэтому заранее прошу прощения. Кто-нибудь пытался разобратьcя с утилитой instw32.exe от Aladdin , в которой наверняка лежит часть алгоритма envelope.
Мне кажется многое подскажет анализ ее кода.“


я его весь разобрал.
Но если ты хочешь отыскать там явый алгоритм(как фиксит с метео нашли алго генерации ST из паролей в 1999) позволяющий все снять, то уверяю тебя его там нет.
Снять конверт можно только найдя дыру в реализации шифрования. И зная алго шифрования 3С/3D


Дата: Июл 29, 2004 14:51:41

2 infern0 :

"У меня есть решение, так что смогу. А надо-ли ? "
Конечно надо , хотя если его отдавать в public access , то сильно засуетиться Aladdin , это же по сути пинок под зад всем его криптографам.
Решение вам подсказали сырцы , которыми поделился с вами MeteO или сами задачу решили ?

2 Harmer:

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


Дата: Июл 29, 2004 17:31:21

2 man0war

Совершенно верно.


Дата: Июл 30, 2004 12:02:24

HarmEr

Спасибо. Ты верно сказал, но я все же проверил. Оказывается, для проверки того, что Trnasform2 - не 256-ти (или меньше) битовая таблица подстановок, достоточно около 10 пар 4-х байтовых. Видимо, это говорит о том, что на каждом шаге transform2 меняет Key.

Кстати, я тут еще в аксусе нашел такой код, но, видимо, он относится к обмену между ключом и драйвером:
; Подпрограмма 00012C50
; Участвует в преобразовании f 3d: первая часть: 4 bytes->new 4 bytes
; Например: 4FB3A179h -> 284F580Dh

00012C50: 55             push        ebp
00012C51: 8B44240C       mov         eax,[esp][0C]
00012C55: 8BEC           mov         ebp,esp
00012C57: 83EC04         sub         esp,004
00012C5A: 85C0           test        eax,eax
00012C5C: 53             push        ebx
00012C5D: 56             push        esi
00012C5E: 57             push        edi
00012C5F: 7456           je         .000012CB7
00012C61: 8B7510         mov         esi,[ebp][10]
00012C64: 8B7D14         mov         edi,[ebp][14]
00012C67: 8945FC         mov         [ebp][-04],eax

00012C6A: 32D2           xor         dl,dl
00012C6C: BB04000000     mov         ebx,000000004
00012C71: 668B0E         mov         cx,[esi]
00012C74: 02D2           add         dl,dl
00012C76: F6C101         test        cl,001
00012C79: 741B           je         .000012C96
00012C7B: 668B07         mov         ax,[edi]
00012C7E: 80CA01         or          dl,001
00012C81: 6633C1         xor         ax,cx
00012C84: 668906         mov         [esi],ax
00012C87: 66C1E801       shr         ax,001
00012C8B: 668906         mov         [esi],ax
00012C8E: 80CC80         or          ah,-080
00012C91: 668906         mov         [esi],ax
00012C94: EB07           jmps       .000012C9D
00012C96: 66C1E901       shr         cx,001
00012C9A: 66890E         mov         [esi],cx
00012C9D: 02D2           add         dl,dl
00012C9F: F60680         test        b,[esi],080
00012CA2: 7403           je         .000012CA7
00012CA4: 80CA01         or          dl,001
00012CA7: 4B             dec         ebx
00012CA8: 75C7           jne        .000012C71
00012CAA: 8B4508         mov         eax,[ebp][08]
00012CAD: FF4508         inc         d,[ebp][08]
00012CB0: 3010           xor         [eax],dl
00012CB2: FF4DFC         dec         d,[ebp][-04]
00012CB5: 75B3           jne        .000012C6A

00012CB7: 5F             pop         edi
00012CB8: 5E             pop         esi
00012CB9: 5B             pop         ebx
00012CBA: 8BE5           mov         esp,ebp
00012CBC: 5D             pop         ebp
00012CBD: C21000         retn        00010


Все же проверю, что это не transform2.


Дата: Июл 30, 2004 15:59:52

Код несомненно интересный, я его даже раньше не заметил, но это не "трансформ".
void test(
    BYTE *ptr0,
    int   cnt,
    WORD *ptr1,
    WORD *ptr2
    )
{
    int i;
    BYTE n;

    for( ; cnt; --cnt, ++ptr0 )
    {
        for( n = 0, i = 4; i; --i )
        {
            n <<= 1;

            if( *ptr1 & 1 )
            {
                n |= 1;
                *ptr1 ^= *ptr2;
                *ptr1 >>= 1;
                *ptr1 |= 0x8000;
            }
            else
            {
                n <<= 1;
                *ptr1 >>= 1;
            }

            n |= !!( *ptr1 & 0x80 );
        }
        *ptr0 ^= n;
    }
}


Дата: Авг 3, 2004 12:04:09

HarmEr

Вытаскиваю тут потихоньку transform (аттач). Брр ! Чем вы его смотрели ?! Я в hiew задолбался разбирать эти куски. Такое впечатление, что код разбили на куски, кускам присвоили произвольные веса и построили хитросвязанное двоичное дерево. Уже нашел команды in/out. Видимо, мне удасться получить "чистый" алгоритм чтения ключа (не сам 3d), без драйверов и прерываний.

2115186499__hardlock.txt


Дата: Авг 3, 2004 15:01:11 · Поправил: HarmEr

„Вытаскиваю тут потихоньку transform (аттач). Брр ! Чем вы его смотрели ?! Я в hiew задолбался разбирать эти куски. Такое впечатление, что код разбили на куски, кускам присвоили произвольные веса и построили хитросвязанное двоичное дерево. Уже нашел команды in/out“

Писали скрипт пошагового анализатора для иды(с сохранением трейсировки в файл) + скрипт на перле, для оптимизации переходов и востановления логики.

На разбор ВСЕГО драйвера ушло не больше недели.

пока один человек чистил, второй тутже переписсывал на "С". Примерно 2-3к в час.

Я бы тебе посоветовал взять простинький движок дизасемблера в сырцах, и прикрутить к нему анализатор (сразу после декодера команд), было бы гораздо быстрее, благо не очень уж тут сильный обсфускатор. Достаточно глубины в 5 команд, чтобы все правильно разобрать.


Дата: Авг 6, 2004 02:00:08

HarmEr

Сенькс. К сожалению, для меня пока это слишком - писать такую автоматизацию - я только с полгода назад начал использовать hiew. Хотя к этому надо стремиться.

А вот тут я уже налетел на код, шныряющий по таблицам переходов (аттач). Как я понял, может быть главная таблица переходов и несколько подчиненных или же просто цепь. Каждая таблица может содержать адреса кусков кода, которые передают управление согласно таблице (указатель в esi), параметры (смещения в локальном буфере - lea esp,[esp-70h]) и dd-билеберду в виде признака окончания таблицы. Вроде как я нашел три таблицы, последняя содержит подкод возврата (xor eax,eax - xchg eax,[esp] - jmp eax).

Пока не вижу другого решения кроме как выписать из таблиц адреса кусков кода, выдернуть их и "склеить".

881045027__walk_tables.txt


Дата: Авг 6, 2004 18:02:33

_Chingachguk_
Это виртульная машина, vIntel. Ана мне понравилась больше всего (так и не удалось оптимизировать ее разбор).
Каждый переход это указатель на функцию эмуляции команды.
Прокоментируй точки входа, и увидишь весь код.

Там штук 70 таких функций. Это протокол шифрования между драйвером и приложением.

<< . 1 . 2 . 3 . 4 . 5 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.082