CF D3D透视的两种方法和源码!
好久没发过贴了,前段时间无聊写的个D3D透视,也用过没什么问题,我对玩游戏都是三分钟热度,玩一盘就没兴趣了!今天无聊上开透视发现被和谐了
所以放出来给大家做个参考吧!
/////////////////////////////////////////////////////////////////////////////////////
注:源码不是最新的,不过大家根据里面的汇编定位就可以更新了
/////////////////////////////////////////////////////////////////////////////////////
第一种:
我利用的是在进入D3D透视地址之前hook,需要说的是现在这种方法被检测了,Hook会出现非法模块!
我不知道是我注入的问题还是啥问题!
以下是Hook的汇编
//透视枪、头盔、子弹等!
__declspec (naked) VOID HookD3D_Z()
{
__asm
{
mov eax,dword ptr ss:
mov ecx,dword ptr ds:
mov edx,dword ptr ds:
push edi
push 0x0
push ebx
push 0x0
push 0x0
push 0x4
push eax
mov edx,MyDrawIndexedPrimitive
call edx
pop edi
pop esi
pop ebp
pop ebx
retn 0x8
}
}
//透视身体
__declspec (naked) VOID HookD3D_F()
{
__asm
{
push edx
push 0x0
push 0x4
push eax
mov eax,dword ptr ds:
mov eax,MyDrawIndexedPrimitive
call eax
mov eax,dword ptr ss:
mov ecx,dword ptr ss:
add dword ptr ss:,0xC
add eax,0x1
cmp eax,dword ptr ds:
mov dword ptr ss:,ecx
mov dword ptr ss:,eax
jl nJl
pop edi
pop esi
pop ebp
pop ebx
add esp,0x228
retn 0x14
nJl:
mov eax, 0x4C72C3
jmp eax
}
}
第二种:
[[[基址]]]+0x148
得到的就是D3D的透视地址,修改成我们自己的函数达到透视的目的!
但是这个会出现230 ,由于我的系统是WIN7 64位,结束掉一条线程即可过掉230
哪条?ntdll里的某条,大家应该都知道吧?
源码里有我写好的,大家只需要更新下就可以!
如果大家觉得注入麻烦,那么我再发一个易语言不用注入的写法
使用的是第一种方法实现的透视!
.版本 2
.子程序 _按钮1_被单击
.局部变量 tmp, 整数型
.局部变量 Processid, 整数型
.局部变量 hProcess, 整数型
Processid = 进程名取ID (“CrossFire.exe”)
tmp = 读内存整数型 (Processid, 7497208)
tmp = 读内存整数型 (Processid, tmp)
tmp = 读内存整数型 (Processid, tmp)
tmp = 读内存整数型 (Processid, tmp + 328)
tmp = tmp + 5
修改内存属性 (Processid, 4195584, 500, 64)
修改内存属性 (Processid, 4196352, 500, 64)
修改内存属性 (Processid, 4196864, 500, 64)
修改内存属性 (Processid, 5047151, 5, 64)
修改内存属性 (Processid, 5010811, 5, 64)
.如果 (写内存字节集 (Processid, 4195584, { 131, 236, 8, 86, 139, 116, 36, 16, 139, 6, 87, 141, 76, 36, 20, 81, 141, 84, 36, 16, 82, 139, 144, 148, 1, 0, 0, 141, 76, 36, 16, 81, 106, 0, 86, 199, 68, 36, 28, 0, 0, 0, 0, 255, 210, 133, 192, 117, 12, 139, 68, 36, 8, 139, 8, 139, 81, 8, 80, 255, 210, 139, 68, 36, 20, 131, 248, 44, 116, 10, 131, 248, 40, 116, 5, 131, 248, 32, 117, 15, 139, 6, 139, 136, 228, 0, 0, 0, 106, 0, 106, 7, 86, 255, 209, 139, 84, 36, 44, 139, 68, 36, 40, 139, 76, 36, 36, 82, 139, 84, 36, 36, 80, 139, 68, 36, 36, 81, 139, 76, 36, 36, 82, 80, 81, 86, 232, 27, 0, 0, 0, 139, 22, 106, 1, 106, 7, 139, 248, 139, 130, 228, 0, 0, 0, 86, 255, 208, 139, 199, 95, 94, 131, 196, 8, 194, 28, 0, 139, 255, 85, 139, 236, 184 } + 到字节集 (tmp) + { 255, 224 }))
写内存字节集 (Processid, 4196352, { 54, 139, 69, 0, 62, 139, 8, 62, 139, 145, 72, 1, 0, 0, 87, 106, 0, 83, 106, 0, 106, 0, 106, 4, 80, 186, 0, 5, 64, 0, 144, 255, 210, 95, 94, 93, 91, 194, 8, 0 })
写内存字节集 (Processid, 4196864, { 82, 106, 0, 106, 4, 80, 62, 139, 129, 72, 1, 0, 0, 184, 0, 5, 64, 0, 144, 255, 208, 54, 139, 68, 36, 28, 54, 139, 77, 8, 54, 131, 68, 36, 24, 12, 131, 192, 1, 62, 59, 131, 192, 0, 0, 0, 54, 137, 76, 36, 16, 54, 137, 68, 36, 28, 124, 13, 95, 94, 93, 91, 129, 196, 40, 2, 0, 0, 194, 20, 0, 184, 195, 114, 76, 0, 255, 224 })
写内存字节集 (Processid, 5047151, { 185, 0, 8, 64, 0, 255, 225 })' hook地址,需更新
写内存字节集 (Processid, 5010811, { 185, 0, 10, 64, 0, 255, 225 })' hook地址,需更新
.否则
信息框 (“失败”, 0, )
.如果结束
前段时间我在win7 64玩游戏使用第一种方法的时候,可以很稳定的透视没问题!
但是在xp上就出现第三方,偶然看到[[[基址]]]+0xAC读取到地址并跳到这个地址后看到有一个VM
该vm里面在进入图里后就触发异常,如果直接恢复掉这个VM,会出现非法模块!
后来我也没怎么深入研究这个到底是干什么用的!不过既然是VM,那么肯定没干什么好事!
可以透视的方法多种多样,就看自己有没思路了!语文比较差,大家凑合着看吧!
w285133877 发表于 2015-6-7 16:17
你这一句话怎么弄把我给问到了,这个无非就是靠思路而已!
不懂{:1_908:}只想用下反恐行动的透视 我喜欢开自动开枪但是老出数据异常或者230求教结束哪条线程可以防数据异常或230 求详细!!! 学习了,谢谢分享 谢谢大大的分享 {:301_997:} 感谢楼主分享 感谢楼主分享! 楼主插得不是很深嘛,被和谐了 楼主用的vs哪个版本 谢谢楼主分享 占楼。。。收藏 大神能做其他游戏的透视吗?比如反恐行动