我想在我的程序关闭后,在我的可执行文件中替换或添加一些字节,而不使用辅助写入程序。 我知道,通常这是不可能的,但如果这是必要的?如何使程序能够在运行时写入自己的可执行文件?
我知道一个名为Unlocker的程序,它可以删除当前正在使用或甚至正在运行的文件。它以某种方式删除阻止描述符。我认为它会将自己的DLL注入到每个正在运行的进程中。
所以,如果它注入自己的DLL到一切,并以某种方式删除阻塞描述符,也许我可以为自己的可执行文件做同样的事情?至少,我不需要为程序注入任何东西,因为我开发了它。
解决方案也可以在C/C++中,我只是从自己的DLL中导入DLL所需的函数。
您是否打算在安装了AntiVirus程序的PC上运行此应用程序? –
是:O P.S.解锁器以某种方式避免受到惩罚。 – Kosmos
您可以使用FileStream轻松打开一个exe文件,然后使用BinaryWriter进行编辑。但是,即使您可以这样做,您也需要知道exes存储在其中的可移植可执行文件格式,以了解您正在执行的操作。至于在运行时编辑程序,可以通过获取它们的进程,然后调用Windows核心函数来获取进程代码的入口点,但即使你管理它,你也必须知道该进程是如何布置的以及你必须知道机器代码才能进行适当的编辑。 – Pharap