Самый распространенный способ сделать это - использовать упаковщик.Это делается во многих вредоносных программах, а также в некоторых коммерческих программах.Существуют стандартные упаковщики, такие как upx
, для выполнения этой посткомпиляции, но любой инженер-обратный инженер справится с этим очень легко.
Упаковщики используются коммерческим программным обеспечением как наиболее эффективная обфускация и для уменьшения размера двоичного файла с помощьюего возможности сжатия.Они / также использовались (главным образом) примитивным вредоносным ПО.Осторожно, так как многие AV будут отмечать ваш двоичный файл как вредоносное ПО только для распознавания присутствия упаковщиков и самоизменяющегося / запутанного кода.
Ознакомьтесь с историей и состоянием техники в области анти-отладки вредоносных программ / вирусов и упаковщиков/ cryptors, есть несколько статей в журналах Phrack на эту тему, а также ресурсы на сайтах и форумах по исследованию вирусов и вредоносных программ.Просто запомните , это только удары скорости.
Единственный правильный / непобедимый (не SpeedBump) способ сделать это - зашифровать код с помощью надежного алгоритма, такого какAES, а затем расшифровывает его с помощью ключа во время выполнения - но тогда пользователю нужен ключ для его запуска.Пре-общий ключ / пароль или коммерчески популярное решение для ключей являются наиболее распространенными, как упоминалось ранее)
EDIT : большинство упаковщиков и крипторов после компиляции по большей части не зависят от языка