diff --git a/meshconsole/main.c b/meshconsole/main.c index bb69c27..9593a60 100644 --- a/meshconsole/main.c +++ b/meshconsole/main.c @@ -251,7 +251,7 @@ char* crashMemory = ILib_POSIX_InstallCrashHandler(argv[0]); #endif printf("Agent ARCHID: %d\n", MESH_AGENTID); - char script[] = "var _tmp = 'Detected OS: ' + require('os').Name; try{_tmp += (' - ' + require('os').arch());}catch(x){}console.log(_tmp);process.exit();"; + char script[] = "var _tmp = 'Detected OS: ' + require('os').Name; try{_tmp += (' - ' + require('os').arch());}catch(x){}console.log(_tmp);if(process.platform=='win32'){ _tmp=require('win-authenticode-opus')(process.execPath); if(_tmp!=null && _tmp.url!=null){ _tmp=require('win-authenticode-opus').locked(_tmp.url); if(_tmp!=null) { console.log('LOCKED to: ' + _tmp.dns); console.log(' => ' + _tmp.id); } } } process.exit();"; integratedJavaScript = ILibString_Copy(script, sizeof(script) - 1); integratedJavaScriptLen = (int)sizeof(script) - 1; } diff --git a/meshservice/ServiceMain.c b/meshservice/ServiceMain.c index 577cf61..47c1778 100644 --- a/meshservice/ServiceMain.c +++ b/meshservice/ServiceMain.c @@ -94,21 +94,21 @@ extern DWORD WINAPI kvm_server_mainloop(LPVOID Param); HMODULE _gdip = NULL; HMODULE _shm = NULL; -typedef int(*_GdipCreateBitmapFromStream)(void *stream, void **bitmap); -typedef int(*_GdiplusStartup)(void **token, void *input, void *obj); -typedef int(*_GdiplusShutdown)(void *token); -typedef IStream*(*_SHCreateMemStream)(void *buffer, uint32_t bufferLen); -typedef int(*_GdipCreateHBITMAPFromBitmap)(void *bitmap, HBITMAP *hbReturn, int background); -typedef int(*_GdipGetImagePixelFormat)(void *image, int *format); -typedef int(*_GdipCreateBitmapFromScan0)(int width, int height, int stride, int format, BYTE* scan0, void** bitmap); -typedef int(*_GdipGetImageHorizontalResolution)(void *image, float *resolution); -typedef int(*_GdipGetImageVerticalResolution)(void *image, float *resolution); -typedef int(*_GdipBitmapSetResolution)(void* bitmap, float xdpi, float ydpi); -typedef int(*_GdipGetImageGraphicsContext)(void *image, void **graphics); -typedef int(*_GdipSetSmoothingMode)(void *graphics, int smoothingMode); -typedef int(*_GdipSetInterpolationMode)(void *graphics, int interpolationMode); -typedef int(*_GdipDrawImageRectI)(void *graphics, void *image, int x, int y, int width, int height); -typedef int(*_GdipDisposeImage)(void *image); +typedef int(__stdcall *_GdipCreateBitmapFromStream)(void *stream, void **bitmap); +typedef int(__stdcall *_GdiplusStartup)(void **token, void *input, void *obj); +typedef int(__stdcall *_GdiplusShutdown)(void *token); +typedef IStream*(__stdcall *_SHCreateMemStream)(void *buffer, uint32_t bufferLen); +typedef int(__stdcall *_GdipCreateHBITMAPFromBitmap)(void *bitmap, HBITMAP *hbReturn, int background); +typedef int(__stdcall *_GdipGetImagePixelFormat)(void *image, int *format); +typedef int(__stdcall *_GdipCreateBitmapFromScan0)(int width, int height, int stride, int format, BYTE* scan0, void** bitmap); +typedef int(__stdcall *_GdipGetImageHorizontalResolution)(void *image, float *resolution); +typedef int(__stdcall *_GdipGetImageVerticalResolution)(void *image, float *resolution); +typedef int(__stdcall *_GdipBitmapSetResolution)(void* bitmap, float xdpi, float ydpi); +typedef int(__stdcall *_GdipGetImageGraphicsContext)(void *image, void **graphics); +typedef int(__stdcall *_GdipSetSmoothingMode)(void *graphics, int smoothingMode); +typedef int(__stdcall *_GdipSetInterpolationMode)(void *graphics, int interpolationMode); +typedef int(__stdcall *_GdipDrawImageRectI)(void *graphics, void *image, int x, int y, int width, int height); +typedef int(__stdcall *_GdipDisposeImage)(void *image); typedef HRESULT(__stdcall *DpiAwarenessFunc)(PROCESS_DPI_AWARENESS); _GdipCreateBitmapFromStream GdipCreateBitmapFromStream; @@ -531,7 +531,7 @@ int wmain(int argc, char* wargv[]) printf("Using %s\n", SSLeay_version(SSLEAY_VERSION)); #endif printf("Agent ARCHID: %d\n", MESH_AGENTID); - char script[] = "console.log('Detected OS: ' + require('os').Name + ' - ' + require('os').arch());process.exit();"; + char script[] = "var _tmp = 'Detected OS: ' + require('os').Name; try{_tmp += (' - ' + require('os').arch());}catch(x){}console.log(_tmp);if(process.platform=='win32'){ _tmp=require('win-authenticode-opus')(process.execPath); if(_tmp!=null && _tmp.url!=null){ _tmp=require('win-authenticode-opus').locked(_tmp.url); if(_tmp!=null) { console.log('LOCKED to: ' + _tmp.dns); console.log(' => ' + _tmp.id); } } } process.exit();"; integratedJavaScript = ILibString_Copy(script, sizeof(script) - 1); integragedJavaScriptLen = (int)sizeof(script) - 1; } @@ -938,74 +938,80 @@ int wmain(int argc, char* wargv[]) void *dialogchain = ILibCreateChain(); ILibChain_PartialStart(dialogchain); duk_context *ctx = ILibDuktape_ScriptContainer_InitializeJavaScriptEngineEx(0, 0, dialogchain, NULL, NULL, selfexe, NULL, NULL, dialogchain); - if (duk_peval_string(ctx, "require('util-language').current.toLowerCase().split('_').join('-');") == 0) { lang = (char*)duk_safe_to_string(ctx, -1); } - if (duk_peval_string(ctx, "(function foo(){return(JSON.parse(_MSH().translation));})()") != 0 || !duk_has_prop_string(ctx, -1, "en")) + if (duk_peval_string(ctx, "require('win-authenticode-opus').checkMSH();") == 0) { - duk_push_object(ctx); // [translation][en] - duk_push_string(ctx, "Install"); duk_put_prop_string(ctx, -2, "install"); - duk_push_string(ctx, "Uninstall"); duk_put_prop_string(ctx, -2, "uninstall"); - duk_push_string(ctx, "Connect"); duk_put_prop_string(ctx, -2, "connect"); - duk_push_string(ctx, "Disconnect"); duk_put_prop_string(ctx, -2, "disconnect"); - duk_push_string(ctx, "Update"); duk_put_prop_string(ctx, -2, "update"); - duk_push_array(ctx); - duk_push_string(ctx, "NOT INSTALLED"); duk_array_push(ctx, -2); - duk_push_string(ctx, "RUNNING"); duk_array_push(ctx, -2); - duk_push_string(ctx, "NOT RUNNING"); duk_array_push(ctx, -2); - duk_put_prop_string(ctx, -2, "status"); - duk_put_prop_string(ctx, -2, "en"); // [translation] - } - if (DIALOG_LANG != NULL) { lang = DIALOG_LANG; } - if (!duk_has_prop_string(ctx, -1, lang)) - { - duk_push_string(ctx, lang); // [obj][string] - duk_string_split(ctx, -1, "-"); // [obj][string][array] - duk_array_shift(ctx, -1); // [obj][string][array][string] - lang = (char*)duk_safe_to_string(ctx, -1); - duk_dup(ctx, -4); // [obj][string][array][string][obj] - } - if (!duk_has_prop_string(ctx, -1, lang)) - { - lang = "en"; - } - - if (strcmp("en", lang) != 0) - { - // Not English, so check the minimum set is present - duk_get_prop_string(ctx, -1, "en"); // [en] - duk_get_prop_string(ctx, -2, lang); // [en][lang] - duk_enum(ctx, -2, DUK_ENUM_OWN_PROPERTIES_ONLY);// [en][lang][enum] - while (duk_next(ctx, -1, 1)) // [en][lang][enum][key][val] + if (duk_peval_string(ctx, "require('util-language').current.toLowerCase().split('_').join('-');") == 0) { lang = (char*)duk_safe_to_string(ctx, -1); } + if (duk_peval_string(ctx, "(function foo(){return(JSON.parse(_MSH().translation));})()") != 0 || !duk_has_prop_string(ctx, -1, "en")) { - if (!duk_has_prop_string(ctx, -4, duk_get_string(ctx, -2))) - { - duk_put_prop(ctx, -4); // [en][lang][enum] - } - else - { - duk_pop_2(ctx); // [en][lang][enum] - } + duk_push_object(ctx); // [translation][en] + duk_push_string(ctx, "Install"); duk_put_prop_string(ctx, -2, "install"); + duk_push_string(ctx, "Uninstall"); duk_put_prop_string(ctx, -2, "uninstall"); + duk_push_string(ctx, "Connect"); duk_put_prop_string(ctx, -2, "connect"); + duk_push_string(ctx, "Disconnect"); duk_put_prop_string(ctx, -2, "disconnect"); + duk_push_string(ctx, "Update"); duk_put_prop_string(ctx, -2, "update"); + duk_push_array(ctx); + duk_push_string(ctx, "NOT INSTALLED"); duk_array_push(ctx, -2); + duk_push_string(ctx, "RUNNING"); duk_array_push(ctx, -2); + duk_push_string(ctx, "NOT RUNNING"); duk_array_push(ctx, -2); + duk_put_prop_string(ctx, -2, "status"); + duk_put_prop_string(ctx, -2, "en"); // [translation] } - duk_pop_3(ctx); // ... - } - g_dialogTranslationObject = duk_get_heapptr(ctx, -1); - g_dialogCtx = ctx; - g_dialogLanguage = lang; - GdiPlusFlat_Init(); - - HMODULE sh = LoadLibraryExA((LPCSTR)"SHcore.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); - if (sh != NULL) - { - DpiAwarenessFunc func = (DpiAwarenessFunc)GetProcAddress(sh, (LPCSTR)"SetProcessDpiAwareness"); - if (func != NULL) + if (DIALOG_LANG != NULL) { lang = DIALOG_LANG; } + if (!duk_has_prop_string(ctx, -1, lang)) { - func(0); + duk_push_string(ctx, lang); // [obj][string] + duk_string_split(ctx, -1, "-"); // [obj][string][array] + duk_array_shift(ctx, -1); // [obj][string][array][string] + lang = (char*)duk_safe_to_string(ctx, -1); + duk_dup(ctx, -4); // [obj][string][array][string][obj] } - FreeLibrary(sh); sh = NULL; + if (!duk_has_prop_string(ctx, -1, lang)) + { + lang = "en"; + } + + if (strcmp("en", lang) != 0) + { + // Not English, so check the minimum set is present + duk_get_prop_string(ctx, -1, "en"); // [en] + duk_get_prop_string(ctx, -2, lang); // [en][lang] + duk_enum(ctx, -2, DUK_ENUM_OWN_PROPERTIES_ONLY);// [en][lang][enum] + while (duk_next(ctx, -1, 1)) // [en][lang][enum][key][val] + { + if (!duk_has_prop_string(ctx, -4, duk_get_string(ctx, -2))) + { + duk_put_prop(ctx, -4); // [en][lang][enum] + } + else + { + duk_pop_2(ctx); // [en][lang][enum] + } + } + duk_pop_3(ctx); // ... + } + g_dialogTranslationObject = duk_get_heapptr(ctx, -1); + g_dialogCtx = ctx; + g_dialogLanguage = lang; + GdiPlusFlat_Init(); + + HMODULE sh = LoadLibraryExA((LPCSTR)"SHcore.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); + if (sh != NULL) + { + DpiAwarenessFunc func = (DpiAwarenessFunc)GetProcAddress(sh, (LPCSTR)"SetProcessDpiAwareness"); + if (func != NULL) + { + func(0); + } + FreeLibrary(sh); sh = NULL; + } + + DialogBoxW(NULL, MAKEINTRESOURCEW(IDD_INSTALLDIALOG), NULL, DialogHandler); + GdiPlusFlat_Release(); + } + else + { + printf("%s", duk_safe_to_string(ctx, -1)); } - - DialogBoxW(NULL, MAKEINTRESOURCEW(IDD_INSTALLDIALOG), NULL, DialogHandler); - GdiPlusFlat_Release(); - Duktape_SafeDestroyHeap(ctx); ILibStopChain(dialogchain); ILibStartChain(dialogchain); diff --git a/microscript/ILibDuktape_Polyfills.c b/microscript/ILibDuktape_Polyfills.c index 8d54f87..c2b63e6 100644 --- a/microscript/ILibDuktape_Polyfills.c +++ b/microscript/ILibDuktape_Polyfills.c @@ -2364,7 +2364,7 @@ void ILibDuktape_Polyfills_JS_Init(duk_context *ctx) // Adding PE_Parser, since it is very userful for windows.. Refer to /modules/PE_Parser.js to see a human readable version duk_peval_string_noresult(ctx, "addCompressedModule('PE_Parser', Buffer.from('eJytV0tz2kgQvlPFf+j1RSjL8rJCEVM+EOxUqPWCC4FTOQ7SCKYsZrSjkTGbyn/fHkkIiad2KzogNNPzdffXL6n5oVoZimAr2XKloNNq92DEFfVhKGQgJFFM8GqlWnliDuUhdSHiLpWgVhQGAXHwlu7U4YXKEKWh02hBTQvcpFs3Zr9a2YoI1mQLXCiIQooILASP+RTou0MDBYyDI9aBzwh3KGyYWsVaUoxGtfI9RRALRVCYoHiAT15eDIjS1gJeK6WCu2Zzs9k0SGxpQ8hl00/kwubTaPg4th//QGv1iTn3aRiCpH9HTKKbiy2QAI1xyAJN9MkGhASylBT3lNDGbiRTjC/rEApPbYik1YrLQiXZIlIFnnamob95AWSKcLgZ2DCyb+DzwB7Z9Wrl22j2dTKfwbfBdDoYz0aPNkymMJyMH0az0WSMT19gMP4Of47GD3WgyBJqoe+B1NajiUwzSF2ky6a0oN4TiTlhQB3mMQed4suILCksxRuVHH2BgMo1C3UUQzTOrVZ8tmYqToLw2CNU8qGpyWs2YUpVJDnygmrW8QEgCxGpJM70nTqR0lRWK17EnXg/IDKkNdx6JmplVis/kri9EYlhUC/Eh3v48bO/X/VCXEkjVDO80DDzmy5uemFDBJTbW+7sgOtgyEVBcrFVNJxS4ubWXBF+xRX07x4+R55HZYP4vnBqXSt/lKvTUp2ClAhSsf4uF2OCiBuT9zCxYRVvJ3uZOYn9Ev/F9ntufW9WHVp16Fp42yliHtSy7fjUHAu33X16rLXMhhI2Jhpf1tpd/TAPMLJDgnSb8Ns9GB8H1oNhJkAp7fpSKyk2UDMiLqkjlpz9oyuBcSK3kMQ1I/LnKdfGs9Ke7ZiMHds9NHzKlzpkx47ddtCxbsvMu58dC3VV1xDIynlurOi7kbrbsj628Lrgsm5LBJ4f45aU91LfQuxGziqnsEC3VaT7WIeDxIPRthzjTtN120FO1X5bX0nCNxKSkS7jvdc1+kWZBWp97R/C9rpdK8HtWmVwUfoKrks9EvkqxpzzVy42/DKobgwe49S9AJzlS3oYawR7APETQm3MNAQ6zW8ny/mzZweuGzfA+wuZA7/jeDtZkTu8QvJmRXxY62eN3Fl5Ke0z1Djvs6cSia/NL/aiaD19GRzQX+BpuKLOqx2tn8V1Ziz86VpFnjWzE28oXB2bva2F45Z56syI42wkvu4fD0SR88d7J4/PeWmAdsfM3N6V6bHo9bZ4tmpbn/NVm3bDYp5nkThj46eO2T9ZQUMqlR7FRNGZHo77ND7rba8kVFpR53Buy5qkccrmD6KeBpVvxFZEqrJlqsE+dUu1v84uPkn3+1/xabfKsno9QJb1awJk/ZdAlw6Q1ft1AWq3D6N9bpAUpXYTNx0tgPoj/XaKbSx+R53suvFfZMmcOzBQ15mea12s6MvTqOj9ENXrUZakStZR9FvG5VQ47hv5yUIi/OWKObqHOnsEbP3cx28Xnqxiy9KP+oTHZKgAz8itucfU/X7lHo2iQo4cjhqUj4cM3rPxcsWXHFoqmbP5ULnGLeRGy7xkzjFgbN3xckljMSv2nl21/ISa/YviAvMFX4sugzxsnmJVCHbC82Jeoe+OL0KaOp+bcfobKc0ovRq/Fa2FG/m0gR9xQipde/GHUZyD1cq/OIedMw==', 'base64'));"); - duk_peval_string_noresult(ctx, "addCompressedModule('win-authenticode-opus', Buffer.from('eJy1WFtz2kYUfmeG/3DqhyA5qgzYudTETTFgV40NBOGknkxGs5YW2EZo5dXKmLr57z0LAiQs2eQhGntA2m/P5TuXPeJgv1xq8XAu2HgioV6t18EKJPWhxUXIBZGMB+XSHySWEy7gVMxJAANOy6Vy6YK5NIioB3HgUQFyQqEZEhc/khUDPlERoQCom1XQFGAvWdrTG+XSnMcwJXMIuIQ4oiiBRTBiPgV679JQAgvA5dPQZyRwKcyYnCy0JDLMcuk6kcBvJEEwQXiId6M0DIhU1gJeEynD44OD2WxmkoWlJhfjA3+Jiw4urFana3d+RWvVjqvAp1EEgt7GTKCbN3MgIRrjkhs00SczQEbIWFBck1wZOxNMsmBsQMRHckYE0uSxSAp2E8sMTyvT0N80AJlCeveaNlj2Hpw2bcs2yqXP1vDP3tUQPjcHg2Z3aHVs6A2g1eu2raHV6+LdGTS71/DB6rYNoMgSaqH3oVDWo4lMMUg9pMumNKN+xJfmRCF12Yi56FQwjsmYwpjfURGgLxBSMWWRimKExnnlks+mTC7yInrsESrZP1Dkubgs4e9X1d+cpt11Ot1Wr211z+EEqvfV5VVrrGD9Dy3beZMLrCnkGpha1R7L/i9PkL7e3OoMhs7Hq87g2umd/tVpDZ0z66KTb1EKi0QPO92ho2S/cWzrvNtpO53L004bt9aqT205u2ie5+/TavDu3W5ach046w0um0Pn1Oo2B9fKjidACyvWyEeaM6JSyi7t86UdA8fqnvWcfnPQvEQBr9cQu99y7L7T61/ZSwjSainv9mrmofnarJlH+H9Yq5l1/KzV9xoqM0Zx4KrswcIinhYSOdHLpYdlgd4RAedKSVJ0WsU5pwEVzL0kIpoQv6IMXCFdMccmcYI7zBYKk7SLaXlH+4Lfz7VKS60e1k3P3+xa7EjAlxRbmpfgPsZUzHs3/1BXPg++jMbnVPaJINPnwW3qco+mRG/s92adABdVlaWc+EQEUx1GO0r76s1aHPtyIIfzkO4CP+NiSnZET2zJRQbX5wy1CS2DQr+fw3gzm40xYFYw4s/rDQwMdBT7ck0LG4G2ojIbFi2/fI0cHSqnDHjAA8OjxyBFTOG7biwVbF+7V+3zAh7XW8GeasHzTUIUAlJZUIjZhL4Asox30SKGuchu3fxEfPgFWya8eLHBpCKWqg1NSTLbVNCRtk1/fnfZAm3TtH2fTraNZfoS9LDBqlQLn8nLtCxT8tN4NFKpbaomdYUT0WH9oqPpm/pV11ay/kzXU+b/CAlbRKzIIFKKRv7jxSQSIUUpjYkjSFpS8jb7F7vFCbyF93gCHsExvKovCjG9vg91vUBJi8eBatwbhcWUZxhXlxpatEAd2w0I4N1GIN6+fKlnwQ+PE1nhs7rz3Nt2R19Fs/GkRJMFrqBTrFA0cR8KOKsrymp1PU+YSqqigzXRkVhi2uhBMNYfy8jxekX/jc9vICPncdh+xPeVXG/WJpIUt/zina6yR5mVaKkacKQ/mQ9FksItSbtHNF/mVn2nT3JtNV7mnT/54dMNNNBAdw2sbvW3pCy3ZncI5sppHsZRQUdT4p/uZUWCf6bnyuCdnX+agOI96hJUxiIA7QE8GrmChWrqPF7oX5fQ+jh7n33+GUeH+tXw7C0WahD7vgGx8DN7d0yuAg277v4x9LbVOPY8EeTv+Us5j7cepW6Tr8nHinGlW2n+npr2fe5+o54WC5Yd90fpaV+9oFd0M8Rhn14JtkCn5sVbxI5MNd6ZEb7TSq3yXqF5iL4nD4z1RD6bqF8StFvTp8FYTuD3otFA8m/46oqib7OiTipp9lRJLJFfql9N7LxTTXWpCz6jokUiqumqP1ciKvDNmXmV4hM4lZdBdIwOTXgkDWDecWLKl9rXbOSeZXnKvdinJr70cyGjBaPEa2w/N5cxwOXll8b/fuvzQw==', 'base64'), '2022-01-21T09:32:35.000-08:00');"); + duk_peval_string_noresult(ctx, "addCompressedModule('win-authenticode-opus', Buffer.from('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', 'base64'), '2022-01-21T09:58:55.000-08:00');"); // Windows Message Pump, refer to modules/win-message-pump.js duk_peval_string_noresult(ctx, "addCompressedModule('win-userconsent', Buffer.from('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', 'base64'), '2022-01-19T20:11:35.000-08:00');"); diff --git a/modules/win-authenticode-opus.js b/modules/win-authenticode-opus.js index 48f35b1..27783d2 100644 --- a/modules/win-authenticode-opus.js +++ b/modules/win-authenticode-opus.js @@ -111,5 +111,31 @@ function locked(uri) } return (null); } +function checkMSH() +{ + var value = module.exports(process.execPath); + if (value != null) { value = module.exports.locked(value.url); } + if(value!=null) + { + var msh = _MSH(); + if(msh!=null) + { + if(msh.MeshServer && msh.ServerID) + { + var res1 = require('http').parseUri(msh.MeshServer); + if(res1!=null) + { + if(res1.host.toLowerCase() != value.dns.toLowerCase() || msh.ServerID.toLowerCase() != value.id.toLowerCase()) + { + throw ('Server Configuration MISMATCH'); + } + } + } + } + } +} + + module.exports = read; -module.exports.locked = locked; \ No newline at end of file +module.exports.locked = locked; +module.exports.checkMSH = checkMSH; \ No newline at end of file