Полиморфные движки на C или C ++

0

Я наткнулся на полиморфные двигатели, и я ничего не знаю о них. Однако мне любопытно, как они написаны. Каждый пример, который я просматривал, записывает их в сборку, моя сборка не очень хороша; Я знаю только несколько инструкций здесь и там, но не так хорошо. С другой стороны, я хорош в C и C++.

Я знаком с концепцией полиморфизма в C++, но после прочтения о полиморфных двигателях я предполагаю, что они отличаются от полиморфизма в C++.

Как использовать методы, такие как использование virtual ключевого слова в C++, для обфускации или шифрования кода в приложении?

  • 0
    извини .. ты имеешь ввиду кодовый обфускатор или как?
  • 0
    да, хотя я не уверен, что это одно и то же.
Показать ещё 10 комментариев
Теги:
polymorphism
assembly

1 ответ

1
Лучший ответ

Если необходимо изменить программу, вы можете либо изменить исходный код, либо изменить скомпилированный исполняемый файл.

Первый подход ужасен (на мой взгляд), потому что:

  • Исходный файл подвержен множеству оптимизаций в процессах компиляции. Таким образом, два исходных файла, немного отличающихся друг от друга, могут создавать один и тот же объектный код.
  • Если вам нужна ваша программа для самостоятельной модификации, вам придется нести все инструменты, необходимые для ее создания. (Что-то вроде ношения с вами фабрики конфет только для случая, когда вы хотите конфету другого вкуса в поездке)
  • ...

Обратите внимание, что я говорю здесь о скомпилированных языках, как предполагает использование C или C++ в вашем вопросе. Для интерпретируемых языков первый подход является очевидным.

В вашем случае второй имеет больше смысла, но он строго связан с машинным кодом целевой машины.

Поэтому я хочу сказать: если вы хотите реализовать программу или подпрограмму, которая может создавать модифицированную версию другой программы или модифицированную версию, вы можете реализовать ее в Assembly, C, C++ или любом другом языке, но во всех в случаях, когда вы должны владеть языком ассемблера целевой машины и машинным кодом.

Я рекомендую вам больше исследовать. Эта тема широкая. В случае, когда вы решите продолжить, я могу сказать, что Ассамблея не будет самым большим драконом.

  • 0
    Мне нравится, как вы сформулировали свой ответ, но я до сих пор не понимаю, как программа может быть самоизменяющейся или полиморфной, включена ли процедура дешифрования в исходный код?
  • 0
    Да, процедуры дешифрования / шифрования или обфускации могут быть помещены в исходный код, но они предназначены для изменения скомпилированного кода.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню