eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: Mishar_Hacker (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

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

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

Создано: 7 августа 2007 08:50 New!
Цитата · Личное сообщение · #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.: ..Просто понимаю, что копаться с ней буду еще долго, но "в пустую" время тратить не совсем хотелось бы. Может кто уже сталкивался с ней..


Ранг: 528.5 (!)
Статус: Участник
5KRT

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

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

Ранг: 4.3 (гость)
Статус: Участник

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

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


Ранг: 1288.1 (!!!!)
Статус: Модератор

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

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

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

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

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

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

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


Ранг: 1288.1 (!!!!)
Статус: Модератор

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

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

Ранг: 352.4 (мудрец)
Статус: Участник
retired

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

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


Ранг: 113.1 (ветеран)
Статус: Участник

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

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

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

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

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

Larry

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

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

_______________________________________________________
ssx

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


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

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

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

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

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

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

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


{ Атач доступен только для участников форума } - Guardant.log - 2.txt

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

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

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

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

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

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

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

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

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

Ранг: 25.6 (посетитель)
Статус: Участник

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

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

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

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

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

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

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

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

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

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

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

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

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


Ранг: 1288.1 (!!!!)
Статус: Модератор

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

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

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

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

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

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

****

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

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

Ara

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Ранг: 25.6 (посетитель)
Статус: Участник

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

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

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

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

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

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

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

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

Ранг: 25.6 (посетитель)
Статус: Участник

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

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

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

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

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

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

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

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

Ранг: 25.6 (посетитель)
Статус: Участник

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

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

Ранг: 49.7 (посетитель)
Статус: Участник

Создано: 9 августа 2007 20:24 New!
Цитата · Личное сообщение · #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 (посетитель)
Статус: Участник

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

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

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

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

Prober:

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

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

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

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

Ранг: 49.7 (посетитель)
Статус: Участник

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

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

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

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

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS