[C++][Minimalista] API class, llamadas dinámicas.

Iniciado por Karcrack, Junio 16, 2013, 06:32:36 PM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.

Código: cpp
using namespace std;
#include <Windows.h>
#include <string>

class API{
public:
    void* (*call)(...);
    API(string dll, string fnc){
        this->call = (void *(*)(...))GetProcAddress(LoadLibraryA(dll.c_str()), fnc.c_str());
    };
};


Ejemplo de uso:
Código: cpp
#pragma comment(linker, "/ENTRY:main")

#include "invoke.h"

void main(){
    API("URLMON", "URLDownloadToFileA").call(0, "http://goo.gl/veps2", "C:/test.png", 0, 0);
    __asm sub esp, 5*4
    API("KERNEL32","ExitProcess").call(0);
    //__asm sub esp, 4
}

Detección: 2/44
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Mucho más compacto a lA hora de llamar al puntero que mis otras versiones, aunque hay que reparar de forma manual el stack hasta que diseñe un template para hacerlo.
I code for $$$.

(PGP ID 0xCC050E77)
ASM, C, C++, VB6... skilled [malware] developer

No entiendo esto:
Código: text
void* (*call)(...);
    API(string dll, string fnc){
        this->call = (void *(*)(...))GetProcAddress(LoadLibraryA(dll.c_str()), fnc.c_str());
    };


el void* (*call) (...);