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

 eXeL@B —› Основной форум —› Алго "0" в Guardant Stealth II от 97-98 г.
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 07 августа 2007 08:50
· Личное сообщение · #1

Hi, [ all ]!

Дано:

Программа: Галактика 5.7
Год: 1997-1998.
Защита: Guardant Stealth II

Используется:
- nsk_Transform
- nsk_DecGP
- Алгоритм "0"
- exe-шники ничем на защищены.

Суть:
Программа разделена на 2-е части. 1 - "клиент", 2 - "сервер".
Сервер каждые 2 сек. проверяет заданную у него в настройках "папку" на предмет обнаружения в ней файла с расширением "*.req"(FindFirstFile & FindNextFile). Размер создаваемого клиентом файла "req", 26 байт. Если он есть(файл) - сервер берет по определенным позициям(00h dd = L1, 04h dd = L2) из этого файла данные(2 dd + еще чего-то, надо в кучи листочков смотреть, непомню). НО берется из всего файла около 3 DD.
После чего эти данные "прогоняются" через nsk_Transform(длина 0Ch) и пишутся в *.ans файл.
При всем этом участвует еще и nsk_DecGP.

Код программы написан на Builder 4-5 версий.

Использую:
- PEiD .94
- IDA 5
- OllyDebuger 1.10 + plugins
- DN & HIEW 6
- SDK от Guardant (2002-2004)

Так вот, вопросы к уважаемым [ all ]:
- Имеет смысл заменить возвращаемые значения из ф-ций Guardant -а, в самой программе, или это не спасет положения?
- Какие тулзы посоветуете для раскопки программы?

P.S.: ..Просто понимаю, что копаться с ней буду еще долго, но "в пустую" время тратить не совсем хотелось бы. Может кто уже сталкивался с ней..




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 07 августа 2007 11:21
· Личное сообщение · #2

Ссылку в студию... Или лучше минимальный набор для запуска

-----
Research For Food




Ранг: 4.3 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 07 августа 2007 11:28
· Личное сообщение · #3

Для защиты использован ключ с нестандартным алгоритмом nsk_Transform.
Все эмуляторы сразу идут лесом.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 07 августа 2007 11:39
· Личное сообщение · #4

Я еще слышал, что ключ - это не главная защита. Там юзается собственный байт-код, придется его разбирать самому...



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 07 августа 2007 15:20
· Личное сообщение · #5

блин.. неужели все так грустно?!

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

мин набор? .. сча выложу..




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 07 августа 2007 17:04
· Личное сообщение · #6

Хотя я упустил про 97-98 год. Мож в старых вериях и не так всё страшно было



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 07 августа 2007 18:01
· Личное сообщение · #7

кажется было. у меня даже где-то валялись куски из исходников галактики




Ранг: 114.4 (ветеран), 21thx
Активность: 0.040.01
Статус: Участник

Создано: 08 августа 2007 07:35
· Личное сообщение · #8

Тоже что-то валяется по этой проге. Посмотри, может пригодится:

rapidshare.com/files/47636161/galaxy.rar.html



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 08:53 · Поправил: st47k3r
· Личное сообщение · #9

Larry

Ничего се "завалялось"! ..даже спрашивать не хочу откуда это
Пошел изучать ..

ЗЫ: можешь в ПМ или на почту как-то откоментировать, что\для чего можно использовать?

_______________________________________________________
ssx

Можешь поделиться?


Скоро выложу лог работы.. чет у меня не "клеится" где-то..

А есть у кого-нибудь описание структуры в памяти ключа?
Ну, т.е. "что и по каким адресам записано"?

А то у меня первые 00-0D ячейки в "дампе" - нули. Хотя в примере от Larry - там даже значения стоят..

Вот думаю, мож чего "не так"?



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 08:58
· Личное сообщение · #10

Лог работы "оригинального ключа".
Снято - GiA Logger 2.1


9f91_07.08.2007_CRACKLAB.rU.tgz - Guardant.log - 2.txt



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 17:39 · Поправил: st47k3r
· Личное сообщение · #11

Выкладываю минимальный набор для запуска.

Кто будет смотреть - прошу озвучивать мысли!

хттп://rapidshare.com/files/47720171/_galaxy.zip

кто сможет помочь с запуском эмуля GiA Emulator 2.7?
Хочу им попробовать.

Почему-то CHKNSKW.EXE не хочет видеть ключ, после установки эмуля
Пишет "CRC error in ChkNSK".

Я не понимаю, что ему не нравиться.

И еще: кто-нить может объяснить, почему у меня в дампе ключа адреса 00-0D = dup(00) ?



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

