|
821
|
Programación / Programación C/C++ / Re: Injectar codigo en PE (Portable Ejecutable)
|
en: 8 Octubre 2013, 20:34 pm
|
Modificando el binario? Y bueno, ahi es distinto.. jaja calculo que lo tendrás que abrir como escritura con fopen, de forma binaria.. y ahí hacer algunas modificaciones.. pero según tengo entendido, no es cuestion de cambiar el tamaño de un archivo y esperar que siga funcionando.. deberías cambiar algunos valores en la IMAGE OPTIONAL HEADER, y quizás, alguna otra cosa,, pero, por favor, que alguien me corrija si estoy diciendo cualquier cosa.. yo creo que algo asi es la cosa.. No se cuanto conoces del formato PE, pero creo que hay que tener un buen conocimiento del mismo, al menos para entender lo que se esta haciendo Saludos!!
|
|
|
822
|
Programación / Programación C/C++ / Re: Injectar codigo en PE (Portable Ejecutable)
|
en: 7 Octubre 2013, 19:25 pm
|
Hola amigo, yo hace un par de semanas pase por lo mismo.. y el resultado: BOOL InjectDLL(DWORD ProcessID, char *Dll_Name) { HANDLE Proc; HANDLE RemoteThread; LPVOID RemoteString, LoadLibAddres; int Retorno;
Proc = OpenProcess(CREATE_THREAD_ACCESS, FALSE, ProcessID); cout << " " << "OpenProcess: " << Proc << endl;
LoadLibAddres = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA"); cout << " " << "Base Address of LoadLibraryA: " << LoadLibAddres << endl;
RemoteString = (LPVOID)VirtualAllocEx(Proc, NULL, strlen(Dll_Name)+1, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE); cout << " " << "VirtualAllocEx: " << RemoteString << endl; Retorno = WriteProcessMemory(Proc, (LPVOID)RemoteString, Dll_Name, strlen(Dll_Name)+1, NULL); cout << " " << "WriteProcessMemory: " << Retorno << endl;
RemoteThread = CreateRemoteThread(Proc, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddres, (LPVOID)RemoteString, NULL, NULL); cout << " " << "CreateRemoteThread: " << RemoteThread << endl;
CloseHandle(Proc); cout << " " << "Closing Handle" << endl;
return 0; } Con esta función, podes cargar una dll dentro del espacio de memoria de un PE, le tendrías que pasar a esta función como primer parámetro el ID del proceso a inyectar (se puede obtener con GetProcessID(NombreDelProceso) ) y como segundo la ruta completa de la dll (a menos que esta misma se encuentre en la misma carpeta que el inyector) en fin.. espero te sirva de algo,, al menos poder deducir que apis se utilizan..
|
|
|
824
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Sobre motores de AntiVirus Online
|
en: 5 Octubre 2013, 08:01 am
|
En VirusTotal de hecho si no al menos una detección no se envía Así que si te sientes optimista puedes arriesgar Te recomiendo http://bytescanner.com/. Conozco a uno de los creados y confío en su palabra. No tanto en la de NoVirusThanks... Jajaja es increible el sistema de ver los "ultimos 50 analizados" Tiro algunos nombres: ghostinstall.exe Stub.exe faster.exe Kill Button.exe backdoor.exe y la lista se actualiza como loca! Es como pan caliente!
|
|
|
827
|
Programación / Programación C/C++ / Re: Dudas con Drivers, Apis e Inyecciones
|
en: 3 Octubre 2013, 19:23 pm
|
Hola! Gracias por responder eternal! Algunas cositas ya estuve leyendo, e inclusive probé el ejemplo que pone Hendrix en su tuto, me instale una MV y ahi lo fui probando.. pero ahora quería experimentar yo mismo y aprender mas.. Gracias por los libros, voy a ver si los consigo.. Sabes si la msdn tiene un listado con los nombres de las funciones exportadas o similar? Algo como por donde empezar mientras busco y leo libros Gracias!!
|
|
|
829
|
Programación / Programación C/C++ / Dudas con Drivers, Apis e Inyecciones
|
en: 3 Octubre 2013, 06:30 am
|
Buenas! Podría algún sabio orientarme sobre como es que un driver utiliza las implementaciones de las apis? (o algo así lo he leído) la verdad no tengo mucha idea como es eso, se que un driver no llama por ejemplo a VirtualAllocEx, sino que llama a otra "cosa" que no sabría definir siquiera.. y por otro lado, podría un driver inyectar una dll, o un código en un proceso??
Gracias!
|
|
|
|
|
|
|