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

OtherSide
Уже с Приветом
Posts: 15798
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: 15798
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: 3003
Joined: 14 Apr 2004 01:11
Location: SFBA (было: Минск, Беларусь)

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

Post by AndreyT »

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

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

Post by OtherSide »

Дизасемблером да пользовался последний раз лет 15 назад даже не знаю что сейчас используют. Поставил IDA под ним приложение не запускается
OtherSide
Уже с Приветом
Posts: 15798
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: 3003
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: 56203
Joined: 06 May 2001 09:01

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

Post by VladDod »

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

Windows-1251----->Привет
КОИ-8 -------------->оПХБЕР
DOS-866 ----------->ЏаЁўҐв
в реале супруги редко бывают друзьями, так как их отношения подпорчены сексом (с)Роза
Плавали-Знаем! (C)

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