侵入远程的代码也写好了

原创 2006年06月09日 18:01:00

;----------------
;编译模式="CON"
;----------------
.386
.model flat, stdcall
option casemap :none
 
include windows.inc
include user32.inc
include kernel32.inc
include masm32.inc
include Psapi.inc

includelib user32.lib
includelib kernel32.lib
includelib masm32.lib
includelib Psapi.lib
;-------------------------------------------------------

Error_Handler   proto :DWORD, :DWORD, :DWORD, :DWORD
Print_Handler   proto :DWORD,  :DWORD,:DWORD
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD
RetriveProcess proto :DWORD
Enject_Handle  proto :DWORD

szText MACRO Name, Text:VARARG
          LOCAL lbl
            jmp lbl
              Name db Text,0
            lbl:
          ENDM

.const
 DLG_MAIN equ 1
 ITEM_LIST  equ 1001
 BTN_ENJECT equ  1003


.DATA
 szMsg db "Hello World!",13,10,0
 proID dd 512 dup(0)
 szDbg db 256 dup(0),0
 szProcessName db 256 dup(0),0
 szNewLine db " ",13,10,0 
 szDlgName    db "MAIN_DIALOG", 0
 szDllName db  "D:/temp/Dll/Debug/Dll.dll",0

.DATA?
 dwRet dd ?
 hm HMODULE ?
 dwHmRet dd ?
 hProcess HANDLE ?
 hProcessHandle HANDLE ?
 hProcessID dd ? 
 hInstance dd ?

.CODE
START:
 assume fs:nothing
 push  offset Error_Handler
 push  fs:[0]
 mov   fs:[0],esp

 invoke GetModuleHandle,NULL
 mov hInstance,eax
 invoke DialogBoxParam,hInstance,ADDR szDlgName,0,offset DlgProc,0
 
 pop  fs:[0]
 pop   eax

 invoke ExitProcess,0

DlgProc proc hWnd,uMsg,wParam,lParam
.if uMsg==WM_INITDIALOG
 invoke LoadIcon,hInstance,DLG_MAIN
 invoke SendMessage,hWnd,WM_SETICON,ICON_SMALL,eax
 invoke SendMessage,hWnd,WM_SETTEXT,0,ADDR szMsg
.elseif uMsg==WM_COMMAND
 mov eax,wParam
 .if ax==3002
  invoke EndDialog,hWnd,TRUE
 .endif
 .if ax == 1002 ;;process
  invoke RetriveProcess,hWnd
 .endif
 .if ax==BTN_ENJECT
  invoke  Enject_Handle,hWnd
 .endif
.elseif uMsg==WM_CLOSE
 invoke EndDialog,hWnd,FALSE
.else
 mov eax,FALSE
 ret
.endif
mov eax,TRUE
ret
DlgProc endp

Print_Handler   proc  processname:DWORD , processid:DWORD,hDlg:DWORD
 LOCAL  hItem:HANDLE
 LOCAL szShortName[256]:BYTE 
 szText szFormat,"%s(%d)" 
 invoke GetDlgItem,hDlg,ITEM_LIST
 mov  [hItem] , eax
 invoke GetShortPathName,ADDR processname,ADDR szShortName,256
 invoke wsprintf,ADDR szShortName,ADDR szFormat,processname,processid
 invoke SendMessage,[hItem],LB_ADDSTRING ,0,ADDR szShortName;LB_ADDSTRING
 invoke SendMessage,[hItem],LB_SETITEMDATA ,eax,[processid];LB_ADDSTRING
 ret
Print_Handler endp

RetriveProcess proc hDlg:DWORD 
 LOCAL  hItem:HANDLE
   invoke GetDlgItem,hDlg,ITEM_LIST
 mov  [hItem] , eax
@RepeateDelItem:
 invoke SendMessage,[hItem],LB_GETCOUNT ,0 , 0;LB_ADDSTRING
 test eax , eax
 jz  @DelAllItem
 invoke SendMessage,[hItem],LB_DELETESTRING ,0,0;LB_ADDSTRING
 jmp @RepeateDelItem
