自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 温故知新:函数指针

那这里可以看出来了,当你让函数指针指向一个函数,他所指向的实际上不是你那个函数的地址,而是一个类似函数表的地方,当线程运行到此处时他通过二次跳转最终来到函数地址。我一直以为只能直接调用函数指针,今天看代码发现一个对函数指针解引用的操作,一下子以为是我记错了,回头测试了一下结果发现两种写法都可以。另外一点,按理说pf指向func,但是在监视窗口内pf的值和func的值却不一样。啊,我确实是有点笨拙了。可以看出来,至少在汇编层面上,直接调用函数指针 和 解引用使用函数指针确实是没有区别的。

2023-03-27 14:56:45 90

原创 功能错误 or 设计错误?远控项目里我这样看

从开发中遇到的功能漏洞谈设计规范

2023-03-15 13:20:49 114

原创 MFC窗口创建类提示“没有注册类”

MFC窗口创建类提示“没有注册类”

2022-06-18 16:23:24 1514 2

原创 使用C++代码调用目标程序函数心得

本文所提到的所有观点均来自个人理解体会,技术指导:易道云tiger使用C++语言调用游戏函数,关键点就两个,一个是要把他函数仿照出来,一个是找一个位置调用。其实到这里我也知道之前在疑问笔记里提出的“为什么分析一个函数要‘参数’,‘返回值’,‘调用约定’三大件”问题的答案了,因为我们想要把这个函数模仿出来,就必然的需要这些内容。 以下面地址6DA8B3这个函数为例:他的三大件就是参数:“dword”,返回值:“某结构体或类指针”返回值,调用约定:“thiscall”。当然返回值是...

2022-03-11 18:15:07 944 1

原创 钩子注入原理讲解(SetWindowsHook注入)

我们想要用自己写的一个函数来接管A程序对某消息的处理,那么首先你这个函数所在的文件,是要在这个A程序里面的,也就是说,SetWindowsHookEx函数,在他下钩子的过程当中,操作系统帮助我们完成了一次注入。HHOOK SetWindowsHookExA(intidHook, //钩子程序的类型,常用的有WH_KEYBOARD用于钩取键盘消息HOOKPROC lpfn,//回调函数,就是...

2022-01-08 13:24:20 3147

原创 命令行参数传递

传递命令行参数的操作合集

2021-12-15 23:44:48 2955

原创 获取程序入口点

入口点介绍:一个程序从最开头往下算大致可以分为DOS头,DOS头相关数据,PE头,然后才是文件数据,我们要找的入口点地址写在了PE头里面。DOS头的长度是固定的,但其相关数据是不固定的,好在DOS头里有一个LONG类型的e_lfanew,这个变量记载了PE头相对DOS头的偏移。IMAGE_NT_HEADERS是PE头结构体的宏,在32位和64位下分别对应_IMAGE_NT_HEADERS和_IMAGE_NT_HEADERS64。typedef struct _IMAGE_NT_HEADERS

2021-12-15 00:39:04 736 1

原创 无辅助空间交换值的三种方式【所有语言通用】

两个变量,如何在没有辅助空间的情况下交换值?这里分享三个交换方式:1. 左右移操作【位运算】 一个unsigned型数据占4字节,32位,在给出的两个数字并没有超过65535的情况下可以使用如下代码实现交换:unsigned numA{0x100};unsigned numB{0x200};numA <<= 16;numA |= numB;numB = numA;numA &= 0x0000ffff;numB >> 16; ...

2021-11-21 13:52:26 428

原创 详解MFC运行时类信息机制

作用在程序运行过程中可以获知对象的类的相关信息(例如对象是否属于某个类)使用条件类派生自Cobject 类内添加声明宏 DECLARE_DYNAMIC(theClass) 类外添加实现宏 IMPLEMENT_DYNAMIC(theClass, baseClass)使用方式类对象名.IsKindOf(RUNTIME_CLASS(想要判断是否在其中的类名))使用代码示例class CMonster:public CObject{ DECLARE_DYNAMI

2021-09-14 19:23:36 254 1

原创 极简fseek()函数讲解,一分钟掌握

fseek函数的作用为调节文件指针位置应用场景:当我们通过文件指针通过fwrite()函数向文件中输入数据,假设数据为字符串“麻辣香锅”,输入完毕后文件指针的指向位置实际上是“锅”的后面,相当于光标。此刻如果使用fread函数是无法正常读取文件内容的,原因是fread只能读取指针往后的内容。需要将文件指针前置,这时候就需要用到fseek函数。语法:参数:第一参数为文件指针二三参数共同决定文件指针的位置参数三相应的宏:宏 值 备注 SEEK_CUR 1

2021-08-15 23:48:38 12123

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除