[x86ASM]强制结束线程 - TaTerminateThread
本帖最后由 Tesla.Angela 于 2010-8-7 00:23 编辑TaOpenThread的汇编版本暂时不想写了,谁爱写谁写吧。
以下是TaTerminateThread的代码:
.386
.model flat, stdcall
option casemap :none
include windows.inc
include user32.inc
include kernel32.inc
include masm32.inc
includelib user32.lib
includelib kernel32.lib
includelib masm32.lib
include macro.asm
.data
NtDllDll db 'NTDLL.DLL',0
Kernel32 db 'kernel32.dll',0
GetDebug db 'RtlAdjustPrivilege',0
ExThread db 'ExitThread',0
.CODE
START:
getp proc
local hNtdll:DWORD
local pRtlAdjustPrivilege:DWORD
local rtv:DWORD
invoke LoadLibrary,offset NtDllDll
mov hNtdll,eax
invoke GetProcAddress,hNtdll,offset GetDebug
mov pRtlAdjustPrivilege,eax
lea eax,rtv
push eax
push 0
push 1
push 20
call pRtlAdjustPrivilege
invoke FreeLibrary,hNtdll
getp endp
tatt proc
local hThread:DWORD
local hModule:DWORD
local ctx:CONTEXT
invoke OpenThread,THREAD_ALL_ACCESS,0,2020;ThreadId
mov hThread,eax
.if eax==0
invoke ExitProcess,0
.endif
invoke GetModuleHandle,offset Kernel32
mov hModule,eax
invoke GetProcAddress,hModule,offset ExThread
mov ctx.regEip,eax
invoke SuspendThread,hThread
invoke SetThreadContext,hThread,addr ctx
invoke ResumeThread,hThread
invoke CloseHandle,hThread
tatt endp
invoke ExitProcess,0
end START
另外很想说个题外话,有没有人理解我的签名中那首诗的意境?
练得身形似鹤形,
千株松下两函经。
我来问道无馀说,
云在青天水在瓶。
云在青天水在瓶,
一行一动各一名。
若能参透瓶中意,
虚空法界任其行。
答案:
**** Hidden Message ***** 请各位直言指出代码的不足 对我来说,最大的不足是----------看不懂:D 高水平 这个似乎很简陋 这个似乎很简陋
inside 发表于 2010-8-8 16:38 http://www.m5home.com/bbs/images/common/back.gif
多谢兄弟直言 TaOpenThread是通过Query句柄实现的吧.用汇编写恐怕...... TaOpenThread是通过Query句柄实现的吧.用汇编写恐怕......
xiaoly99 发表于 2010-8-9 14:38 http://www.m5home.com/bbs/images/common/back.gif
不知道驱动里怎样malloc。 忽然想起汇编是可以调用C库函数的。。。这不就简单了??? 是汇编写的就强大 支持汇编 可惜我不懂 回复 11# jiedengye
是汇编写的就强大
这句话我不赞同,语言只是手段,不是目的。 我只是很向往 汇编 也许是看黑客帝国看多了 哈哈 回复 9# Tesla.Angela
呃,话说驱动中的malloc不就是ExAllocatePool \ ExAllocatePoolWithTag 回复 14# 腾袭
说错了,是不知道汇编里怎么malloc,不过现在知道了,直接调用C库函数即可。 这个不一定要汇编吧?vb好像也可以哦 坐等大侠讲签名 回复 nbboy 的帖子
可以看看电视剧《大明王朝1566》。 看看 看看答案 谢谢 我是来看答案的
页:
[1]