Здравствуйте, gear nuke, Вы писали:
GN>White-Box Cryptography — относительно новое направление (основные применения — DRM и watermarking) в сети публикаций не так много, а готовые реализации, вероятно, можно вообще не найти. Данный генератор представляет скорее академический, чем практический интерес. Это не пример, как надо делать, а на тему "что это вообще такое". Исследования стойкости не проводились. Написан в 2004 году и сейчас является Public Domain (*).
GN>http://files.rsdn.ru/45067/aesig.zip
GN>
GN>[q]
GN>AESIG создаёт программные реализации алгоритма дешифрования AES, предназначенные для работы в условиях "White-Box".
Посмотрел, что этот бинарник генерит.
Вот выводы.
1) AESIG генерит ОГРОМНЫЙ бинарник — 1 мег. Мне кажется, что это неприемлемо.
2) В дизасембле (компиляция с -Fa или -S) структура раундовых функций rXXX() выглядит тривиально — доступна для автоматического реверсинга. Код выглядит примерно так:
op reg1, literal
jnz no_way
op reg2, literal2
no_way:
3) Быстро проглядел сами исходники AESIG — мне кажется, если не компакный ключ, так развернутый ключ дешифрования извлечь оттуда можно. Но пока не уверен.
4) А если неможно, то декриптор все одно можно — просто скопипастив этот заобфускаченный мегабайт в отдельный бинарник.
ЗЫ. Имхо, написать генератор декрипторов RSA который использует ембеднутный в коде ключ было бы более благодарной задачей.