Bueno, como algunos ya saben Drinky94 y yo estamos programando un RAT en C/C++... pensé en programar la Inyección en FASM, y probando, y probando... salió esto...
Simplemente lo dejo por si a alguien le es util...
Imagen

Código: Seleccionar todo

include 'E:\ASM\FASMP\INCLUDE\win32ax.inc'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;,,,Listado de Procesos,,,;;;;;;;;;
;;;;;;;;;,,,,,,p0is0n-123,,,,,,,,,;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
section '.code' code readable executable
start:
   invoke GlobalAlloc,0,2024
   mov [ListaProcesos],eax

   invoke CreateToolhelp32Snapshot,0x00000002,0
   mov [cHandle],eax ; Guardamos el Handle
   mov eax,sizeof.PROCESSENTRY32
   mov [cProcInfo.dwSize],eax  ; Metemos en la estructura su Size, importante para mas de Win Vista

   invoke Process32First,[cHandle],addr cProcInfo ; Sacamos el Primer Process
   cmp eax,0
   JE cBye  ; Si es 0 algo falla, cerramos el Handle y nos vamos

   buclea: ;Si no es 0 entramos en un bucle para mostrarlos todos.
   invoke lstrcat,ListaProcesos, cProcInfo.szExeFile
   invoke lstrcat,ListaProcesos,"*_*"
   invoke Process32Next,[cHandle],addr cProcInfo ;Obtenemos el siguiente
   cmp eax,0 ; Comprobamos que no es el último
   JE cBye  ; Si es el último cerramos el Handle y nos vamos a comer.
   JMP buclea ; Si no es el ultimo hay que continuar, volvemos al principio.

   cBye:
   invoke CloseHandle,[cHandle]     ; Cerramos el Handle
   invoke MessageBox,0,ListaProcesos,0,0
   invoke ExitProcess,0 	    ; Cerramos el proceso.
.end start
section '.data' data readable writeable
	struct PROCESSENTRY32
	    dwSize		        dd ?
	    cntUsage		    dd ?
	    th32ProcessID	    dd ?
	    th32DefaultHeapID   dd ?
	    th32ModuleID	    dd ?
	    cntThreads		    dd ?
	    th32ParentProcessID dd ?
	    pcPriClassBase	    dd ?
	    dwFlags		        dd ?
	    szExeFile		    rb MAX_PATH
	ends
       cProcInfo	      PROCESSENTRY32    ?
       cHandle		      dd		        ?
       ListaProcesos	  dd                ?
Saludos...
Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
Blog: http://www.seginformatica.net
Twitter: https://twitter.com/#!/p0is0nseginf
Muchas gracias , aunque yo no sepa programas en este lenguaje jeje
PD. se mira que es complicadisimo este lenguaje
Imagen

♪♪ 2pac & Notorius B.I.G ♪♪
¿Por qué estoy luchando para vivir cuando estoy solo viven para luchar,
¿Por qué estoy tratando de ver cuando no hay nada a la vista,
¿Por qué estoy tratando de dar cuando nadie me da una oportunidad,
¿Por qué estoy muriendo para vivir cuando yo estoy viviendo para morir.♪♪
Jeje esta bueno :P solamente que me parece que no es necesario poner addr, simplemente poniendo la variable te toma la direccion en memoria, lo probé y funciona bien ahí.
//mHmm..
No llegué a probarlo linkgl... lo hice basandome en mis conocimientos de C/C++ el cual, para las estructuras necesita la dirección de ellas...
Gracias por comentar...

Saludines...
Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
Blog: http://www.seginformatica.net
Twitter: https://twitter.com/#!/p0is0nseginf
Responder

Volver a “Otros lenguajes”