Сейчас на форуме: _MBK_, ut2004, vsv1 (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Алгоритм шифрования
Посл.ответ Сообщение

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

Создано: 11 января 2007 23:15
· Личное сообщение · #1

Есть некая программа которая алгоритм защиты которой шифрует (и дешифрует) байты:
Если зашифровать цифру 0 (hex 30) ответ получится 29
соответственно HEX:
31(цифра 1) - 8F
32 - 76
33 - 6D
34 - 05
35 - DD
Как понять по какому алгоритму это происходит? (алгоритм точно обратимый т.к. программа потом может их расшифровать, соседние байты в шифровании не участвуют).
Могу привести другие примеры если нужно.



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

Создано: 11 января 2007 23:47
· Личное сообщение · #2

Попробуй KANAL (плагин к PEiD)
ekap пишет:
Могу привести другие примеры если нужно.

Лучше дай ссылку на прогу.



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

Создано: 12 января 2007 00:56
· Личное сообщение · #3

Плагин не получается т.к. запакована программа. (ASprotect один из последних).
Может можно как нибудь по другому вычеслить без программы?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 12 января 2007 01:06
· Личное сообщение · #4

ekap пишет:
Если зашифровать цифру 0 (hex 30) ответ получится 29

ekap пишет:
Как понять по какому алгоритму это происходит? (алгоритм точно обратимый т.к. программа потом может их расшифровать

Если каждый байт всегда одинаково зашифровывается - это называется табличный алгоритм. При правильном построении он обратим. Был известен еще в Римской империи - "код Цезаря".
Какие еще алгоритмы - строишь таблицу и простенькая программа. Все остальное в данном случае дольше и дороже.



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

Создано: 12 января 2007 02:06
· Личное сообщение · #5

Ну таблицу это понятно (есть небольшая вероятность что в программе тоже таблица зашита) но поэтому я сюда и написал что хочется покрасивей и таблицу придется не одну строить




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 12 января 2007 09:45
· Личное сообщение · #6

ekap
Ты уверен что каждый символ шифруется в один и тот же символ на разных позициях и его шифр не зависит от остальных символов?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 13 января 2007 02:23
· Личное сообщение · #7

ekap пишет:
таблицу придется не одну строить

Здесь не форум игры в Угадайку. Даже имея полную таблицу, алгоритм строить сложно. Без таблицы невозможно - поэтому твое заявление, просто глупость. Если алгоритм заложен в проге, надо ее реверсить и думать. Кудесников, которые по 5 строчкам угадывают алгоритм тут нет.
Подстановочные шифры сейчас никто не использует, т.ч. либо ты ошибся, либо таблица генерится (например, через случайные числа) и тебе надо найти сначала таблицу, а потом генератор. Если шифрование на стороне сервера, то вообще труба.



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

Создано: 14 января 2007 22:51
· Личное сообщение · #8

HoBleen пишет:
ekap
Ты уверен что каждый символ шифруется в один и тот же символ на разных позициях и его шифр не зависит от остальных символов?

Еслибы я в этом не был уверен я бы не стал сюда даже писать по этому поводу.

tundra37 пишет:
Здесь не форум игры в Угадайку. Даже имея полную таблицу, алгоритм строить сложно. Без таблицы невозможно - поэтому твое заявление, просто глупость. Если алгоритм заложен в проге, надо ее реверсить и думать. Кудесников, которые по 5 строчкам угадывают алгоритм тут нет.
Подстановочные шифры сейчас никто не использует, т.ч. либо ты ошибся, либо таблица генерится (например, через случайные числа) и тебе надо найти сначала таблицу, а потом генератор. Если шифрование на стороне сервера, то вообще труба.


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



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 15 января 2007 07:43
· Личное сообщение · #9

ekap пишет:
Как понять по какому алгоритму это происходит?

Только посмотреть сам алгогритм. Может там подстановочный, может сложение или ксор, даже если так, то без ключевых байт (которые идут на подстановку, ксор или сложение) угадать очень сложно. Эти ключевые таблички наверняка могут быть построены в зависимости от введенных данных. Это в лучшем простом случае.

-----
Я медленно снимаю с неё UPX... *FF_User*




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

Создано: 15 января 2007 23:06
· Личное сообщение · #10

AlexZ пишет:
Только посмотреть сам алгогритм. Может там подстановочный, может сложение или ксор, даже если так, то без ключевых байт (которые идут на подстановку, ксор или сложение) угадать очень сложно. Эти ключевые таблички наверняка могут быть построены в зависимости от введенных данных. Это в лучшем простом случае.


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



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 16 января 2007 07:18
· Личное сообщение · #11

ekap пишет:
Через случайные числа таблица генерится не может т.к. после программа после перезапуска нужно выводить расшифрованое значение

Откуда тогда берется много таблиц ?!




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 16 января 2007 11:46
· Личное сообщение · #12

ekap пишет:
Ты уверен что каждый символ шифруется в один и тот же символ на разных позициях и его шифр не зависит от остальных символов?

и если это простая моноалфавитный шифр, то ломается чуть ли не в уме =)
а если алго в проге есть - то вообще в чем проблема?

-----
Тут не могла быть ваша реклама




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 16 января 2007 22:15
· Личное сообщение · #13

ekap Ты сделал типичную ошибку : описал не задачу, которую решаешь, а конец цепочки своих исследований, когда они зашли в тупик. И все дружно пытаются домыслить задачу и решать ее. Получается ерунда. Опиши полную проблему. Почему таблиц несколько ?



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

Создано: 16 января 2007 23:05
· Личное сообщение · #14

tundra37 пишет:
Ты сделал типичную ошибку : описал не задачу, которую решаешь, а конец цепочки своих исследований, когда они зашли в тупик. И все дружно пытаются домыслить задачу и решать ее. Получается ерунда. Опиши полную проблему. Почему таблиц несколько ?

tundra37 пишет:
Откуда тогда берется много таблиц ?!


Сори. Есть несколько значений (и текствоые и цифровые) которые сохраняются в файле в зашифрованом виде. У каждого из них зашифрованые значения разные. В примере то в котором может быть любой символ.
Программа таким образом сохраняет в файле грубо говоря свои настройки.
lord_Phoenix пишет:
а если алго в проге есть - то вообще в чем проблема?

1) Я не умею распаковывать Asprotect (в данном случае один из последних)
2) Не очень хорошо разбираюсь в асемблере.
Поэтому стараюсь решить задачу такми способом в котором я хоть что-то понимаю.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 16 января 2007 23:43
· Личное сообщение · #15

