c++ - 变形代码和多态代码有什么区别?

标签 c++ security

变质代码 是输出自身语义等价版本的代码:https://en.wikipedia.org/wiki/Metamorphic_code

但是,多态代码 是使用多态引擎进行变异同时保持原始算法不变的代码:https://en.wikipedia.org/wiki/Polymorphic_engine

那么,唯一的区别是多态代码依赖于其他程序(多态引擎),而变质代码具有内置的功能吗?

有人可以通过链接或在答案中提供多态代码示例吗?

谢谢,

最佳答案

多态代码和变质代码的主要区别在于实际执行的代码是否发生变化。多态病毒解密其代码,运行该代码,然后在传播时使用不同的 key 对解密的代码进行加密。当在不同的机器上运行时,解密的代码是相同的。变形病毒只是运行其代码,然后在传播时将其代码变异为不同但功能相同的代码。执行的代码在它传播到的每台机器上都是不同的。

这意味着对于多态病毒,可以通过简单地运行它(最好是在某种安全的沙箱环境中)然后检查内存中代码的解密版本来检查原始的未加密代码。对于变质代码,这是行不通的,病毒永远不会生成其自身的原始版本。

请注意,术语“多态代码”令人困惑。脱离上下文,对于大多数程序员来说,这意味着使用 polymorphic types 编写的代码.

关于c++ - 变形代码和多态代码有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38184390/

相关文章:

php - Phonegap Android 应用程序 - 保护数据流量

java - 使用java进行公钥加密(加密字符串与原始字符串长度相同)

php - 运行脚本修改 nginx 服务器配置的最佳方式

php - 创建安全的 HTML/PHP 表单和发送电子邮件

java - 在 Java 中克隆的目的

c++ - 服务重启后套接字未释放

c++ - 在 Release模式下,代码行为不如预期

c++ - 在 0x5914F3BE (ucrtbased.dll) 抛出异常

c++ - 宏使用不需要的大括号替换自身

javascript - 使用鼠标检测反验证码