@DelAllItem:
 invoke EnumProcesses,ADDR proID,512*4,ADDR dwRet
 test eax , eax
 jz   @EnumOver
 mov   ecx,[dwRet]
 SAR   ecx , 2
 mov [dwRet], ecx  

 push 0
 push offset proID   
 
@OpenProcess:
 mov  eax , [esp]  
 mov  ecx , [esp+4] 
 cmp  ecx , [dwRet]  
 jz   @EnumOver
 SAL  ecx , 2
 add  eax , ecx
 mov  eax , [eax]
 mov  [hProcessID],eax
 invoke OpenProcess,PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,0,eax
 mov [hProcessHandle], eax
 test eax , eax 
 jnz @EnumProcessModules
 invoke GetLastError
 mov ecx , [esp+4]
 inc ecx
 mov [esp+4] ,  ecx
 jmp @OpenProcess
 
@EnumProcessModules:
 invoke EnumProcessModules,eax,ADDR hm,4,ADDR dwHmRet  
 test eax , eax
 jnz @GetModuleFileNameEx  
 invoke GetLastError
 mov ecx , [esp+4]
 inc ecx
 mov [esp+4] ,  ecx
 jmp @OpenProcess 
 
@GetModuleFileNameEx:
 invoke GetModuleFileNameEx,[hProcessHandle],[hm],ADDR szProcessName,256 
 invoke Print_Handler,ADDR szProcessName,[hProcessID],hDlg
 invoke CloseHandle,[hProcessHandle]
 
   mov ecx , [esp+4]
 inc ecx
 mov [esp+4] ,  ecx  
 jmp @OpenProcess   

@EnumOver: 
 pop eax
 pop eax
 ret
RetriveProcess endp

Enject_Handle  proc hDlg:DWORD
 LOCAL  hItem:HANDLE
 LOCAL  processid:DWORD
 LOCAL  proHandle:HANDLE
 LOCAL  dLen : DWORD
 LOCAL  dWlen :DWORD
 LOCAL  lpAllocMem:DWORD
 LOCAL  lpfLoadLib:DWORD
 LOCAL  dwThreadID:DWORD
 invoke GetDlgItem,[hDlg],ITEM_LIST
 mov  [hItem] , eax 
 invoke SendMessage,[hItem],LB_GETCURSEL,0,0
 invoke SendMessage,[hItem],LB_GETITEMDATA ,eax,0;LB_ADDSTRING
 mov [processid],eax
 invoke OpenProcess,PROCESS_CREATE_THREAD or PROCESS_VM_OPERATION or PROCESS_VM_WRITE,0,[processid]
 mov [proHandle],eax
 test eax , eax
 jz @ErrMsg
 invoke lstrlen,ADDR szDllName
 inc eax
 mov [dLen] , eax
 invoke VirtualAllocEx,[proHandle],NULL,[dLen],MEM_COMMIT,PAGE_READWRITE
 test eax, eax
 jz @ErrMsg
 mov [lpAllocMem],eax
 invoke WriteProcessMemory,[proHandle],[lpAllocMem],ADDR szDllName,[dLen],ADDR dWlen
 test eax , eax
 jz  @ErrMsg
 mov ecx ,  [dLen]
 mov edx ,  [dWlen]
 cmp ecx , edx
 jnz  @ErrMsg
 szText KerName,"Kernel32.DLL"
 invoke GetModuleHandle,ADDR  KerName
 test eax,eax
 jz @ErrMsg
 szText LoadLibName,"LoadLibraryA"
 invoke GetProcAddress,eax,ADDR LoadLibName
 test eax,eax
 jz @ErrMsg
 mov [lpfLoadLib] , eax
 invoke CreateRemoteThread,[proHandle],0,0,[lpfLoadLib],[lpAllocMem],0,ADDR dwThreadID
 mov [dwThreadID],eax
 test eax , eax
 jz  @ErrMsg
 invoke Sleep,3000
 invoke VirtualFreeEx,[proHandle],[lpAllocMem],[dWlen],MEM_DECOMMIT
 invoke CloseHandle,[dwThreadID]
 jmp @ExitEnject