ekap пишет:
Сори. Есть несколько значений (и текствоые и цифровые) которые сохраняются в файле в зашифрованом виде. У каждого из них зашифрованые значения разные. В примере то в котором может быть любой символ.
Программа таким образом сохраняет в файле грубо говоря свои настройки.

Ну ты партизан Все клещами надо вытягивать. Очень путанно объясняешь. Таблица шифрования разная для разных порций текста или для разных файлов. И вообще она есть ? Зашифруй 11111111 например и не мучься - таблицы не будет. Ты противоречишь сам себе : сначала говоришь что шифр разный для разных порций текста, потом про настройки сохраняемые в файле. Сколько ж их там - на каждое значение своя настройка - так не бывает.

ekap пишет:
Я не умею распаковывать Asprotect (в данном случае один из последних)

Для применения сигнатур не нужна рабочая прога - сделай дамп, например в олли, и натрави плаг.
А твой подход обречен на неудачу - число таблиц перекодировок - факториал 256 - это огромное число.
А ты пока ни одной закономерности не нашел



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

Создано: 17 января 2007 05:20 · Поправил: ekap
· Личное сообщение · #16

tundra37 пишет:
Для применения сигнатур не нужна рабочая прога - сделай дамп, например в олли, и натрави плаг.

Чё-то нашлось =)
ADLER32
BASE64 table
BLOWFISH [sbox]
CRC16 (rev) [word]
CRC32
CryptCreateHash [Name]
CryptGenRandom [Name]
CryptHashData [Name]
MD4
MD5
PI fraction (NIMBUS / BLOWFISH)
RIPEMD-320 [Init]
SHA1 [Compress]
ZLIB deflate [word]
{Big number}

(сохранил процесс при помощи winhex)
tundra37 пишет:
Таблица шифрования разная для разных порций текста или для разных файлов. И вообще она есть ?

Для разных порций текста (смещения в я определил) в одном файле.
Таблица или нет - незнаю.



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

Создано: 17 января 2007 06:40
· Личное сообщение · #17

выложи программу, дело быстрее пойдёт

-----
Само плывет в pуки только то, что не тонет.



 eXeL@B —› Вопросы новичков —› Алгоритм шифрования
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати