4

some programs generates the executable code at run-time. i.e computer virus, packed binary. this makes static analysis very difficult.

aside from packing algorithms, is there any general algorithm for self-modifying code generation? or compiler support? where can I get related documentation or paper? and what is the difference between self-modifying code and polymorphic code?

I am curious.

thank you in advance.

4

1 回答 1

1

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

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

  • 复制notepad.exenotepad_orig.exe
  • 开始notepad_orig.exe
  • 在现在打开notepad.exe的记事本窗口中打开
  • 输入任何你想要的
  • 保存并关闭

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

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

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

于 2013-05-10T14:48:20.537 回答