迅维网

用两个简单的API,实现暂停线程、恢复线程功能!

晨洋宝贝 2017-9-11 10:45


  在我们制作游戏脚本的时候,在过保护的时候,很容易遇到需要暂停某进程的功能!今天来教大家这个功能是怎么实现的!

  很简单,就是调用了两个API。
  1. NtSuspendProcess:暂停进程
    API定义: Private Declare Function NtSuspendProcess Lib "ntdll.dll" (ByVal hProc As Long) As Long '进程暂停
    我们可以看到这个API只有一个传入的参数hProc,也就是进程句柄
  2. NtResumeProcess:恢复进程
    API定义: Private Declare Function NtResumeProcess Lib "ntdll.dll" (ByVal hProc As Long) As Long '进程恢复
    我们可以看到这个API也只有一个传入的参数hProc,也就是进程句柄
  我们今天以一单机游戏为例:
  1. 我们先找到该游戏的进程PID

教大家用两个简单的API,实现暂停线程、恢复线程功能!

900 510


  2.我们可以看到,游戏的进程PID为:1132,我们首先需要获得该游戏的进程句柄

  我们需要用到OpenProcess这个API。

编程代码如下:

hP = OpenProcess(&H1F0FFF, False, Text1) '获得进程句柄,TEXT1为进程PID

  3.获得到了进程PID,我们编写代码。

VB6.0,完整代码:

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
'打开一个已存在的进程对象,并返回进程的句柄
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
'关闭一个内核对象(其中包括文件、文件映射、进程、线程、安全和同步对象等)
Private Declare Function NtSuspendProcess Lib "ntdll.dll" (ByVal hProc As Long) As Long '进程暂停
Private Declare Function NtResumeProcess Lib "ntdll.dll" (ByVal hProc As Long) As Long '进程恢复
Private Sub Command1_Click()
Dim hP As Integer
hP = OpenProcess(&H1F0FFF, False, Text1) '获得进程句柄
NtSuspendProcess (hP) '暂停
CloseHandle (hP) '关闭句柄,释放内存
End Sub
Private Sub Command2_Click()
Dim hP As Integer
hP = OpenProcess(&H1F0FFF, False, Text1) '获得进程句柄
NtResumeProcess (hP) '恢复
CloseHandle (hP) '关闭句柄,释放内存
End Sub


教大家用两个简单的API,实现暂停线程、恢复线程功能!

  3.运行程序,我们测验看下效果!

教大家用两个简单的API,实现暂停线程、恢复线程功能!

  OK!我们可以看到画面已经卡住了!是不是很简单呢?

  其实API的调用真的很简单!我们学习API,能让我们的编程水平进一步的提升,也能让以前想也不敢想的功能轻松实现!有什么问题或者建议给我留言吧!


雷人

握手

鲜花

鸡蛋

路过
收藏
来自: 今日头条
发表评论

最新评论

引用 维修江湖第一 2017-9-11 10:45
卡住有毛用,我要能自动种植物打僵尸的功能
引用 天籁维修 2017-9-11 10:45
支持
引用 讯城科技 2017-9-11 10:45
vb?
引用 花开的那一瞬间 2017-9-11 10:45
停住了。有什么用吗?
引用 冠盟科技通讯 2017-9-11 10:45
但是PID会变啊
引用 维修江湖第一 2017-9-11 10:45
OpenProcess在那里用?
引用 灵魂禁锢 2017-9-11 10:45
楼主弹窗的API是不是就是createwindowsex和dialogboxparam两个呢[机智]
引用 维修江湖第一 2017-9-11 10:45
进程…不是线程…
引用 青春维修 2017-9-11 10:45
我想停住 winlogin.exe 和 smss.exe
引用 大笑维修 2017-9-11 10:45
多发几个枪林弹雨相关的修改呗!

发表评论

登录 后可参与评论
返回顶部
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索