自修改代码算法

时间:2013-01-29 13:30:27

标签: assembly compiler-construction polymorphism self-modifying

某些程序在运行时生成可执行代码。 即计算机病毒,包装二进制。 这使得静态分析非常困难。

除了打包算法,还有任何通用算法 用于自我修改代码生成?还是编译支持? 我在哪里可以获得相关文件或纸张? 以及自修改代码之间的区别是什么 和多态代码?

我很好奇。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

正如delnan已经提到的,任何程序都只是数据,直到处理器尝试运行它。

要练习自修改代码,请执行以下步骤:

  • notepad.exe复制到notepad_orig.exe
  • 启动notepad_orig.exe
  • 在现在打开的记事本窗口中打开notepad.exe
  • 输入您想要的任何内容
  • 保存并关闭

也许是一个愚蠢的例子,但这里没有更多的事情发生。记事本需要一个外部数据源(你!)来改变它的代码。

如果您正在寻找算法,我建议您寻找一个可以自动更新应用程序的框架。这是我能想到的唯一一个不合法的实际例子。

在回复您的评论时,您当然可以加密部分应用程序,并在使用之前对其进行解密。但是,对于要运行的应用程序,它必须以解密的形式存在于内存中,并且可以读取。您可能只会使您的应用程序更难维护。