2

Кто-нибудь любопытствовал на тему, как обфускаторы .net шифруют строки? Я полагал, что это делается через подмену строки-операнда инструкции ldstr на шифрованную строку и инъекции после ldstr функции-дешифровщика, но глядя на обфусцированные исходники не вижу никаких дешифровщиков. Например, babel-обфускатор превратил мою строку

String s = "psw" ;

В

String s = "...";

И ничего более

Эта функция присутствует во многих бесплатных обфускаторах

Как же распутываются такие строки в процессе выполнения?

Александр
  • 1,978
  • 1
  • 16
  • 25
  • приведенной информации недостаточно – Grundy Jan 25 '19 at 20:19
  • 1
    Брайнфак? :) Это ключ, где то живёт диктонарий в той или иной реализации, по ключу добывают строку, скорей всего шифрованную.. – NewView Jan 25 '19 at 21:15
  • @NewView, встречал такие примеры. Например, некоторые обфускаторы заменяют строку на вызов некой функции с аргументом в виде числа. Такой подход более менее понятен, хотя и более трудоемок, поскольку размер вызова такой функции будет занимать на 5 байт больше, а значит придётся сдвигать все ссылки ниже по коду после инъекции. А вот случай с заменой строки на заведомо нечитаемую без вызовов для меня загадка – Александр Jan 25 '19 at 21:28
  • 1
    Так там стартер встраивается, который при запуске это распутывает, по известному ему алгоритму, а потом уже грузит как сборку. – NewView Jan 25 '19 at 21:30
  • @NewView, то есть получается, что в процессе выполнения все строки уже раскированы? – Александр Jan 25 '19 at 21:33
  • По сути скорее да, или доступны в шифрованное виде, и их перед "употреблением" расшифровывают.. легче исходники этого Бабеля глянуть.. :) – NewView Jan 25 '19 at 21:37
  • 1
    Самое лучшее, это разнести значимый код по неуправляемым библиотекам, и получать данные для приложения с сервиса в сети. И не мучать себя обфуксаторами, по факту, от них больше глюков, чем пользы. После обфуксатора, надо плотно тестировать то что получилось. – NewView Jan 25 '19 at 21:40
  • @NewView так там закрытый исходный код – Александр Jan 25 '19 at 21:54

0 Answers0