我听过,你可以使用WinAPI中的LockBytes()/UnlockBytes()
等函数(不知道* nix替代中的确切名称)来实现这些目标。
我很感兴趣:“在执行过程中是否可以更改某些* .exe的内容?”
我认为,由于线程锁模型如:Semaphore,Spinlock等等,所以这是不可能的......
但确实存在某种方式?
也许,如果要将资源嵌入EXE中并使其为准备好的自己的线程模型锁定并执行,然后解锁其字节区域并更改所需的值。
由于以下原因,我对这个问题感兴趣:
安全在线检查。我想更改一些值,这些值将用于在线密钥检查器(例如将校验和和会话写入这些字节区域并在线检查等等)
我不想写入另一个文件或注册表或其他文件,因为我想传递UAC / chmod以防止访问文件系统空间或系统注册表。
PS
我不想制造病毒,只是对我自己的程序提供良好的保护,使其免受黑客的审判/反击。
答案 0 :(得分:1)
一种可能的解决方案:
然后DLL将不会被锁定,您可以根据需要更新其资源(如果您有权限)。
以上内容适用于Windows系统,MemoryModule适用于PE格式。在unix上,有两件事是不同的: