PHP/C++:将值注入EXE文件

Dam*_*ien 5 php c++ code-injection

我想动态地在EXE文件中注入一个值.

我过去处理过的公司给了我一个EXE"stub",我可以使用PHP在用户下载之前动态注入一个值.

我在Google上找不到任何内容,因为我不知道这个过程的名称,有人能指出我正确的方向吗?理想情况下,它可能是C++/PHP,但可以灵活,甚至只是一般过程的信息,这将是一个很好的开始.

他们甚至用他们发给我的EXE做了这件事,我用我的证书签名,他们然后"填充"了文件,我能够动态注入价值.

不幸的是,他们不会与我分享他们的秘密......

sno*_*h09 2

我可以建议几种不同的方法:

  • 在您的可执行文件中包含一个魔术字符串,例如static const char magic[] = "magic marker goes here"'. 您必须从代码中的其他地方引用它,这样它就不会被优化。然后,您可以从 php 打开 .exe 并搜索魔术字符串,并在大小限制内用您喜欢的任何内容覆盖它。
  • 如果要插入多个值,更结构化的方法是在可执行文件中使用 PE 资源。有一个很好的Python 模块用于解析 PE 资源,也许有一个 PHP 等效模块。
  • 更改可执行文件中的任何内容都会破坏任何代码设计。验证码哈希中排除的一件事是 PE 校验和(此处有解释)。PE 校验和位于可执行文件中的固定偏移处,因此您可以在 PHP 脚本中找到它并将其修补为任何内容。修补此值不会破坏authenticode 签名。