dnf辅佐外挂C++源代码_liujiayu2的专栏

因为我的C用的对照少,所以大部分都用的汇编,部份中央用汇编写不是很轻易,所以我用的C,因为只是进修,所以内核地址我没有较量争论都是硬编码的。过DNF首要分为三步,或许我的思绪不太准确,归正可以OD调试,下断。

顺序没怎样修容貌,由于只是测试,所以普通都没有写更改内核后的恢复,不外不故障利用。

第一步,这也是最起码的,你必需要可以翻开游戏历程和线程,可以开打历程和线程后不被检测到

第二步,可以读写进村内存

第三步,可以用OD附加游戏历程

第四步,可以下硬件断点而不被检测

跳过NtReadVirtualMemory,NtWriteVirtualMemory函数头的钩子

代码:

#include

;获得零碎称号偏移

DriverUnload endp

*((ULONG*)Address) = (ULONG)OldServiceAddress;//复原SSDT

/

《dnf辅佐外挂C++源代码_liujiayu2的专栏》

invoke DbgPrint, ebx

extern PSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable;//KeServiceDescriptorTable为导出函数

mov cr0,eax

mov eax, (LinkTable ptr [ebx]).Dr1Seg

inc ecx

mov eax, cr0

invoke GetProcessName

mov eax, cmd_2

invoke ModifyFuncAboutDbg, Dmpp_1, 90787e39h, 950f9090h

Mcp_1 equ 805b0c06h

《dnf辅佐外挂C++源代码_liujiayu2的专栏》

{ //去掉内存保护

{

VOID OnUnload(IN PDRIVER_OBJECT DriverObject)

《dnf辅佐外挂C++源代码_liujiayu2的专栏》

push 0x1c

mov cr0, eax

《dnf辅佐外挂C++源代码_liujiayu2的专栏》

点赞

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注