@ErrMsg: 
 szText szError,"Error Open Process"
 invoke MessageBox,0,ADDR szError,0,0
@ExitEnject:
 ret
Enject_Handle endp

Error_Handler proc uses ecx  lpExceptRecord:DWORD, lpFrame:DWORD, lpContext:DWORD, lpDispatch:DWORD
 mov eax , 1
 ret
Error_Handler endp

end START

----------------------------------

侵入远程进程的代码也写完了。不是很复杂!!!

csdn的blog居然不支持上传文件。无语。。

下一步,钩挂Api!!!

我的Spring之旅(一)Spring概述and最小入侵性编程

Spring是一个开源框架,最早由Rod Johnson创建,并在《expert One-on-One:J2EE Design and Development》这本书中进行了介绍Spring是为了解决...
  • su19880309
  • su19880309
  • 2015年01月30日 16:43
  • 1267

Bash Shellshock(Bash远程代码执行)漏洞分析及利用思路

今日爆出一个Bash的RCE漏洞,威力巨大。看了看老外的分析,觉得有必要写一写自己对这个漏洞的理解。 首先,问题起因于一个命令ENV。 原型: env [OPTION]... [NAME=VALU...
  • u011721501
  • u011721501
  • 2014年09月25日 21:01
  • 7696

首届广西网络安全技术大赛初赛通关攻略

首届广西网络安全技术大赛初赛通关攻略前言第一次参加安全类比赛(好吧,其实我这种宅男参加的比赛都很少,很多种比赛都是第一次 - -),同组的组员建议我在比赛完写个通关攻略出来。听起来不错,写个通关攻略,...
  • weizehua
  • weizehua
  • 2015年11月16日 16:49
  • 7774

想用Python学机器学习?Google大神替你写好了所有的编程示范代码

机器学习离不开Python。所以,全球第一的AI教科书作者、Google Research总监Peter Novig就专门为初学者做了一个关于Python编程示范操作的GitHub项目,具体的内容可见...
  • R1uNW1W
  • R1uNW1W
  • 2017年11月30日 00:00
  • 170

资源 | 想用Python学机器学习?Google大神替你写好了所有的编程示范代码

机器学习离不开Python。所以,全球第一的AI教科书作者、Google Research总监Peter Novig就专门为初学者做了一个关于Python编程示范操作的GitHub项目,具体的内容可见...
  • dQCFKyQDXYm3F8rB0
  • dQCFKyQDXYm3F8rB0
  • 2017年11月28日 00:00
  • 198

资源 | 想用Python学机器学习?Google大神替你写好了所有的编程示范代码

机器学习离不开Python。所以,全球第一的AI教科书作者、Google Research总监Peter Novig就专门为初学者做了一个关于Python编程示范操作的GitHub项目,具体的内容可见...
  • hbyh632
  • hbyh632
  • 2017年12月01日 10:44
  • 80

资源 | 想用Python学机器学习?Google大神替你写好了所有的编程示范代码

人生苦短,一起用Python
  • dQCFKyQDXYm3F8rB0
  • dQCFKyQDXYm3F8rB0
  • 2017年11月28日 16:22
  • 790

vc 对excel的操作类,已经写好了,使用方便简单

  • 2016年03月10日 22:00
  • 112KB
  • 下载

获取Android自己写好了的apk以及反编译

  • 2013年09月30日 08:47
  • 5.83MB
  • 下载

终于在理解虚拟地址与物理地址后写好了第一个linux驱动——led驱动

内核版本为 2.6.38 贴上代码: #include #include #include //alloc_chrdev_region ,etc #include //dev_t #incl...
  • u013562393
  • u013562393
  • 2016年07月07日 01:18
  • 285
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:侵入远程的代码也写好了
举报原因:
原因补充:

(最多只允许输入30个字)