Vou pegar uma linha de código em C++ detectável:
WSADATA WSA_Conn;O Antivirus detecta a chamada da API com os parâmetros, já que um deles é dinâmico ele precisa rodar o aplicativo.
WSAStartup (0x202, WSA_Conn);
Se formos transformar essa chamada em Asm, ficaria assim:
push WSA_Conn (offset)Para torna-lo indetectável, devemos passar qualquer falor para o registrador EAX e chama-lo, exemplo:
push 0x202
call WSAStartup (offset)
mov eax, WSA_Conn (offset)Agora é fácil, vou fazer um código indetectável no DevCpp:
push eax
push 0x202
mov eax, WSAStartup (offset)
call eax
Variáveis globais:
int RetornoWSAFunc;Linha de código:
int WSA_Conn_ASM;
WSADATA WSA_Conn;
HMODULE hMod = LoadLibrary("Ws2_32.dll");;D
if (hMod == NULL) { throw "ERRO"; }
RetornoWSAFunc = (int) GetProcAddress(hMod, "WSAStartup");
if (RetornoWSAFunc == 0) { throw "ERRO"; }
WSA_Conn_ASM = (int)&WSA_Conn;
__asm ("PUSHL _WSA_Conn_ASM");
__asm ("PUSHL $0x202");
__asm ("CALL *_RetornoWSAFunc");
__asm ("MOV _RetornoWSAFunc, %EAX");
if (RetornoWSAFunc == -1) { throw "ERRO"; }
GonG4
Nenhum comentário:
Postar um comentário