send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[FASM] Simple Memory Code Injection

  • 0 Respuestas
  • 2305 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5267
  • Actividad:
    48.33%
  • Reputación 26
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Junio 05, 2012, 04:43:46 pm »
Código: ASM
  1. ;\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
  2. ;\\\///\\\///\\\///\\\///\\\Inyección de Código en Memoria //\\\///\\\///\\\///\\\
  3. ;\\\///\\\///\\\///\\\///\\\             [Zero]       //\\\///\\\///\\\///\\\
  4. ;\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
  5.  
  6. Format PE GUI 4.0
  7. entry start
  8. include 'win32a.inc'
  9.  
  10. Proceso                 db 'explorer.exe',0
  11. nUser32                 db 'USER32.DLL',0
  12. nMessageBox             db 'MessageBoxA',0
  13. hProceso                dd ?
  14. DirFuncion              dd ?
  15. TamañoDatos             dd ?
  16. pInfo                   PROCESS_INFORMATION
  17. sInfo                   STARTUPINFO
  18.  
  19. start:
  20. ;Cargamos la USER32.DLL
  21. invoke LoadLibrary,nUser32
  22.  
  23. ;Obtenemos la dirección de MessageBoxA
  24. invoke GetProcAddress,eax,nMessageBox
  25. mov [mMessageBoxA],eax
  26.  
  27. ;Obtenemos la dirección de ExitProcess
  28. push    [ExitProcess]
  29. pop     [mExitProcess]
  30.  
  31. ;Creamos el Proceso
  32. invoke CreateProcessA,0,Proceso,0,0,0,CREATE_SUSPENDED,0,0,sInfo,pInfo
  33.  
  34. ;Guardamos el Handle
  35. push [pInfo.hProcess]
  36. pop [hProceso]
  37.  
  38. ;Obtenemos el tamaño e la función a inyectar
  39. mov ebx,FIN
  40. sub ebx,FuncionInyectada
  41. mov [TamañoDatos],ebx
  42.  
  43. ;Reservamos espacio en memoria para la función a inyectar
  44. invoke VirtualAllocEx,[hProceso],0,[TamañoDatos],MEM_COMMIT+MEM_RESERVE,PAGE_EXECUTE_READWRITE
  45. mov [DirFuncion],eax
  46.  
  47. ;Escribimos en memoria los datos
  48. invoke WriteProcessMemory,[hProceso],[DirFuncion],FuncionInyectada,[TamañoDatos],0
  49.  
  50. ;Creamos el hilo en el proceso
  51. invoke CreateRemoteThread,[hProceso],0,0,[DirFuncion],0,0,0
  52.  
  53. ;Salimos
  54. invoke ExitProcess,0
  55.  
  56. ;\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///
  57. ;\\\///\\\///\\\///\\\///\  Función Que se Inyecta  ///\\\///\\\///\\\///
  58. ;\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///
  59. proc FuncionInyectada
  60. ;Obtenemos la dirección de memoria donde nos estamos ejecutando
  61. pushad
  62. call delta
  63. delta:
  64. pop ebp
  65. sub ebp,delta
  66. push ebp ebp
  67. pop ebx ecx
  68.  
  69. ;Obtenemos la dirección donde se cargó el Mensaje y el TÃ*tulo
  70. add ebx,Mensaje
  71. add ecx,Titulo
  72.  
  73. ;Llamamos a MessageboxA
  74. push 0
  75. push ebx
  76. push ecx
  77. push 0
  78. call [ebp+mMessageBoxA]
  79.  
  80. ;Llamamos a ExitProcess
  81. push 0
  82. call [ebp+mExitProcess]
  83.  
  84. Titulo           db 'Code Inyectado!',0
  85. Mensaje          db 'xD',0
  86.  
  87. ;Las direcciones en memoria de las apis
  88. mMessageBoxA     dd ?
  89. mExitProcess     dd ?
  90. endp
  91. FIN:
  92. ;\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///
  93. ;\\\///\\\///\\\///\\\/// Fin Función Que se Inyecta //\\\///\\\///\\\///
  94. ;\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///
  95.  
  96. data import
  97.     library KERNEL32,'KERNEL32.DLL'
  98.     import  KERNEL32,\
  99.             CreateProcessA,'CreateProcessA',\
  100.             CreateRemoteThread,'CreateRemoteThread',\
  101.             WriteProcessMemory,'WriteProcessMemory',\
  102.             VirtualAllocEx,'VirtualAllocEx',\
  103.             ExitProcess,'ExitProcess',\
  104.             LoadLibrary,'LoadLibraryA',\
  105.             GetProcAddress,'GetProcAddress'
  106. end data

Autor: Zero
« Última modificación: Junio 03, 2013, 11:57:06 am por Expermicid »


 

¿Te gustó el post? COMPARTILO!



Easy Code - Assambler Visual

Iniciado por DeuSer

Respuestas: 1
Vistas: 1976
Último mensaje Marzo 18, 2010, 01:50:33 pm
por Pa531no5
[FASM] Download & Execute

Iniciado por ANTRAX

Respuestas: 0
Vistas: 3914
Último mensaje Abril 12, 2012, 10:47:20 am
por ANTRAX
[FASM] Ascii85 decode

Iniciado por Karcrack

Respuestas: 0
Vistas: 1734
Último mensaje Junio 16, 2013, 06:13:38 pm
por Karcrack
Subclasificando una ventana FASM

Iniciado por linkgl

Respuestas: 0
Vistas: 2199
Último mensaje Diciembre 24, 2012, 08:08:49 pm
por linkgl
RunPE FASM

Iniciado por Juan

Respuestas: 4
Vistas: 3735
Último mensaje Julio 16, 2013, 07:26:11 pm
por Karcrack