挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)不懂社区·好资源不错过·各位资源站大佬欢迎来采集搬运寻找会做《单机》游戏修改器的开发作者长期合作,价格不是问题!联系QQ:1874088565 ██【我要租此广告位】██
... .
查看: 3258|回复: 3
打印 上一主题 下一主题

[辅助源码] XNF C++开源

[复制链接]
4中级会员
533/600

533

积分

164

主题

9

听众
已帮网友解决0 个问题
好评
0
贡献
369
海币
3270
交易币
0
跳转到指定楼层
楼主
发表于 2017-6-19 09:13:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


本帖最后由 xl58 于 2017-6-19 09:17 编辑

XNF C++开源

[C] 纯文本查看 复制代码
const int 释放CALL = 0x191FC40;
const int 模拟CALL = 0x191FB80;
//技能全屏
void 模拟Call(int 对象基址, int 代码, int 伤害, int X轴, int Y轴, int Z轴)
{
__asm
{
push Z轴
push Y轴
push X轴
push 伤害
push 代码
push 对象基址
mov edi, 模拟CALL
call edi
add esp, 0x18
}
}
void 释放Call(int 对象基址, int 代码, int 伤害, int X轴, int Y轴, int Z轴)
{
__asm
{
push Z轴
push Y轴
push X轴
push 伤害
push 代码
mov eax, dword ptr ds : [人物基址]//人物
push dword ptr ds : [eax]
call 释放CALL
add esp, 0x18
}
}
void 释放线程()
{
int 代码 = GetPrivateProfileIntA("全屏", "技能代码", 2, lpPath);//11422血爆 30055伤害秒杀
int 伤害 = GetPrivateProfileIntA("全屏", "技能伤害", 2, lpPath);
int 技能个数 = 0;
int 一级偏移 = 读整数(人偶地址());
int 二级偏移 = 读整数(一级偏移 + 0xB8);
int 首地址 = 读整数(二级偏移 + 0xC0);
int 尾地址 = 读整数(二级偏移 + 0xC4);
int 怪物数量 = (尾地址 - 首地址) / 4;
for (int i = 0; i < 怪物数量; i++)
{
int 怪物基址 = 首地址 + 4 * i;
int 怪物地址 = 读整数(怪物基址);
int 怪物类型 = 读整数(怪物地址 + 0x98);
int 怪物阵营 = 读整数(怪物地址 + 0x7AC);
//int 怪物代码 = *(PINT)(怪物地址 + 880);
int 自身阵营 = 读整数(一级偏移 + 0x7AC);
//int 怪物血量 = *(PINT)(怪物地址 + 0x33DC);
if (怪物类型 == 529 || 怪物类型 == 273 || 怪物类型 == 545)
{
if (怪物阵营 != 自身阵营 && 怪物地址 != 一级偏移)
{
int x = (int)(*(float *)(怪物地址 + 0x1b8));
int y = (int)(*(float *)(怪物地址 + 0x1bc));
int z = (int)(*(float *)(怪物地址 + 0x1c0));
释放Call(一级偏移, 代码, 伤害, x, y, z);
//释放CALL(人偶地址获取(), 代码, 伤害, x, y, z);
//模拟Call(一级偏移, 代码, 伤害, x, y, z);
Sleep(GetPrivateProfileIntA("全屏", "技能频率", 2, lpPath));
技能个数++;
if (技能个数 == 8) {
return;
}
}
}
}
}
DWORD 技能全屏线程(_In_ LPVOID lpParameter)
{
while (1){
全屏线程();
}
return 100;
}
bool 全屏开关 = false;
HANDLE 全屏线程Handle;
DWORD tid;
void 开关全屏()
{
全屏开关 = !全屏开关;
if (全屏开关 == true) {
公告(L"?Lee? 全屏开启");
全屏线程Handle = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)技能全屏线程, NULL, 0, &tid);
}
if (全屏开关 == false) {


TerminateThread(全屏线程Handle, 11);
公告(L"?Lee? 全屏关闭");
}
}

