游戏内存修改器 之 暂停线程

<编程高手箴言>里讲到的一个分析实例(里面有一步暂停线程), 很有趣的一个实例, 于是自已准备也做出一个游戏内存修改器.实现到暂停线程这一步, 突然想看看效果.

我暂停线程的过程:

1.获得几乎所有线程句柄, 我用的是CreateToolhelp32Snapshot, Thread32First, Thread32Next几个函数

2.根据线程所属进程, 暂停指定进程里的所有线程 我用的是SuspendThread函数

之前看到小华子的BLOG文提到挂起System线程

于是自已也想试试, 先把自已的进程提升到DEBUG权限, 然后暂停System进程里的所有线程(不了解,所以就全部都暂停), 居然成功了, 不能切换到桌面, 也不能关机. 无奈, 只有强行关机.

下面是把进程提升为DEBUG权限的函数(来源网络)

BOOL EnableDebugPrivilege() //Call Success Return True,Failure Return FALSE
{
BOOL isSuccess=FALSE;
HANDLE hToken;
TOKEN_PRIVILEGES Privilege;
Privilege.PrivilegeCount=1;
Privilege.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&(Privilege.Privileges[0].Luid));

if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
     if(AdjustTokenPrivileges(hToken,FALSE,&Privilege,sizeof(TOKEN_PRIVILEGES),NULL,NULL))
    {
         isSuccess=TRUE;
    }
   CloseHandle(hToken);
}
return isSuccess;
}

 

本文转载自:http://hi.baidu.com/gzlick/blog/item/9466709641c3376555fb96f6.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值