Реверс инженеринг (алгоритма сжатия)

OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Реверс инженеринг (алгоритма сжатия)

Post by OtherSide »

Попала в руки древняя софтина, из которой нужно выжать данные.
Определил, что использует БД firebird, часть полей зашифрована
Смог определить соответвие зашифрованным данным, и разшифрованым.
Алгоритм шифрования на 99% один и тот же, т.к. копировал и подсовывал для чтения программе данные и она их читала. Если ручками вносить помехи пишет Read stream error

Image

расшифровывается вот в такое
2=1.17;7=1.17;8=1.17;$$$$
Первые 3 символа понятно что - длина в HEX (20 - длина потока 32 байта, первая 2 длина '20')

Думаю, что это остальные это какой то стандартный алгоритм сжатия. На эти мысли наводит то, что выходные строки, отличающиеся на 1-2 символа зашифрованы с отличием где-то 20-30%, остальное так же

Подскажите куда копать, чем может быть запаковано
User avatar
Boriskin
Уже с Приветом
Posts: 18906
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: Реверс инженеринг (алгоритма сжатия)

Post by Boriskin »

Какая ось, какой объем шифрования/сжатия (отдельные строки, килобайты етс), примерный возраст софта и насколько быстро происходит сжатие - разжатие? Требуется ли вводить пароль или оно само распаковывается?
Ответы на эти вопросы могут существенно уменьшить кол-во кандидатов.
Тупизна как Энтропия. Неумолимо растет.
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Реверс инженеринг (алгоритма сжатия)

Post by OtherSide »

Boriskin wrote: 13 Jun 2018 15:33 Какая ось, какой объем шифрования/сжатия (отдельные строки, килобайты етс), примерный возраст софта и насколько быстро происходит сжатие - разжатие? Требуется ли вводить пароль или оно само распаковывается?
Ответы на эти вопросы могут существенно уменьшить кол-во кандидатов.
На самом деле обновления софта происходят до сих пор, но судя по всему был начат в какой то гос конторе чуть ли в 90х, БД FireBird и похоже это написано на делфи.
Расжатие происходит мгновенно, там зашифрованы отдельные строки, объем - ну как обычно в БД объем строк с наименованиями.. в пределах 200-300 символов. Для юзера вообще это шифрование никак незаметно, столкнулся уже когда возникла потребоность перенести базу в MSSQL и использовать в своей версии софта.

Вот скрин из ib expert для наглядности

https://snag.gy/vmM0YN.jpg

Image
User avatar
AndreyT
Уже с Приветом
Posts: 3000
Joined: 14 Apr 2004 01:11
Location: SFBA (было: Минск, Беларусь)

Re: Реверс инженеринг (алгоритма сжатия)

Post by AndreyT »

Так а что показывает статистика по более длинным строкам: это все таки делается ради сжатия или ради шифрования?
Best regards,
Андрей
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Реверс инженеринг (алгоритма сжатия)

Post by OtherSide »

AndreyT wrote: 13 Jun 2018 16:01 Так а что показывает статистика по более длинным строкам: это все таки делается ради сжатия или ради шифрования?
я на 90% уверен что это просто самопальная защита от копирования данных. Вот посчитал строку на экране, получилось 238 (или около того), в БД зашифрованная 250 байт
подозрение на то что упакованная каким то алгоритмом, потом что строки в упакованном виде очень похожи, если распакованные данные отличаются на 1-2 символа. А я насколько знаю, современные виды шифрования при замене одного символа меняют строку до неузнаваемости
Image
Last edited by OtherSide on 13 Jun 2018 16:19, edited 1 time in total.
User avatar
Boriskin
Уже с Приветом
Posts: 18906
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: Реверс инженеринг (алгоритма сжатия)

Post by Boriskin »

Позырь, может это LZ/LZW фигня. Оно старинное и широко применяется в раскладах когда надо иметь возможность что-то разжать очень быстро и без вычислительных затрат, а одноразовые затраты на сжатие не волнуют.

ЗЫ Самопал - это было бы слишком сложно :-)
Тупизна как Энтропия. Неумолимо растет.
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Реверс инженеринг (алгоритма сжатия)

Post by OtherSide »

