C++ C或C+中的多态引擎+;

C++ C或C+中的多态引擎+;,c++,c,assembly,polymorphism,C++,C,Assembly,Polymorphism,我偶然发现了多态引擎,我对它们一无所知。然而,我很好奇它们是怎么写的。我查找的每个示例都在汇编中编写,我的汇编一点也不好;我只知道这里和那里的一些指示,但不是很清楚。另一方面,我擅长C和C++。 P>我熟悉C++中的多态性概念,但在阅读了多态引擎之后,我假设它们与C++中的多态性不同。 虚拟< /COD>关键字”来混淆或加密应用程序中的代码? 如果程序必须修改,可以修改源代码或修改编译后的可执行文件。 第一种方法很糟糕(在我看来),因为: 源文件在编译过程中要经过大量优化。因此,两个彼此稍有

我偶然发现了多态引擎,我对它们一无所知。然而,我很好奇它们是怎么写的。我查找的每个示例都在汇编中编写,我的汇编一点也不好;我只知道这里和那里的一些指示,但不是很清楚。另一方面,我擅长C和C++。 <> P>我熟悉C++中的多态性概念,但在阅读了多态引擎之后,我假设它们与C++中的多态性不同。
<如何使用C++中的“代码>虚拟< /COD>关键字”来混淆或加密应用程序中的代码?

如果程序必须修改,可以修改源代码或修改编译后的可执行文件。 第一种方法很糟糕(在我看来),因为:

  • 源文件在编译过程中要经过大量优化。因此,两个彼此稍有不同的源文件可以生成相同的目标代码
  • 如果你需要你的程序是自我修改的,你必须携带所有的工具来构建它。(有点像随身携带糖果厂,只是为了在旅行中想要不同口味的糖果)
请注意,我在这里讨论的是编译语言,就像你的问题中使用的C或C++一样。对于解释语言,第一种方法是显而易见的

在您的例子中,第二个更合理,但它严格地与目标机器的机器代码相关

我的观点是:如果你想实现一个程序或程序,它能够产生一个修改的其他程序版本或者一个修改版本,你可以在汇编、C、C++或任何其他语言中实现它,但是在所有情况下,你必须精通目标机器的汇编语言和机器代码。
我建议你多做研究。这个话题很广泛。如果你决定继续下去,我可以说大会不会是最大的对手。

对不起。。你是说代码混淆器还是什么?是的,但我不确定它们是否是同一个东西。这些东西通常被用来欺骗病毒使用者和/或规避签名检查。你几乎总是可以用一系列做同样事情的较长指令来表达一系列指令,那么在c/c++中有可能做到吗?当然,但这是一个广泛的问题。我现在没有关于教程/参考资料的建议(这也是离题的)我喜欢你给出答案的方式,但我仍然不明白程序是如何自我修改或多态的,解密例程是否放在源代码中?是的,解密/加密或模糊处理例程可以放在源代码中,但它们旨在修改编译后的代码。。。。在内存或磁盘中。这似乎很难,我想知道你是否可以发布一个简单的加密/解密例程?“我想我也应该学习密码学.”霍克说,这是一个广泛的话题。这么一个问题并不能消除你所有的疑虑。这里您可以看到一个示例: