天天看点

[原创]另一种进入NT内核方法的汇编版本

要说明的是该方法本身不是我的原创 ,是其他大牛首先写出来的。

而我只是将该方法的c版本 "翻译" 成 masm32 版本。: )

[原创]另一种进入NT内核方法的汇编版本

.386

[原创]另一种进入NT内核方法的汇编版本

.model flat, stdcall

[原创]另一种进入NT内核方法的汇编版本

option casemap:none

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

include  c:masm32includewindows.inc

[原创]另一种进入NT内核方法的汇编版本

include  c:masm32includeuser32.inc

[原创]另一种进入NT内核方法的汇编版本

include  c:masm32includekernel32.inc

[原创]另一种进入NT内核方法的汇编版本

include  c:masm32includeadvapi32.inc

[原创]另一种进入NT内核方法的汇编版本

includelib c:masm32libuser32.lib

[原创]另一种进入NT内核方法的汇编版本

includelib c:masm32libkernel32.lib

[原创]另一种进入NT内核方法的汇编版本

includelib  c:masm32libadvapi32.lib

[原创]另一种进入NT内核方法的汇编版本

include  c:masm32macrosucmacros.asm

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

unicode_string struct

[原创]另一种进入NT内核方法的汇编版本

  _length  word ?

[原创]另一种进入NT内核方法的汇编版本

  maximumlength word ?

[原创]另一种进入NT内核方法的汇编版本

  buffer  dword ?

[原创]另一种进入NT内核方法的汇编版本

unicode_string ends

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

systemloadandcallimage  equ 38

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

_zwsetsysteminformation  typedef proto :dword,:dword,:dword

[原创]另一种进入NT内核方法的汇编版本

lpzwsetsysteminformation typedef ptr _zwsetsysteminformation

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

_rtlinitunicodestring  typedef proto :dword,:dword

[原创]另一种进入NT内核方法的汇编版本

lprtlinitunicodestring  typedef ptr _rtlinitunicodestring

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

system_load_and_call_image struct

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 modulename unicode_string <?>

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

system_load_and_call_image ends

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 .const

[原创]另一种进入NT内核方法的汇编版本

txt    db 'just do it!',0

[原创]另一种进入NT内核方法的汇编版本

cp    db 'hopy|侯佩',0

[原创]另一种进入NT内核方法的汇编版本

wstr    drvnamew,"??c: mpdrv.sys"

[原创]另一种进入NT内核方法的汇编版本

drvname    db '??c:tmpdrv.sys',0

[原创]另一种进入NT内核方法的汇编版本

dllname    db 'ntdll.dll',0

[原创]另一种进入NT内核方法的汇编版本

szzwsetsysteminformation db 'zwsetsysteminformation',0

[原创]另一种进入NT内核方法的汇编版本

szrtlinitunicodestring  db 'rtlinitunicodestring',0

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 .data?

[原创]另一种进入NT内核方法的汇编版本

hinstance   dd    ?

[原创]另一种进入NT内核方法的汇编版本

hdll    dd    ?

[原创]另一种进入NT内核方法的汇编版本

stsyscallimage   system_load_and_call_image <>

[原创]另一种进入NT内核方法的汇编版本

zwsetsysteminformation  lpzwsetsysteminformation ?

[原创]另一种进入NT内核方法的汇编版本

rtlinitunicodestring  lprtlinitunicodestring  ?

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 .code

[原创]另一种进入NT内核方法的汇编版本

start:

[原创]另一种进入NT内核方法的汇编版本

 invoke getmodulehandle, 0

[原创]另一种进入NT内核方法的汇编版本

 mov hinstance,eax

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 invoke loadlibrary,addr dllname

[原创]另一种进入NT内核方法的汇编版本

 mov hdll,eax

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 invoke getprocaddress,hdll,addr szzwsetsysteminformation

[原创]另一种进入NT内核方法的汇编版本

 mov zwsetsysteminformation,eax

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 invoke getprocaddress,hdll,addr szrtlinitunicodestring

[原创]另一种进入NT内核方法的汇编版本

 mov rtlinitunicodestring,eax

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 invoke rtlinitunicodestring,addr stsyscallimage.modulename,

[原创]另一种进入NT内核方法的汇编版本

  addr drvnamew

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 invoke zwsetsysteminformation,systemloadandcallimage,

[原创]另一种进入NT内核方法的汇编版本

  addr stsyscallimage,

[原创]另一种进入NT内核方法的汇编版本

  sizeof system_load_and_call_image

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 invoke messagebox,null,addr txt,addr cp,mb_ok

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

 invoke exitprocess,null

[原创]另一种进入NT内核方法的汇编版本

end start

[原创]另一种进入NT内核方法的汇编版本
[原创]另一种进入NT内核方法的汇编版本

继续阅读