инъекция кода это плохо?

Есть несколько довольно мощных инструментов, таких как SIMBL или Airfoil/Instant Hijack, которые используют внедрение кода.
Насколько я понимаю, эти инструменты внедряют свой собственный код в других программах. Эта идея кажется мне опасной, так как она потенциально может сделать совершенно стабильное программное обеспечение хрупким и "глючным". Также это, кажется, представляет угрозу безопасности.

Следует ли избегать этих инструментов по соображениям стабильности или безопасности?


person bastibe    schedule 18.10.2008    source источник


Ответы (2)


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

С другой стороны, я бы, вероятно, скептически отнесся к внедрению стороннего кода в корпоративное программное обеспечение для обеспечения безопасности, аудита или бухгалтерского учета.

person Gerald    schedule 18.10.2008

Я считаю, что это относится не только к внедрению кода для взлома или взлома системы.

Это также метод, часто используемый в мире Java, с такими инструментами, как AOP или IPojo.

Когда они имеют смысл, они дополняют текущий код, позволяя им:

  • функционировать в заданной среде (Декларативные службы OSGI для IPojo)
  • добавить функциональные возможности (службы ведения журналов для АОП)

Пока исходный код может работать без этой инъекции кода, стабильность не является проблемой.

Стабильность и безопасность — в случае этих двух доброжелательных способов внедрения кода — внедряемого кода следует оценивать в отдельном тестовом коде.

person VonC    schedule 18.10.2008