Boriskin wrote: 13 Jun 2018 16:17 Позырь, может это LZ/LZW фигня. Оно старинное и широко применяется в раскладах когда надо иметь возможность что-то разжать очень быстро и без вычислительных затрат, а одноразовые затраты на сжатие не волнуют.

ЗЫ Самопал - это было бы слишком сложно :-)
я так понимаю в алгоритмах сжатия получается словарь + сам текст, а где тут словарь не понятно и как без него проверить алгоритм
User avatar
Flash-04
Уже с Приветом
Posts: 63430
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: Реверс инженеринг (алгоритма сжатия)

Post by Flash-04 »

Я так понял автор не умеет дизассемблером пользоваться, иначе бы тему не создавал.
Not everyone believes what I believe but my beliefs do not require them to.
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Реверс инженеринг (алгоритма сжатия)

Post by OtherSide »

Дизасемблером да пользовался последний раз лет 15 назад даже не знаю что сейчас используют. Поставил IDA под ним приложение не запускается
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Реверс инженеринг (алгоритма сжатия)

Post by OtherSide »

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

если руками править значения в базе, вылетает окошко stream read error. На вылет этого окошка можно поставить брекпоинт, что бы дойти через callstack до нужного места
User avatar
VovaK98
Уже с Приветом
Posts: 1830
Joined: 04 Mar 2002 10:01
Location: Tampa

Re: Реверс инженеринг (алгоритма сжатия)

Post by VovaK98 »

XOR
Несите чушь бережно, стараясь не расплескать. Чушь хороша, когда она полная.
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Реверс инженеринг (алгоритма сжатия)

Post by ALV00 »

Flash-04 wrote: 13 Jun 2018 18:20 Я так понял автор не умеет дизассемблером пользоваться, иначе бы тему не создавал.
А Вы, Flash, должны вообще такие задачи в уме решать :) Это же простейшее упражнение на криптоанализ.
User avatar
AndreyT
Уже с Приветом
Posts: 3000
Joined: 14 Apr 2004 01:11
Location: SFBA (было: Минск, Беларусь)

Re: Реверс инженеринг (алгоритма сжатия)

Post by AndreyT »

ALV00 wrote: 14 Jun 2018 21:20
Flash-04 wrote: 13 Jun 2018 18:20 Я так понял автор не умеет дизассемблером пользоваться, иначе бы тему не создавал.
А Вы, Flash, должны вообще такие задачи в уме решать :) Это же простейшее упражнение на криптоанализ.
Вы имеете в виду

Image

или

Image

???
Best regards,
Андрей
User avatar
Uzito
Уже с Приветом
Posts: 8239
Joined: 06 Feb 2002 10:01
Location: NJ, USA

Re: Реверс инженеринг (алгоритма сжатия)

Post by Uzito »

Сдается мне это обычный XOR длинной маской.
User avatar
VladDod
Уже с Приветом
Posts: 56113
Joined: 06 May 2001 09:01

Re: Реверс инженеринг (алгоритма сжатия)

Post by VladDod »

Извиняюсь ... а это не банальный вопрос кодировки второй половины ASCII ?

Windows-1251----->Привет
КОИ-8 -------------->оПХБЕР
DOS-866 ----------->ЏаЁўҐв
в реале супруги редко бывают друзьями, так как их отношения подпорчены сексом (с)Роза
Плавали-Знаем! (C)
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Реверс инженеринг (алгоритма сжатия)

Post by ALV00 »

AndreyT wrote: 14 Jun 2018 22:20 Вы имеете в виду
или
???
Например, так
phpBB [video]
User avatar
Flash-04
Уже с Приветом
Posts: 63430
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: Реверс инженеринг (алгоритма сжатия)

Post by Flash-04 »

ALV00 wrote: 14 Jun 2018 21:20
Flash-04 wrote: 13 Jun 2018 18:20 Я так понял автор не умеет дизассемблером пользоваться, иначе бы тему не создавал.
А Вы, Flash, должны вообще такие задачи в уме решать :) Это же простейшее упражнение на криптоанализ.
может и должен, но не хочу :D я уже затрахался на работе всеми этими упражнениями заниматься. дайте отдохнуть наконец!!!
Not everyone believes what I believe but my beliefs do not require them to.
User avatar
AndreyT
Уже с Приветом
Posts: 3000
Joined: 14 Apr 2004 01:11
Location: SFBA (было: Минск, Беларусь)