Создано: 08 августа 2007 18:42
· Личное сообщение · #12

таки фсе-таки ключег заказной....
st47k3r пишет:
А есть у кого-нибудь описание структуры в памяти ключа?
Ну, т.е. "что и по каким адресам записано"?

У тя ж СДК в инструментах названо...
st47k3r пишет:
И еще: кто-нить может объяснить, почему у меня в дампе ключа адреса 00-0D

А чем дампил? Логгером. Там дамп не полный снимаецца, соответственно утилита обламываеца с ключем



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 18:59 · Поправил: st47k3r
· Личное сообщение · #13

опять косяк.
пост "лишний"



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 18:59 · Поправил: st47k3r
· Личное сообщение · #14

bitgame
Я нашел уже, спасибо!

Но почему там пусто?
Это из-за "заказного" ключа?
И как это "лечить"? ( точнее - оно вообще, в принципе, - лечиться? )

Дампил разными:
- guardant dumper by infern0
- LzDumper
- GDDMP
- nxdump

все создали одно и тоже. Некоторые "высказались" - что Алго 0 есть, и некоторые к этому добавили что юзает GD(или GP, как его там?)




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 августа 2007 19:01 · Поправил: Ara
· Личное сообщение · #15

st47k3r
Твоя конечная цель какая - просто съэмулить ключ или еще и увеличить кол-во лицензий?

Я так и не понял - кто-нить поборол эту Галактику?



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 19:07 · Поправил: st47k3r
· Личное сообщение · #16

косяк какой-то.. 2 раза сообщение написалось..

****



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 19:07 · Поправил: st47k3r
· Личное сообщение · #17

Ara

Просто "тупо" с эмулить ключ, чтоб работало все тоже самое, но на "виртуалке"(Virtual Server 2005 R2)
И все.
Никаких лицензий НЕ НАДО!. Уже даже то, что есть - почти не используется.

Мне просто надо освободить "железку"(HW) из под "умирающей, но пока еще раз-от-разу использующейся" галактики.

Что бы если не нужна стала, взял "снял образ" с виртуалки, остановил ее - и в "нафталин" запихнул его(бэкап).
Если вдруг потребовалось - запустил образ виртуалки на виртуальном сервере и все - люди посмотрели что им надо, сделали; выключил, и опять в нафталин.
А то приходиться держать ради нее отдельную "железку"..
Вот чего и стал ее "копать" - "как бы ее"..





Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 19:23
· Личное сообщение · #18

Ara
Я так и не понял - кто-нить поборол эту Галактику?

черт его знает.. у Larry, была кое-какая информация - ссылка вверху



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 19:23 · Поправил: st47k3r
· Личное сообщение · #19

А с заказного ключа, реально как-нибудь "нормальный" дамп снять?



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 21:54 · Поправил: st47k3r
· Личное сообщение · #20

Эмуль сделать на него реально, или эта вещь - в принципе не "эмулица"?
Знатоки - АУ!

Кто что знает про Галактику 5.7 от 97 года?
(Само серверное ПО - от 97..)

А то, мож я зря все это?..



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

Создано: 08 августа 2007 23:34
· Личное сообщение · #21

чет мну терзают сомнения посчет того, что тебе надо hwserv копать... Подсовываю ему в папку KeyExch *.req он через 10 сек(у мну такая настройка) возвращает в этой папке *.ans тупо прогнанный через трансформ.
Ты находил в hwserv проверку на валидность ответа?



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2007 23:41 · Поправил: st47k3r
· Личное сообщение · #22

хмм.. а как ты его ваабще запустил?
у меня ничерта не вышло.

Один - ругается, второй - стартует, но не стартует сама прога.

Нет, проверки пока не встретил..
Вроде нет.

Я так понимаю что "клиент" - как-то проверяет ответ, все же..
хотя.. надеюсь, что ошибаюсь.



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

Создано: 09 августа 2007 00:18 · Поправил: bitgame
· Личное сообщение · #23

У тебя ж логи есть. В них видно, что прога хочет иметь от "ключа" чтоб запустица...
Если трудности, могу слепить memory для Хирургова муля (ты его хотел пробовать), но только SN будет мой
... и ID тоже
Забыл... Забавно выглядит дамп алго0, который Larry выкладывал. У тебя search нечто подобное снял?



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 09 августа 2007 00:27
· Личное сообщение · #24

давай, почта у тебя есть



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 09 августа 2007 00:30
· Личное сообщение · #25

эмм... а в чем "соль" SN и ID ?
если правильно понял - то с "родным" дампом - хрен что сделаешь?



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

