编辑 PE 可执行文件以使其在启动时加载指定的 DLL 的最简单快捷的方法是啥?
Posted
技术标签:
【中文标题】编辑 PE 可执行文件以使其在启动时加载指定的 DLL 的最简单快捷的方法是啥?【英文标题】:What is the most easy and fast way to edit PE executable file to make it load specified DLL at startup?编辑 PE 可执行文件以使其在启动时加载指定的 DLL 的最简单快捷的方法是什么? 【发布时间】:2013-08-03 19:39:03 【问题描述】:我需要制作一些 exe 文件来在启动时加载我的 DLL... 最简单的方法是什么? 我正是需要这个,没有任何注射器或启动器。 我想在 exe 中再添加一个代码部分,重写入口点逻辑并放置 DLL 加载代码,然后 NOPing 原始入口点并调用我自定义的入口点函数。这行得通吗? 还有其他更简单的方法吗?
我还考虑将十六进制编辑器中的系统 dll 名称之一更改为我的 DLL 的名称。这行得通吗?如果我的dll然后加载替换的系统dll? 有什么想法吗?
【问题讨论】:
尝试研究病毒是如何编写的,因为它与您正在做的事情相似,尽管我确信这不是您正在做的事情:)。也许将您的 dll 附加到文件的末尾并更改 exe 的入口点? 嗯,我想,我需要以某种方式从内存中加载这个 DLL,这比从磁盘加载更难。这是一个疯狂的程序激活系统,我的老板认为很容易制作。我必须保护我没有来源的第三方 exe,并且这个 exe 不会为我重建。所以,我想在它启动时执行自定义代码来检查许可证。 说真的,也许有病毒工具包可以轻松完成您的尝试。 嗯我想如果我在这里没有任何想法,我应该搜索病毒工具包:O,但我更喜欢一些一般的想法,甚至更好的分步指南:P 【参考方案1】:将其添加到 PE 的导入表中就足够了。 Woodman 列出了一些可以做到这一点的工具:
http://www.woodmann.com/collaborative/tools/index.php/Category:Import_Editors
【讨论】:
以上是关于编辑 PE 可执行文件以使其在启动时加载指定的 DLL 的最简单快捷的方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我们需要将 Swift 类标记为 `public` 或 `open` 以使其在 Objective-C 框架项目中可访问?
用逗号替换分号,并在存储过程中的字符串的两端添加引号,以使其在IN子句中可搜索