C游戏外挂

C游戏外挂(dll注入)笔记(持续学习更新ing)

先说说我对于外挂的理解,所谓外挂,也就是辅助程序,我这里想说的外挂区别于模拟鼠标键盘操作(调用os或硬件层的底层function),是以别人写的视频游戏或软件作为平台,调用别人写好的函数,修改别人的软件数据以达到某些目的的程序。
但是就像是你去别人的房子,房子主人毕竟不喜欢你随便操作他的私有物,所以你不可能是直挺挺的以一个外人的身份去操作他的房间,你只能“变身”,变身成他房间的一个内人,既然是自家人也就没什么好说了,你想干嘛干嘛。这也就是说,你写的这个程序不能是一个独立程序,只能屈身做一个附属模块去依附别人的程序。
这里就说说这个如何去依附别人的程序

先说环境:

这些环弄好了我们看看代码框架 有别于一般程序 我们加入 __declspec(dllexport)
此处注意一定要建立一个c文件

__declspec(dllimport)/*此处表示声明一个模块*/ void  mainc()
{
//此处写入需要调用的目标程序函数

}

这里补充说明一下刚刚说到的程序,程序其实是一种静态的说法,我们说外挂自然要说到一个动态的的概念——进程,进程是计算机分配给程序的资源调度的单位,我们的程序作为模块附属其它的程序自然也就共享了这些资源。这里我们要去调用这些资源(内存数据,cpu操作权等)。在我们的外挂程序中如何去调用别人的函数或者去修改别人的数据呢?
通过——函数指针概念,或者指针去访问相应的数据块从而调用数据。

int (*p0)()=(void (*)())0x+十六进制地址  //不带参数函数指针,地址强转该类型指针
int (*p1)(int a,int b)=(void (*)(int a,int b))0x+十六进制地址//带参数函数指针,地址强转该类型指针
int *pint=(int *)0x +十六进制地址

我们在程序里面先做一件事就是去设置当前程序为dll而非exe
在这里插入图片描述


我们需要将指针转换为待使用的函数类型,但是作为一款外挂我们当然不知道它有哪些函数,函数的参数如何,数据地址是什么?这时我们需要借助另一类工具——IDA PRO,ollydbg,softice通过反汇编以及跟踪调试工具
去得到相关的数据。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值