Создано: 09 августа 2007 00:32 · Поправил: bitgame
· Личное сообщение · #26

или править настройки проги под мой SN или поправишь рег(для GiA) под свои SN и ID



Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 09 августа 2007 20:24
· Личное сообщение · #27

Когда-то давно, лет 5-6 назад, мне довелось бороться с Галактикой (Г) как раз версии 5.7. Механизм проверки ключа там такой.

1. Г генерирует два псевдослучайных DWORDа (8 байтов) и записывает их в REQ-файл (со смещения 0).
2. Сервер читает эти 8 байтов и выполняет над ними nskTransform (размер блока преобразуемых данных 12 байтов, но значимые из них только 8).
3. Из 12-тибайтного ответа сервер берет опять-таки 8 байтов и пишет их в ANS-файл (со смещения 1).
4. Г вычисляет правильный ответ (дескрипторы алгоритма хранятся в LIC-файле почти открыто, только слегка поXORенные), читает фактический ответ из ANS-файла и, естественно, сравнивает их.

Вызов nskDecGP идет только при использовании запасного ключа (с ограничением по числу запусков), над основным ключом эта операция не делается, на нее можно не обращать внимания.

Таким образом, потенциально существуют, как минимум, 3 варианта обхода защиты.

1. Эмуляция ключа (сервер и Г остаются нетронутыми). Проблема: табличная эмуляция не прокатит, а полнофункциональные эмуляторы широкой общественности недоступны.
2. Замена сервера программой-эмулятором (которая, не обращаясь к ключу, будет вычислять правильный ответ и писать его в ANS-файл). Проблема: нужно знать алгоритм вычисления правильного ответа. Его в сервере нет, он есть в Г, но хранится там в виде bin-кода (условно называю так код, который получается в результате компиляции программы, написанной на внутреннем языке Г). Вытянуть алгоритм из bin-кода достаточно сложно и трудоемко. Маститые донгловеды типа Larry наверняка знают алгоритмы Transformа и без реверсинга "галактического" bin-кода; мне они, увы, не покорились.
3. Патч Г (чтобы сравнение правильного и фактического ответов всегда давало положительный результат). Проблема: это сравнение тоже хранится в bin-коде, см. предыдущий пункт.

Возиться тогда пришлось долго. В итоге состоялся 3-ий вариант (хотя, насколько мне известно, в более поздних версиях появилась проверка bin-кода на целостность, и его так просто уже не пропатчить).

За подробностями в ЛС.



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

Создано: 09 августа 2007 21:29
· Личное сообщение · #28

Prober пишет:
полнофункциональные эмуляторы широкой общественности недоступны
уже доступны, но:
Prober пишет:
Маститые донгловеды типа Larry наверняка знают алгоритмы Transformа...
Судя по дампам алго0 это не простой алго стелса - попахивает заказным ключегом(да и не могли программеры галахтики, будь они хоть скольки пядей во лбе знать в 97 годе сикрет-алгоритм гварданта), т.ч. без реверснутого "галактического" bin-кода; замулить будет проблематишно
А вариант табличный муль + патчинг не рассматривался тобой?



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 09 августа 2007 23:29 · Поправил: st47k3r
· Личное сообщение · #29

Prober:

да. Я уже с этим столкнулся..
мм.. опыту у меня нет в таких "стезях", как "псевдо-код"(bin-код)..
Пойду, попробую "на зуб"..
________________________________
bitgame:
Рассматривать пытаюсь все варианты, просто начинать стараюсь не с "красивых решений", а с тех которые "попроще".. хотя - се "уперлось" в "клиента" галактики. Сервер "по-сути", почти не причем.

Завтра попробую "собрать" минимальный "набор" для запуска клиента..(хм.. учитывая то, что я в "Галактике" - как свин в апельсинах. Ну. Посмотрим, что получиться! )
По крайней мере, зная структуры пакетов(файлов) req-ans, хоть примерно представляю что искать буду

О продвижении буду отписываться..

ЗЫ: .. ниче.. зубы только сниснем крепче..
________________________________
Prober
Какими инструментами рекомендуешь воспользоваться? И что можно ждать от нее?



Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 10 августа 2007 13:49
· Личное сообщение · #30

bitgame пишет:
А вариант табличный муль + патчинг не рассматривался тобой?

Количество возможных вариантов запросов 2**64, табличный эмулятор сюда никак не пристроить.
st47k3r пишет:
Какими инструментами рекомендуешь воспользоваться? И что можно ждать от нее?

Смотри почту.


. 1 . 2 . >>
 eXeL@B —› Основной форум —› Алго "0" в Guardant Stealth II от 97-98 г.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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