Pull to refresh

Comments 8

Не хватило в своё время мотивации овладеть языком. Теперь на решение многих задач приходится тратить намного больше времени, а оно не всегда есть. Из-за этого появляются костыли.
Теперь на решение многих задач приходится тратить намного больше времени

Ну вот и стимул нашелся.
Изучаю потихоньку. Но с документацией на родном языке намного легче.
Насколько я понимаю, в статье упоминается про DexGuard. Совсем недавно натолкнулся на статью, которая описывает алгоритм работы со строками этого инструмента. Посмотрите, очень интересно.
В статье упоминается именно он. Так же упоминается, что он решает другую задачу.
DexGuard позволяет зашифровать строку и получить её оригинал во время выполнения программы. Это годится если необходимо сохранить в коде, например, адрес сервера, чтоб он не бросался в глаза.
Я рассматривал случай, когда во время выполнения не нужен оригинал строки. Ситуация, когда строка является просто идентификатором. Например, создаётся intent и передаётся сервису, а в сервисе кейс по action. Action в intent является строкой. Если action будет названием вызываемого метода — мы получим удобное средство отладки, те, кто будут вскрывать нашу программу, получат имя метода. Заменяя строку хешем, мы незначительно усложняем жизнь противнику. По-прежнему никакого труда не составляет увидеть, что это одна и та же строка и связать вызов с исполнением, но предсказать, что именно будет исполнено, уже сложнее.
Вот как раз решения одностороннего преобразования строки в хеш я найти не смог.
Вы меня не совсем правильно поняли. Я понимаю, что он решает другую задачу. Просто хотел показать, каким образом скрывает строки DexGuard, т.к. мне показалось, что эту статью уместно упомянуть в контексте проблемы, которую Вы решаете.
Что же касается Вашего способа, то он усложняет жизнь только человеку, который будет вручную анализировать, как работает Ваша программа. Любой статический анализатор сразу покажет связи между компонентами.
Связи будут видны даже без специальных анализаторов. Строка она и есть строка. Это просто -1 подсказка. Способ использовать говорящие названия для себя и не сдать их противнику.
А ссылку я посмотрел. В комментариях указано, что алгоритм уже изменился.
Sign up to leave a comment.

Articles