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

时间:2014-08-12 10:11:44

标签: php c++ code-injection

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

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

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

他们甚至用他们发给我的EXE做了这件事,我用我的证书签了名,他们接着"填充"该文件,我能够动态注入值。

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

1 个答案:

答案 0 :(得分:2)

我可以建议一些不同的方法:

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