C/C++游戏逆向

初级

%p、size_t、%zd、%llu、sizeof

  • %p用于输出地址,HWND类型的也可以使用%p输出
  • size_t:C语言源代码:typedef unsigned __int64 size_t;
  • sizeof 返回值是 size_t类型,打印的时候不能使用%d,应该使用%zu
  • 在这里插入图片描述

修改窗口标题

#include <stdio.h>
#include <Windows.h>
#include <locale.h>int main()
{HWND hWnd = FindWindowA(NULL, "微信"); // 获取窗口句柄if (NULL == hWnd){printf("错误代码:%d", GetLastError());return 0;}printf("窗口句柄:0x%p\n", hWnd);printf("初始化本地环境:%s\n", setlocale(NULL, ""));WCHAR lpString[255];printf("请输入需要设置的窗口标题:");wscanf_s(L"%254ls", lpString, (unsigned)_countof(lpString));wprintf(L"新窗口标题:%ls\n", lpString);if (SetWindowText(hWnd, lpString)){printf("修改成功!\n");}
}
  • FindWindowA函数用于获取窗口句柄,还可以使用FindWindow和FindWindowW,FindWindowFindWindowW是一样的,需要传入宽字符。
  • SetWindowText函数一共两个参数,第一个参数是窗口句柄,第二个参数是需要设置的新的窗口名字,是宽字符。

在C++中使用宽字符

printf("初始化本地环境:%s\n", setlocale(NULL, ""));
WCHAR lpString[255];
printf("请输入需要设置的窗口标题:");
wscanf_s(L"%254ls", lpString, (unsigned)_countof(lpString));
wprintf(L"新窗口标题:%ls\n", lpString);

使用宽字符需要先初始化本地环境使用setlocale函数,包含在locale.h头文件中,然后需要使用wscanf_s函数来接收输入字符串,使用wprintf函数进行打印。

获取进程PID

#include <Windows.h>
#include <stdio.h>/*
获取进程PID TID
GetWindowThreadProcessId
hWnd           窗口句柄
lpdwProcessId  一个DWORD类型的指针
*/int main()
{HWND hWnd = FindWindowA(NULL, "微信");if (NULL == hWnd){return 0;}printf("获取到的窗口句柄:0x%p\n", hWnd);DWORD dwProcessId;// GetWindowThreadProcessId((HWND)0x3F05E2, &dwProcessId); // 这样直接写窗口句柄也是可以的 不过需要强制类型转换GetWindowThreadProcessId(hWnd, &dwProcessId);printf("获取到的进程PID:0x%lX", dwProcessId);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/521998.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

API可视化编排,提高API可复用率

在数字化时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为不同软件应用之间沟通的桥梁。然而&#xff0c;如何高效管理、编排和复用这些API&#xff0c;成为了企业和开发者面临的重要挑战。随着技术的不断进步&#xff0c;RestCloud API可视化编排应运而生&…

【YOLO v5 v7 v8 v9小目标改进】AFPN 渐进式特征金字塔网络:解决多尺度特征融合中,信息在传递过程丢失

AFPN 渐进式特征金字塔网络&#xff1a;解决多尺度特征融合中&#xff0c;信息在传递过程丢失 提出背景AFPN 多尺度特征金字塔 非邻近层次的直接特征融合 自适应空间融合操作 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改YOLO v9 魔改 提出背景 论文&#xff1a;https:…

吴恩达deeplearning.ai:数据增强数据合成迁移学习

以下内容有任何不理解可以翻看我之前的博客哦&#xff1a;吴恩达deeplearning.ai专栏 让我们看看为你的程序添加数据的技巧。在构建神经网络的时候&#xff0c;我们总是想要更多的数据&#xff0c;但是获取更多的数据往往是十分昂贵又缓慢的。相反地&#xff0c;添加数据的另一…

现在做抖店还能行吗?给2024年想入局抖店的新手,一些建议

我是王路飞。 说起来抖店好像也不算是个新项目了&#xff0c;毕竟抖音小店正式上线时间是在2019年&#xff0c;到现在也有5年多时间了。 我这边是从20年开始入局抖店的&#xff0c;比较庆幸的是赶上了当初的流量风口&#xff0c;且一直坚持到了现在。 由刚开始的单人单店&am…

手写分布式配置中心(六)整合springboot(自动刷新)

对于springboot配置自动刷新&#xff0c;原理也很简单&#xff0c;就是在启动过程中用一个BeanPostProcessor去收集需要自动刷新的字段&#xff0c;然后在springboot启动后开启轮询任务即可。 不过需要对之前的代码再次做修改&#xff0c;因为springboot的配置注入value("…

Unity 给刚体一个力或速度

创建平面和小球&#xff0c;给力或给速度让其弹起 给小球挂载刚体&#xff08;Rigibdody&#xff09;和脚本 &#xff08;力是累计或者衰减的&#xff0c;直接给速度就是赋值&#xff0c;但如果速度就和力类似了&#xff09; using System.Collections; using System.Collect…

数据库(mysql)-新手笔记(主外键,视图)

主外键 主键(唯一性,非空性) 主键是数据库表中的一个或多个字段&#xff0c;其值唯一标识表中的每一行/记录。 唯一性: 主键字段中的每个值都必须是唯一的&#xff0c;不能有两个或更多的记录具有相同的主键值 非空性&#xff1a;主键字段不能包含NULL值。 外键(引用完整 …

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Marquee)

跑马灯组件&#xff0c;用于滚动展示一段单行文本。仅当文本内容宽度超过跑马灯组件宽度时滚动&#xff0c;不超过时不滚动。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Ma…

Python笔记|基础算数运算+数字类型(1)

重新整理记录一下python的基础知识 基础运算符 、-、*、/ &#xff1b;括号 ()用来分组。 >>>2 2 4 >>>50 - 5*6 20 >>>(50 - 5*6) / 4 5.0 >>>8 / 5 1.6向下取整除法&#xff1a;向下舍入到最接近的整数的数学除法。运算符是 //。比如1…

AI大模型,掀起新一波智能浪潮!

AI大模型的出现&#xff0c;标志着人工智能技术迈入了一个新的阶段。这些巨大的模型不仅在规模上超越了以往任何其他人工智能系统&#xff0c;而且在性能上也取得了巨大的突破。由于其庞大的参数量和复杂的结构&#xff0c;AI大模型在各个领域展现出了强大的学习能力和推理能力…

代码随想录算法训练营第day10|232.用栈实现队列、 225. 用队列实现栈

目录 a.232.用栈实现队列 b. 225. 用队列实现栈 a.232.用栈实现队列 题目链接 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素…

Linux系统——Haproxy高性能负载均衡软件

目录 一、Haproxy介绍 1.Haproxy定义 2.Haproxy主要特性 二、安装Haproxy 1.yum安装 2.第三方rpm包安装 3.编译安装 3.1解决Lua环境 3.2编译安装Haproxy 三、配置文件详解 1.状态页 2.日志管理 2.1定义日志到其他主机站点 3.指定进程线程个数 4.cpu亲缘性 5.多进…