我想动态地将一个值注入到 EXE 文件中。
我过去接触过的一家公司给了我一个 EXE“存根”,我可以在用户下载它之前使用 PHP 动态注入一个值。
我在谷歌上找不到任何东西,因为我不知道这个过程的名称,有人能指出我正确的方向吗?理想情况下,它是 C++/PHP,但可以很灵活,甚至只是有关其工作方式的一般过程的信息将是一个很好的开始。
他们甚至用他们发给我的 EXE 来做到这一点,我用我的证书签名,然后他们“填充”文件,我就能够动态注入值。
不幸的是他们不会与我分享他们的秘密......
我可以建议几种不同的方法:
- 在您的可执行文件中包含一个魔术字符串,例如
static const char magic[] = "magic marker goes here"'
。您必须从代码中的其他地方引用它,这样它就不会被优化。然后,您可以从 php 打开 .exe 并搜索魔术字符串,并在大小限制内用您喜欢的任何内容覆盖它。
- 如果要插入多个值,更结构化的方法是在可执行文件中使用 PE 资源。有一个不错的用于解析PE资源的Python模块 http://code.google.com/p/pefile/,也许有一个 PHP 等价的。
- 更改可执行文件中的任何内容都会破坏任何代码设计。从authenticode hash中排除的一件事是PE校验和(解释)。 PE 校验和位于可执行文件中的固定偏移处,因此您可以在 PHP 脚本中找到它并将其修补为任何内容。修补此值不会破坏authenticode 签名。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)