netsmu 发表于 2012-3-19 21:47:51

已知进程挂起代码,求线程挂起代码。[已解决]

本帖最后由 netsmu 于 2012-3-20 17:28 编辑

进程挂起的代码如下
Func _ProcessSuspend($process)
$processid = ProcessExists($process)
If $processid Then
    $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
    $i_sucess = DllCall("ntdll.dll","int","NtSuspendProcess","int",$ai_Handle)
    DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
    If IsArray($i_sucess) Then
      Return 1
    Else
      SetError(1)
      Return 0
    Endif
Else
    SetError(2)
    Return 0
Endif
EndFunc

Func _ProcessResume($process)
$processid = ProcessExists($process)
If $processid Then
    $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
    $i_sucess = DllCall("ntdll.dll","int","NtResumeProcess","int",$ai_Handle)
    DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
    If IsArray($i_sucess) Then
      Return 1
    Else
      SetError(1)
      Return 0
    Endif
Else
    SetError(2)
    Return 0
Endif
EndFunc
现在我需要的是某进程里的主线程的挂起代码,
线程操作函数API应该是这个,挂起函数SuspendThread, 恢复函数ResumeThread

谁比较清楚这2个函数的? 帮忙写个 线程挂起的UDF吧, 谢谢啦。

zldfsz 发表于 2012-3-19 22:18:08

呵呵,我是不知道的。。。刚才试了下进程挂起的还可以,谢谢了

whm123 发表于 2012-3-20 02:31:49

测试一下,没有问题啊

netegg 发表于 2012-3-20 03:34:28

本帖最后由 netegg 于 2012-3-20 03:37 编辑

线程挂起,要先枚举相关进程和相关进程权限,替换脱钩,
或者msdn下suspendthread,不清楚有没有这函数,只见过结束和启动的

netsmu 发表于 2012-3-20 17:27:53

结贴吧,本人已经找到方法了, 用 Thread.au3 里面有个函数就可以了,Thread.au3 文档说得很清楚,大家可以看看。
页: [1]
查看完整版本: 已知进程挂起代码,求线程挂起代码。[已解决]