-
-
[原创]给程序加一个按钮
-
发表于:
2020-7-22 11:12
8844
-
有时候我们会觉得某个已经编译好了的程序的功能不是那么完美,我们想要再添加一些额外的功能,但是我们又没有源码,不方便直接进行修改重编译打包,这时候我们就可以考虑给程序添加一个新功能的按钮了...
思路很简单,无非就是利用子类化技术,直接编写DLL,然后注入到程序当中去,虽然就一句话但是具体的工作还是比较多,这里我就通过给植物大战僵尸程序为例子仔细说说...
因为我们主要目的是添加一个按钮功能,使用这里主要用到的函数是CreateWindow
)...
Syntax:
通过这个函数我们可以创建一个按钮,主要的参数是hWndParent
,这个参数表示父窗口句柄,我们可以用FindWindow
函数来获取,例如:
子类化就是用来改变或者扩展一个已存在的窗口的行为、而不用重新开发的有效途径,这是我们添加按钮,给予按钮处理事件的能力的主要方法,主要方法就是通过GetWindowLong()
获取窗口旧的消息处理函数(OldWindowProc
),然后通过SetWindowLong()
设置新的消息处理函数(NewWndProc
),进行需要进行的消息处理,其他的交给旧的消息处理函数:
新的消息处理函数中只需要写我们感兴趣的消息,比如这里我们只关心按键增加阳光的功能,其余我们没有写的消息处理通过CallWindowProc
函数交给原来的消息处理函数处理:
这样我们的按键就有相应消息的能力了,剩下的就是完善dll,然后编写dll注入代码了;
基本步骤是:
dll注入的代码确实网上确实到处都是,我这里直接贴出参考,用的是CreateRemoteThread
的方法;
Source.def:
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课