Вобщем наваял маленький сервис для незнаю как сказать какой обработки сишного кода. После прохождения через скрипт апишные функции заменяются на динамически подгружаемые. Тоесть например есть код PHP: Sleep(1); HANDLE hFile = CreateFileA(path.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); DWORD FS = GetFileSize(hFile,0) ; SOCKET Sock = socket(AF_INET,SOCK_STREAM,IPPROTO_IP); После обработки получим файл для подгрузки функций PHP: typedef HANDLE (__stdcall *CFAWU)(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE); typedef DWORD (__stdcall *GFSQJ)(HANDLE,LPDWORD); typedef void (__stdcall *STOBD)(DWORD); typedef WSAAPI (__stdcall *FQLTQ)(int,int,int); CFAWU pref_CreateFileA GFSQJ pref_GetFileSize STOBD pref_Sleep FQLTQ pref_socket HMODULE kernel32_dll = GetModuleHandle("kernel32.dll"); if (kernel32_dll) { pref_CreateFileA = (CFAWU)GetProcAddress(kernel32_dll,"CreateFileA"); pref_GetFileSize = (GFSQJ)GetProcAddress(kernel32_dll,"GetFileSize"); pref_Sleep = (STOBD)GetProcAddress(kernel32_dll,"Sleep"); // if (!pref_CreateFileA || !pref_GetFileSize || !pref_Sleep) ExitProc(); } else { // nokernel32_dllerr = GetLastError(); // ExitProc(); } HMODULE ws2_32_dll = GetModuleHandle("ws2_32.dll"); if (ws2_32_dll) { pref_socket = (FQLTQ)GetProcAddress(ws2_32_dll,"socket"); // if (!pref_socket) ExitProc(); } else { // nows2_32_dllerr = GetLastError(); // ExitProc(); } файл с заменёнными функциями PHP: pref_Sleep(1); HANDLE hFile = pref_CreateFileA(path.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); DWORD FS = pref_GetFileSize(hFile,0) ; SOCKET Sock = pref_socket(AF_INET,SOCK_STREAM,IPPROTO_IP); такой код после компиляции уже не палится авирями, не так легко отлаживается и ещё много чего пока поддерживает функции из PHP: ntdll.dll kernel32.dll advapi32.dll msvcrt.dll user32.dll secur32.dll shell32.dll wininet.dll ws2_32.dll crypt32.dll gdi32.dll потом найду нормальную базу - добавлю ещё собсна как назвать это? обфускатор с++? ссылка http://cp1251.darkoff.ru/procaddr/
Прочитай определение обфускатора, и скажи, что делает твой скрипт? Ничего, просто вызовы заменяет. Читаемость кода от этого не страдает. Можно назвать это "никому не нужной байдой", например. И к C++ это мало отношения имеет, в чистом C++ апи-вызовы редко встречаются.
Набор заменяемых функций (в контексте приведенных библиотек) неполный. Вложенные вызовы не обрабатываются по-моему.
Мало того, динамический вызов и отсутствие импортаа вызовет еще больше подозрений у антивируса... Если это окончательный функционал программы - никак ее не называй. Она бесполезна.
Импорт в любом случае будет из системных библиотек и CRT. Внутренние функции crt, которые встраиваются в исполняемый файл компилятором, в свою очередь, также используют системные библиотеки. Так что смысл скрипта тем более не ясен.
Крт можно выпилить. Ну 2 функции в Имопорте ввиде LoadLibrary и GetProcAdress- это сразу срабатывание антивируса или по крайней мере +1 для хипса. От них тоже можно избавиться, получая их адреса прямым сканированием своей памяти или через PEB но все равно это "палево"...
Забил временно на getprocaddr() , добавил одну функцию: Вставить "nop" _asm {...} инструкции с вероятностью % после этого в код добавляются кусочки асм кода которые не будут изменять алгоритм но будут изменять сигнатуры и усложнять отладку)