C\C++真桌面贪吃蛇,桌面操控,有音乐音效“详解”

C\C++真桌面贪吃蛇,桌面操控,有音乐音效“详解”

1. 桌面图标贪吃蛇!采用HOOK技术HOOK桌面,可以以桌面为焦点运行贪吃蛇。有背景音乐和音效,采用管道技术,实现音乐音效混响。
2. 试验环境,64位WIN10系统 VS2017调试。运行时,需要关闭图标的自动排序网格对齐,专业版系统需要右键以管理员身份运行。注入程序、子程序、DLL、音乐包需要同时放在桌面上。
(1)运行效果如下图:

在这里插入图片描述

(2)身体长了速度会变快,如下图:

在这里插入图片描述

(3)撞到自己会死,如下图:

在这里插入图片描述

(4)可以按后方向随时停止,撞到墙壁也会停止,如下图:

在这里插入图片描述

(5)按大键盘数字1键随时重新开始,如下图:

在这里插入图片描述

(6)按大键盘数字3键随时可以杀死音乐子进程,如下图:

在这里插入图片描述

3. 程序运行流程图如下

在这里插入图片描述

4. 要去掉DOS窗口,以桌面为焦点运行,需要HOOK桌面。桌面窗口是explorer.exe的子程序,所以我直接将DLL注入到了explorer.exe里面。
(1)注入程序采用的是远程线程注入(突破SESSION 0隔离机制),远程线程代码都是固定的,没什么技术含量。代码在末尾发链接。
(2)WIN10_X64系统中,注入程序、DLL需要是64位的程序,音乐子程序可以是32位的。
5. 代码功能讲解。
(0)提醒大家一下,现在写c++的代码,定义任何变量,一定要初始化,否则WIN10的检查机制总有不会放过你的时候。
(1)注意,游戏都在DLL文件里面,写游戏代码的时候最好先在EXE程序中调试好了以后,再放在DLL文件里面进行细微修改。否则很难调试。毕竟调试explorer.exe需要win10_x64的符号文件,我没有符号文件!调试不了。我用的是DbgView程序来测试错误的。 我用过钩子,但是技术不到家,钩不住桌面的键盘消息,所以我就改用了拦截窗口回调函数的方法。
(2)dll文件中的HOOK关键API一之:SetWindowLongPtr
	LONG_PTR
		WINAPI
		SetWindowLongPtr(
			_In_ HWND hWnd,           //要更改的窗口的句柄
			_In_ int nIndex,          //索引
			_In_ LONG_PTR dwNewLong); //设置窗口回调函数

	/*
		这个函数是SetWindowLong进阶版,可以设置窗口回调,
	 而且兼容64位和32系统,推荐用这个。用法如下	 
	 */
	 //设置窗口回调 得到旧的窗口回调句柄
	g_OldProc = (WNDPROC)SetWindowLongPtr(
		g_hWin,       // 桌面窗口的句柄
		GWLP_WNDPROC, // 这个宏用于设置窗口回调
		(LONG_PTR)MyDefWindowProc 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值