[C] 纯文本查看 复制代码
void *冰冻地址;
void 刷新CALL(int 装备指针)//只相当于脱下装备,所以对于满技能无效
{
__asm
{
MOV EDI, [装备指针]
MOV EDX, [EDI]
MOV EDX, [EDX + 0x1F8]//刷新参数1
LEA EAX, [EDI + 0x73C]//刷新参数2
PUSH EAX
MOV ECX, EDI
MOV EAX, EDX
CALL EAX
}
}
void *空白地址(int size)//返回首地址指针
{
void *v;
v = malloc(size);//申请内存
memset(v, 0, size);//清空申请的内存区
return v;
}
void 冰冻全屏(int 基址)
{
检测();
int 范围 = GetPrivateProfileIntA("冰冻", "冰冻范围", 2, lpPath);
int 频率 = GetPrivateProfileIntA("冰冻", "冰冻频率", 2, lpPath);
int 伤害 = GetPrivateProfileIntA("冰冻", "冰冻伤害", 2, lpPath);
unsigned int addr_ = *(unsigned int*)基址;
addr_ = *(unsigned int*)(addr_ + 武器偏移);
冰冻地址 = 空白地址(32);
*(unsigned int*)(addr_ + 冰冻开始) = (int)冰冻地址;
*(unsigned int*)(addr_ + 冰冻结束) = (int)冰冻地址 + 0x20;
*(unsigned int*)冰冻地址 = 0;//0冰冻1诅咒
*(unsigned int*)((int)冰冻地址 + 0x4) = 范围;//x范围1
*(unsigned int*)((int)冰冻地址 + 0x8) = 范围;//y范围2
*(unsigned int*)((int)冰冻地址 + 0xC) = 频率;
*(unsigned int*)((int)冰冻地址 + 0x10) = 0;//持续时间
*(unsigned int*)((int)冰冻地址 + 0x14) = 100;//等级
*(unsigned int*)((int)冰冻地址 + 0x18) = 80;//几率
*(unsigned int*)((int)冰冻地址 + 0x1C) = 伤害;
刷新CALL(addr_);
}
void 冰冻还原(int 基址)
{
unsigned int addr_ = *(unsigned int*)基址;
addr_ = *(unsigned int*)(addr_ + 武器偏移);
*(unsigned int*)(addr_ + 冰冻开始) = 0x0;//写本内存地址400800写入10086
*(unsigned int*)(addr_ + 冰冻结束) = 0x0;//写本内存地址400800写入10086
free(冰冻地址);
刷新CALL(addr_);
}
void 人偶冰冻()

冰冻全屏(人偶地址());//这里写上对象即可。
Sleep(600);
公告(L"?Lee? Bd~start");
//刷新CALL(*(unsigned int*)((int)人偶地址() + 武器偏移));
Sleep(500);
冰冻还原(人偶地址());
}


[C] 纯文本查看 复制代码
材料技能

int 置入物品内存()
{
__asm
{
mov ecx, 人物基址
mov ecx, [ecx]
mov ecx, [ecx + 0x6050]
mov ecx, [ecx + 0x58]
mov ecx, [ecx + 0xC]
mov eax, [ecx]
mov eax, [eax + 0x14C]
cmp eax, 0
je $ + 8
call eax
}
}
void 材料技能()
{
int 代码 = GetPrivateProfileIntA("材料", "材料代码", 2, lpPath);
材料地址 = 空白地址(32);
*(unsigned int*)(置入物品内存() + 材料开始) = (int)材料地址;
*(unsigned int*)(置入物品内存() + 材料结束) = (int)材料地址 + 20;
*(unsigned int*)材料地址 = 代码;
公告(L"Lee - 材料技能 - ON");
}


[C] 纯文本查看 复制代码
吸物+自动入包



const int 入包范围 = 0x1DA9792;

