64位游戏逆向经验
64位64位逆向比32位还要简单一点
32位与64位的区别内存大小的区别32位:FFFFFFFF
64位:FFFFFFFFFFFFFFFF
寄存器的区别32位:eax ebx ecx edx ebp esp esi edi
64位:rax rbx rcx rdx rbp rsp rsi rdi r8 r9 r10 r11 r12 r13 r14 r15
64的高8位很多是0
浮点寄存器的区别32位:XMM0–XMM15 64位
64位:XMM0–XMM15 128位
64位添加了YMM0–YMM15 128位
寄存器的作用的区别rax和eax依然作为返回值
32位的函数约定有很多种
64位的函数约定默认设置了fastcall,因此基本只用一种:fastcall 函数约定。函数传递方式几乎是固定的了
32位的fastcall:优先ecx和edx来传递参数,再有参数的话用push
64位的fastcall:优先rcx,rdx,r8,r9来传递参数,再有的话,就从堆栈传递(和32位有一点区别,开辟堆栈空间直接往里面赋值的,看不到push)
...
fps辅助整体分析
FPS游戏特性导致的,需要非常高的实时性,不能过度的网络验证
绘制部分可以使用透明窗口覆盖在游戏上,非常难以检测
自瞄部分,捕捉准星数据,准星路径曲线不规则或有中断(不能平滑,人类操作鼠标非常不圆滑)
连续爆头的行为检测行为数据异常等等
相关基础角度计算
tan,cos,sin函数,参数为弧度,弧度为π表示180度。
atan2,acos2,asin2,返回值为弧度。
$$角度=(弧度*180)/π$$
$$弧度=(角度*π)/180$$
了解线性代数:
向量内积是一个向量在另一个向量上的投影长度乘以另一个向量的长度
12//比如:[1,3]和[3,0]的向量内积为:[1,3]*[3,0]=3+0=3
矩阵的乘法:
快捷键写法1234if(GetKeyState(VK_F1)&1)//VK_F1是键码{ //按下F1执行里面的指令,再按下F1停止执行里面的指令}
绘制的三种方法
hook d3d/opengl
优:完全不闪,代码简单
缺:非常容易被检测
游戏窗口上自行 ...
windows进程与线程的底层实现
更多信息参见《Windows内核原理与实现》第三章。
特别强调:
笔记中的内容,与《内核情景分析》《Windows内核原理与实现》均有不同。
ReactOS是开源免费的Windows NT系列(含NT4.0/2000/XP/2003)克隆操作系统
WRK 是微软针对教育和学术界开放的 Windows 内核的部分源码
而笔记是基于Windows XP SP2/SP3 二进制文件.
微软并不开源,很多内核成员的作用需要自己去分析.
整个系统结构:
执行体只维护属性,内核只根据属性做事,内核层比执行体更接近底层
Ps开头的基本是执行体函数
KE,Ki开头函数开头的函数都是内核函数(一般KE是导出函数,Ki是不导出函数)
Nt开头的函数还是ntdll.dll那层
Windows内核重要变量
进程结构体进程结构体_EPROCESS每个windows进程在0环都有一个对应的结构体:_EPROCESS这个结构体包含了进程所有重要的信息。(PEB是三环关于进程信息的另一个结构体)
_EPROCESS结构体中的成 ...
基本介绍
Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和 HTTP缓存。该软件由俄罗斯程序员伊戈尔•赛索耶夫开发的开源框架,由c语言实现,并于2004年首次公开发布。2011年成立同名公司以提供支持服务。2019年3月11日,Nginx公司被F5网络公司以6.7亿美元收购。Nginx是免费的开源软件,根据类BSD许可证的条款发布。
作用
web服务器
解析http协议
反向代理服务器
了解反向代理的概念
邮件服务器
解析邮件相关的协议:pop3/smtp/imap
优点
高并发支持: 单机能够支持10W+的并发连接(取决于内存大小,极限能够到百万),那么在实际生产中也是非常能接近这个数字的,这主要得益于 nginx 在linux 环境下使用了 epol1 I0 多路复用模型。
内存消耗低: 在同类型 web 服务中,nginx 比 apache 占用的内存资源更少,在一般情况下 10K非活跃的 HTTP Keep-Alive 连接在 nginx中仅消耗 2.5M内存。
高扩展性: 低耦合的模块设计,并且有丰富的第三方模块支持 ...
Qt概述什么是QtQt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。
Qt的发展史1991年 Qt最早由奇趣科技开发
1996年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础
2008年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程语言
2012年 Qt又被Digia公司收购
2014年4月 跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。
当前Qt最新版本为 5.9.0(现在已经不是了)
支持的平台
Windows – XP、Vista、Win7、Win8、Win2008、Win10
Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多X11平台
Macintosh – Mac OS X
...
32位游戏逆向经验
口袋西游实战数组:追背包数量背包小血药地址:2A935D64
小血药数量地址=[[eax+ebx*4]+14]
此处继续追eax,ebx==5表示背包中第六个格子
10048580F |. 8B7424 1C mov esi, dword ptr [esp+1C] ; 小血药数量地址=[[[[esp+1c]+C]+5*4]+14]
小血药数量地址=[[[[ecx+AD8]+C]+5*4]+14]
1006522D1 |. 8B4C85 1C |mov ecx, dword ptr [ebp+eax*4+1C] ; 小血药数量地址=[[[[[[ebp+eax*4+1C]+8]+28]+0AD8]+C]+5*4]+14
此处eax为某种数组
小血药数量地址=[[[[[[[[[[ecx+1c]+68]+4]+8]+14+1C]+8]+28]+0AD8]+C]+54]+14
ecx==00D11A50(是个基地址)
万能控件ca ...
驱动开发理解
SDK software development kits(软件开发包) 如Visual Studio 2019(v142)
WDK windows driver development kits(驱动开发包) 如WindowsKernelModeDriver10.0
设置他们的位置在属性-配置属性-常规-平台工具集,但实际上无需手动设置,因为新建什么项目时vs都帮你自动配置好了
准备工作环境配置参考
创建Empty WDM Driver项目,生成的Driver Files文件中的inf后缀文件可以直接删除
在源文件中添加的必须是.c后缀的C语言文件。
项目配置中:
属性-C/C++中将警告视为错误选项设置为否
属性-链接器中将链接器警告视为错误设为否
由于使用的是windowsXP作为开发环境,所以要针对windowsXP进行项目配置,参考链接:开发各平台驱动的设置参考
如果建立的是KMDF项目的话,除了上述步骤,还可以将属性-Inf2Cat中Run Inf2Cat选项设置为否
制作不同系统的驱动,要设置属性-Driver Settin ...
盘点一些金融相关知识
信用卡全球六大信用卡组织
交易量排名: VISA > MasterCard > 银联 > AMERICAN EXPRESS > DISCOVER > JCB
发卡量排名: 银联 > VISA > MasterCard > AMERICAN EXPRESS > DISCOVER > JCB
商户接受度排名: VISA = MasterCard > AMERICAN EXPRESS > DISCOVER = JCB
不建议申请既是visa/MasterCard 又是银联的双标卡,网上支付的时候由于有银联特征存在,所以有可能被拒支付
推荐两张终生免年费的国际信用卡: 中国银行全币种国际芯片VISA白金卡
支付实例
费用项
使用支付宝/微信支付
使用中国银行全币种VISA白金卡
OpenRouter 平台手续费
约 5.5% + $0.35
可能免除
发卡行货币转换费
不涉及
通常免除(此为全币种卡核心优势)
支付10美元的实际成本
约 ...
以下为本人待解决问题,有能解决的大佬看到,恳请帮忙解决一下,感激不尽。
1本人qq邮箱:503969402@qq.com
问题汇总问题1(已解决)开发环境:
Microsoft Visual Studio Community 2015版本 14.0.24720.00 Update 1Microsoft .NET Framework版本 4.8.03761
问题描述:
以下代码为什么出错?
代码如下:
123456789101112131415161718192021222324252627282930313233343536#include"iostream"#include <string>using namespace std;class Building{ friend void GoodGay::visit();public: Building() { m_SittingRoom = "客厅"; m_BedRoom = "卧室"; } string m_Sitting ...
API函数的调用过程Application Programming Interface,简称API函数。
Windows有多少个API:主要是存放在C:/WINDOWS/system32下的所有dll
几个重要的DLL
Kernel32.dll:最核心的功能模块,比如管理内存,进程,线程相关的函数等。
User32.dll:是Windows用户界面相关应用程序接口,如创建窗口和发送消息等。
GDI32.dll:全称是Graphical Device Interface(图形设备接口),包含用于画图和显示文本的函数。比如要显示一个程序窗口,就调用其中的函数来画这个窗口
Ntdll.dll:大多数API都会通过这个DLL进入内核(0环)
3环部分分析ReadProcessMemory12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455.text:7C8021D0 ; Exported entry 682. Read ...