0
我听说,您可以使用WinAPI中的LockBytes()/UnlockBytes()
等函数(不知道* nix替代方案中的确切名称)以实现这些目标。更改当前可执行文件的内容。可能吗?
我很感兴趣:“有可能在执行过程中更改某些* .exe的内容吗?”
我认为,这是rahter不可能的,因为线程更衣室车型,如:信号量,自旋锁等...
但确实某种程度上存在?
也许,如果要将资源嵌入到EXE中,并为已准备好的自己的线程模型锁定并执行,然后解锁其字节的区域并更改所需的值。
我感兴趣的是这个问题的原因如下:
安全的在线检查。我想更改一些值,这些值将用于在线密钥检查程序(如将校验和和会话写入此类字节区域并在线检查等)。
我不想写入另一个文件或注册表或别的,因为我想通过UAC/chmod防止访问文件系统空间或系统注册表。
PS
我不想让病毒从黑客试验的检查/ disassemling对我自己的计划只是很好的保护。
这是主要问题!我想更新没有权限的资源。也许有一种方法:1)。制作驱动程序,该驱动程序与纯模式中的其他* .sys驱动程序一样运行,然后通过csrss.exe在用户模式程序和驱动程序之间交换消息以更改内容(驱动程序重写应用程序内容)。 – Secret
你怎么能要求安装(和用户会同意)驱动程序,但你不能有一个单一的全球可写的文件,附近的程序,因为UAC抱怨?无论如何,我怀疑这是可能的。随着您愿意走低级别,也许:例如你可以打开一个块设备,以某种方式在NTFS上找到你程序的块并在磁盘上修改它们,但是无论如何你需要一个非常多的权限来执行它。 –
请注意!用户将只安装一次驱动程序。但程序会多次进行检查等。这是第一个区别。管理员可能在将来更改权限和程序可能会停止工作,但通过驱动程序的方案,它可以防止blocikg管理员对程序的访问。这是另一个细节为什么我要求。 – Secret