如何把C格式的函数翻译成汇编的,顺便问下个人的一个程序问题
ywwow 2007-06-12 11:35:11 比如说 addr 应该在什么时候加上。
最近要交个程序作业,打算写个可以关机的程序。要用到AdjustTokenPrivileges等一些函数。但是一直没找到这几个API函数的汇编版本。
我试着翻译了一下,但是运行后没有反应,也不知道是哪里出了错。代码如下:
Reboot proc
LOCAL hToken: HANDLE
LOCAL tkp: TOKEN_PRIVILEGES
LOCAL tkpnew: TOKEN_PRIVILEGES
LOCAL hhh: DWORD
invoke GetCurrentProcess
mov hhh,eax
invoke OpenProcessToken, hhh, TOKEN_ADJUST_PRIVILEGES OR TOKEN_QUERY, addr hToken
invoke LookupPrivilegeValue,NULL,offset rebootname, addr tkp.Privileges[0].Luid
mov tkp.PrivilegeCount,1
mov eax,SE_PRIVILEGE_ENABLED
mov tkp.Privileges[0].Attributes ,eax
invoke AdjustTokenPrivileges, hToken, FALSE, addr tkp, sizeof tkpnew, addr tkpnew, 0
invoke ExitWindowsEx,EWX_REBOOT, 0
ret
Reboot endp
那个rebootname,在之前的.data里面已经有定义,我定义为rebootname db "SE_SHUTDOWN_NAME",0
汇编和C都在学习中,很多东西还一知半解。希望哪位高手能帮下忙,不吝赐教。