超难---------------delphi 如何实现打开其他程序时就改变其原始的类名。
我看到一个外挂,他实现多开游戏的原理就是通过外挂打开程序时,游戏的类名就改掉了。
我看他就是一个exe的程序,没有相关dll,应该不是hook吧
请教大家又什么办法可以实现这个功能
我网上找了好久都没找到相关的说明。。。
[解决办法]
你怎么就确定它是改类名实现多开?
问题提得有点....
所谓类名是指windowclass的成员className吗?
[解决办法]
一般程序限制单例运行都是用全局互斥对象做到的,看能否从这里下手。修改类名无法做到多开。
[解决办法]
可從全局互斥入手;與否,可能有點難度...
[解决办法]
运行时修改窗口的ClassName?
[解决办法]
我想到两个办法动态修改类名:
1. 运行前修改一下EXE文件里存储的的窗口类名,不过一旦EXE被加壳或者窗口类名是动态生成的,就没办法了。而且对于多开的情况,也不适合。
2. HOOK 该进程的 RegisterWindowClass函数和CreateWindow函数,把函数的参数改掉。感觉应该比较可行。