void 吸物()
{
检测();
int 一级偏移 = 0, 二级偏移 = 0, 首地址 = 0, 尾地址 = 0, 数量 = 0, 对象地址 = 0, 类型 = 0;
int 人物X, 人物Y, 人物Z;
一级偏移 = *(int*)(人物基址);
二级偏移 = *(int*)(一级偏移 + 0xB8);
首地址 = *(int*)(二级偏移 + 0xC0);
尾地址 = *(int*)(二级偏移 + 0xC4);
人物X = *(int*)(一级偏移 + x偏移);//X坐标0x1B8
人物Y = *(int*)(一级偏移 + y偏移);//Y坐标0x1BC
人物Z = *(int*)(一级偏移 + z偏移);//Z坐标0x1C0
数量 = (尾地址 - 首地址) / 4;
for (int i = 0; i < 数量; i++) {
对象地址 = *(int*)(首地址 + 4 * i);
类型 = *(int*)(对象地址 + 0x94);
if (类型 == 289) {
int 怪物x地址 = *(int *)(对象地址 + 0xa8) + 0x10;
int 怪物y地址 = *(int *)(对象地址 + 0xa8) + 0x14;
*(int *)怪物x地址 = 人物X;
*(int *)怪物y地址 = 人物Y;
}
}
DWORD oldprotect;
VirtualProtect((LPVOID)入包范围, 2, PAGE_EXECUTE_READWRITE, &oldprotect);
BYTE a[2] = { 0x90, 0x90 };
BYTE b[2] = { 0x74, 0x12 };
memcpy((void *)入包范围, a, 2);
Sleep(800);
memcpy((void *)入包范围, b, 2);
VirtualProtect((LPVOID)入包范围, 2, oldprotect, &oldprotect);
}


[C] 纯文本查看 复制代码
Hook倍攻