Re: Реверс инженеринг (алгоритма сжатия)

Post by AndreyT »

VladDod wrote: 14 Jun 2018 23:12 Извиняюсь ... а это не банальный вопрос кодировки второй половины ASCII ?

Windows-1251----->Привет
КОИ-8 -------------->оПХБЕР
DOS-866 ----------->ЏаЁўҐв
Тема не будет полна без упоминания "бНОПНЯ ВХРЮК?", тем более что возможность более чем подходящая :)
Best regards,
Андрей
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Реверс инженеринг (алгоритма сжатия)

Post by OtherSide »

VladDod wrote: 14 Jun 2018 23:12 Извиняюсь ... а это не банальный вопрос кодировки второй половины ASCII ?

Windows-1251----->Привет
КОИ-8 -------------->оПХБЕР
DOS-866 ----------->ЏаЁўҐв
дело не в кодировке, т.к. не прослеживается посимвольного соответвия, и длина не совпадает с оригиналом.
Подозрения что это пожато, а не зашифровано, т.к. похожие надписи с разным окончанием (отличающимся не сильно, т.е. на 3-5 символов) тоже отличаются в конце. Надписи, которые начинаются одинаково, но вторая половина другая отличаются в начале и в конце. Поэтому подозрение, что там в начале словарь для разжатия, а дальше поток битов
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Реверс инженеринг (алгоритма сжатия)

Post by OtherSide »

По декодировке есть прогресс (Спасибо приветовцу, очень сильно помог). Но закончился триал программы, переустановил винду с переразбивкой диска, отключил интернет, запускаю, пишет "невозможно установить лицензию для отладки" - тут даже идей не возникает, а где он мог сделать на компьютере пометку?! Реестра то нет никакого, диск переразбит, интернет при установке отключен?
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Реверс инженеринг (алгоритма сжатия)

Post by Мальчик-Одуванчик »

OtherSide wrote: 22 Aug 2018 20:20 По декодировке есть прогресс (Спасибо приветовцу, очень сильно помог). Но закончился триал программы, переустановил винду с переразбивкой диска, отключил интернет, запускаю, пишет "невозможно установить лицензию для отладки" - тут даже идей не возникает, а где он мог сделать на компьютере пометку?! Реестра то нет никакого, диск переразбит, интернет при установке отключен?
При желании можно поменять бит в определенном месте флешки. Обычно в конце достаточно неиспользуемого места, забитого FF
Или между загрузчиком и биосом.
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Реверс инженеринг (алгоритма сжатия)

Post by OtherSide »

А разве операционка даст писать в биос? Как это может работать универсально? Как можно полностью отформатировать системный диск? Переразбивки не достаточно?
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Реверс инженеринг (алгоритма сжатия)

Post by Мальчик-Одуванчик »

OtherSide wrote: 23 Aug 2018 00:19 А разве операционка даст писать в биос? Как это может работать универсально?
Легко, полно утилит для материнок, которые скачивают и обновляют флешку.
Универсальность можно достичь двумя путями - считывать размер флеша и смотреть в конец
Или смотреть в конец загрузчика - он обычно занимает фиксированный размер в начале флешки.
User avatar
Serguei666
Уже с Приветом
Posts: 18917
Joined: 11 Jul 2003 01:00

Re: Реверс инженеринг (алгоритма сжатия)

Post by Serguei666 »

OtherSide wrote: 22 Aug 2018 20:20 По декодировке есть прогресс (Спасибо приветовцу, очень сильно помог). Но закончился триал программы, переустановил винду с переразбивкой диска, отключил интернет, запускаю, пишет "невозможно установить лицензию для отладки" - тут даже идей не возникает, а где он мог сделать на компьютере пометку?! Реестра то нет никакого, диск переразбит, интернет при установке отключен?
Не проще ли лицензию купить?
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Реверс инженеринг (алгоритма сжатия)

Post by OtherSide »

Помогло посекторная очистка диска + перепрошивка Биос, что из этого конкнетно - не ясно.

Return to “Вопросы и новости IT”