Estaba siguiendo este tutorial http://foro.elhacker.net/hacking_avanzado/paper_inyecciones_dll-t159111.0.html , pero no me funciona.
Compilador: Microsoft Visual Studio 2013 RC
Plataforma: Windows 8
Tengo el código que inyecta en el proceso la DLL:
CreateRemoteThread
Código
Y el programa compila perfectamente.
#include "stdafx.h" #include <stdio.h> #include <windows.h> int main() { DWORD pid; HANDLE proc; char buf[MAX_PATH] = ""; char laDll[] = "C:\\laDll.dll"; LPVOID RemoteString; LPVOID nLoadLibrary; char Entrada[255]; proc = OpenProcess(PROCESS_ALL_ACCESS, false, pid); //Aquí usamos directamente GetModuleHandle en lugar de loadlibrary ya que kernel32 la cargan todos los ejecutables //Con esto tenemos un puntero a LoadLibraryA nLoadLibrary = (LPVOID)GetProcAddress(GetModuleHandle(L"kernel32.dll"), "LoadLibraryA"); //Reservamos memoria en el proceso abierto RemoteString = (LPVOID)VirtualAllocEx(proc, NULL, strlen(laDll), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); //Escribimos la ruta de la dll en la memoria reservada del proceso remoto //Lanzamos el hilo remoto en loadlibrary pasandole la dirección de la cadena CreateRemoteThread(proc, NULL, NULL, (LPTHREAD_START_ROUTINE)nLoadLibrary, (LPVOID)RemoteString, NULL, NULL); CloseHandle(proc); return true; }
Esta es la DLL (generará laDll.dll):
dllmain.cpp
Código
También compila sin problema alguno.
// dllmain.cpp : Define el punto de entrada de la aplicación DLL. #include "stdafx.h" #include <stdio.h> #include <Windows.h> BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { if (ul_reason_for_call == DLL_PROCESS_ATTACH) { FILE *arch; fopen_s(&arch, "C:\\mehecargado.txt", "w"); } else { FILE *arch; fopen_s(&arch, "C:\\NOmehecargado.txt", "w"); } return TRUE; }
He creado laDll.cpp y laDll.h, pero no definido funciones a exportar, por lo que los archivos están vacíos, ya que ni siquiera tengo funciones.
Ejecuto el programa, pongo el PID y no sucede nada... ¿Qué puede pasar?
Gracias por la ayuda que me podáis dar, en la carrera no me explican nada de esto, y me interesan mucho los temas de seguridad.