void hook倍攻()
{
HANDLE h = GetCurrentProcess();
int 跳回地址, 倍功伤害;
BYTE 检测还原A[5] = { 0x55 };
BYTE 检测还原B[5] = { 0x64, 0xA3, 0x00, 0x00, 0x00 };
BYTE 检测还原C[5] = { 0x55 };
DWORD oldprotect;
VirtualProtect((LPVOID)HOOK倍功, 10, PAGE_EXECUTE_READWRITE, &oldprotect);
VirtualProtect((LPVOID)倍攻检测1, 10, PAGE_EXECUTE_READWRITE, &oldprotect);
VirtualProtect((LPVOID)倍攻检测2, 10, PAGE_EXECUTE_READWRITE, &oldprotect);
VirtualProtect((LPVOID)倍攻检测3, 10, PAGE_EXECUTE_READWRITE, &oldprotect);
LPVOID 倍功开始 = NULL;
跳回地址 = HOOK倍功 + 6;
倍功伤害 = GetPrivateProfileIntA("倍功", "倍功倍数", 2, lpPath) * 100;
倍功开始 = VirtualAllocEx(h, 0, 30, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
BYTE Code[30] = { 0x83, 0xB9, 0x50, 0x07, 00, 00, 00, 0x75, 0x07, 0xC7, 0x45, 0x10, 00, 00, 00, 00, 0x89, 0x85, 0x8C, 0xFE, 0xFF, 0xFF, 0x68, 00, 00, 00, 00, 0xc3 };
*(int *)(Code + 12) = 倍功伤害;
*(int *)(Code + 23) = 跳回地址;
BYTE hook1[6] = { 0x89, 0xBD, 0x94, 0xFE, 0xFF, 0xFF };
BYTE hook2[6] = { 0xe9, 0, 0, 0, 0, 0x90 };
*(int *)(hook2 + 1) = (int)倍功开始 - HOOK倍功 - 5;
if (hook倍功开关 == FALSE) {
memcpy((void *)HOOK倍功, hook2, 6);
memcpy(检测还原A, (void *)倍攻检测1, 1);
memcpy(检测还原B, (void *)倍攻检测2, 5);
memcpy(检测还原C, (void *)倍攻检测3, 1);
memcpy(倍功开始, Code, 30);
hook倍功开关 = TRUE;
公告(L"Lee - hook倍攻 - ON");
}
else {
memcpy((void *)HOOK倍功, hook1, 6);
memcpy(检测还原A, (void *)倍攻检测1, 1);
memcpy(检测还原B, (void *)倍攻检测2, 5);
memcpy(检测还原C, (void *)倍攻检测3, 1);
VirtualFreeEx(hWindows, 倍功开始, 30, MEM_DECOMMIT);
hook倍功开关 = FALSE;
公告(L"Lee - hook倍攻 - OFF");
}
VirtualProtect((LPVOID)HOOK倍功, 10, oldprotect, &oldprotect);
}


[C] 纯文本查看 复制代码
void 使用物品(int 位置)//物品1就是1
{
int 物品栏指针 = *(int *)(商店基址);
物品栏指针 = *(int *)(物品栏指针 + 0x48);//物品栏指针
*(int*)(物品栏指针 + 0x3D3 + 位置) = 1;
}
void 后台按键(int 按键代码, unsigned char 按键时长 = 50)
{
byte a[1] = { 1 };
byte b[1] = { 0 };
写内存字节(读整数(按键基址) + 按键代码, a, 1);
Sleep(按键时长);
写内存字节(读整数(按键基址) + 按键代码, b, 1);;
}


[C] 纯文本查看 复制代码
先丢人偶地址和怪物地址,然后再丢冰冻
int 人偶地址()
{
int 一级偏移 = 读整数(人物基址);
int 二级偏移 = 读整数(一级偏移 + 0xB8);
int 首地址 = 读整数(二级偏移 + 0xC0);
int 尾地址 = 读整数(二级偏移 + 0xC4);
int 怪物数量 = (尾地址 - 首地址) / 4;
for (int i = 0; i < 怪物数量; i++)
{
int 怪物基址 = 首地址 + 4 * i;
int 怪物地址 = 读整数(怪物基址);
int 怪物类型 = 读整数(怪物地址 + 0x94);
int 怪物阵营 = 读整数(怪物地址 + 阵营偏移);
if (怪物类型 == 273 && 怪物阵营 == 0 && 怪物地址 != 一级偏移)
{
return 首地址 + 4 * i;
}
continue;
}
return 0;
}
int 怪物地址()
{
int 一级偏移 = 读整数(人物基址);
int 二级偏移 = 读整数(一级偏移 + 0xB8);
int 首地址 = 读整数(二级偏移 + 0xC0);
int 尾地址 = 读整数(二级偏移 + 0xC4);
int 怪物数量 = (尾地址 - 首地址) / 4;
for (int i = 0; i < 怪物数量; i++)
{
int 怪物基址 = 首地址 + 4 * i;
int 怪物地址 = 读整数(怪物基址);
int 怪物类型 = 读整数(怪物地址 + 0x94);
int 怪物阵营 = 读整数(怪物地址 + 阵营偏移);
if (怪物类型 == 529 || 怪物类型 == 545)
{
if (怪物阵营 == 0 && 怪物地址 != 一级偏移)
{
int 怪物代码 = 读整数(怪物地址 + 0x3c4);
if (怪物代码 == 1090 || 怪物代码 == 69200)
return 首地址 + 4 * i;
}
}
}
}


[C] 纯文本查看 复制代码
然后再发一个东西叫做物品CALL
void 物品call(int 触发基址 = *(int *)人物基址, int 物品代码 = 2600261)
{
__asm
{
mov ecx, 触发基址
mov edx, dword ptr[ecx]
mov eax, 物品代码
mov edx, dword ptr[edx + 0x7D4]
push eax
call edx
}
}
自己更新一下基址可用。


[C] 纯文本查看 复制代码
void 符咒()
{
检测();
if (符咒开关 == FALSE)
{
写整数(读整数(读整数(读整数(读整数(人物基址) + 物品栏) + 物品栏偏移) + 物品栏1) + 0x20, 400360004);
符咒开关 = TRUE;
公告(L"?Lee? Fz - ON");
}
else{
符咒开关 = FALSE;
int 代码 = GetPrivateProfileIntA("符咒", "符咒代码", 2, lpPath);
int 伤害 = GetPrivateProfileIntA("符咒", "符咒伤害", 2, lpPath);
写整数(读整数(读整数(读整数(读整数(读整数(读整数(读整数(人物基址) + 物品栏) + 物品栏偏移) + 物品栏1) + 装备结构) + 0x4) + 0x2c) + 0x0, 20);//触发方式
写小数(读整数(读整数(读整数(读整数(读整数(读整数(读整数(读整数(人物基址) + 物品栏) + 物品栏偏移) + 物品栏1) + 装备结构) + 0x18) + 0x4) + 0x4) + 0x4, 4);//群体
写小数(读整数(读整数(读整数(读整数(读整数(读整数(读整数(读整数(人物基址) + 物品栏) + 物品栏偏移) + 物品栏1) + 装备结构) + 0x18) + 0x4) + 0x18) + 0x4, 99);//几率
写小数(读整数(读整数(读整数(读整数(读整数(读整数(读整数(读整数(人物基址) + 物品栏) + 物品栏偏移) + 物品栏1) + 装备结构) + 0x18) + 0x4) + 0x54) + 0x8, float(代码));
写小数(读整数(读整数(读整数(读整数(读整数(读整数(读整数(读整数(人物基址) + 物品栏) + 物品栏偏移) + 物品栏1) + 装备结构) + 0x18) + 0x4) + 0x54) + 0x18, float(伤害));
写整数(读整数(读整数(读整数(读整数(读整数(读整数(读整数(人物基址) + 物品栏) + 物品栏偏移) + 物品栏1) + 装备结构) + 0x4) + 0x18) + 0x4, 2000);//频率
写整数(读整数(读整数(读整数(读整数(人物基址) + 物品栏) + 物品栏偏移) + 物品栏1) + 0x20, 2236278049);
公告(L"?Lee? Fz - GO");
}
}
好像这个破东西挺稳定,没清楚了,也丢出去。


[C] 纯文本查看 复制代码
void 坐标Call(int 触发指针, int 坐标X軸, int 坐标Y軸, int 坐标Z軸) {
_asm
{
mov esi, 触发指针
mov eax, [esi]
mov edi, eax
add eax, 坐标结构一
mov eax, [eax]
mov ecx, esi
mov eax, eax
mov eax, eax
mov eax, eax
call eax
mov eax, 坐标Z軸
mov ecx, 坐标Y軸
mov edx, 坐标X軸
push eax
push ecx
push edx
mov eax, edi
add eax, 坐标结构二
mov eax, [eax]
mov ecx, esi
mov eax, eax
mov eax, eax
mov eax, eax
call eax
}
}
void 坐标过图(int 方向)
{
int 一级偏移 = 0, 二级偏移 = 0, 临时数据 = 0, 坐标结构 = 0, x = 0, y = 0, xF = 0, yF = 0, cx = 0, cy = 0;
一级偏移 = *(int *)人物基址;
二级偏移 = *(int *)(一级偏移 + 地图偏移);
临时数据 = *(int *)(商店基址 - 0x8);
临时数据 = *(int *)(临时数据 + 时间基址);
临时数据 = *(int *)(临时数据 + 坐标偏移);
坐标结构 = 临时数据 + (方向 + 方向 * 8) * 4 + 坐标结构偏移;
x = *(int *)(坐标结构 + 0);
y = *(int *)(坐标结构 + 4);
xF = *(int *)(坐标结构 + 8);
yF = *(int *)(坐标结构 + 12);
if (二级偏移 == 0) {
return;
}
if (方向 == 0) {
cx = x + xF + 20;
cy = y + yF / 2;
}
else if (方向 == 1) {
cx = x - 20;
cy = y + yF / 2;
}
else if (方向 == 2) {
cx = x + xF / 2;
cy = y + yF + 20;
}
else if (方向 == 3) {
cx = x + xF / 2;
cy = y - 20;
}
坐标Call(一级偏移, cx, cy, 0);
Sleep(200);
坐标Call(一级偏移, x + xF / 2, y, 0);
}





联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:一个最新的逆战PVE 源码
下一篇:突然发现了一个好东西
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:xhzlw@foxmail.com),本站将立即改正。

3正式会员
126/300

126

积分

0

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
126
海币
254
交易币
0
沙发
发表于 2017-7-23 13:44:08 | 只看该作者
支持一下了

36

积分

1

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
35
海币
163
交易币
0
板凳
发表于 2017-7-30 11:20:52 | 只看该作者
支持一下了,希望楼主能够打包源码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2025-4-22 00:46 , Processed in 0.105380 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表