mirror of
https://github.com/CPunch/Laika.git
synced 2024-11-21 20:40:05 +00:00
Bot persistence boilerplate
This commit is contained in:
parent
3515d10b1c
commit
b6bd8b2518
27
bot/include/persist.h
Normal file
27
bot/include/persist.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#ifndef LAIKA_PERSIST_H
|
||||||
|
#define LAIKA_PERSIST_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
/* check if laika is already running */
|
||||||
|
bool laikaB_checkRunning(void);
|
||||||
|
|
||||||
|
/* check if laika is already installed on current machine */
|
||||||
|
bool laikaB_checkPersist(void);
|
||||||
|
|
||||||
|
/* check if laika is running as super-user */
|
||||||
|
bool laikaB_checkRoot(void);
|
||||||
|
|
||||||
|
/* mark that laika is currently running */
|
||||||
|
void laikaB_markRunning(void);
|
||||||
|
|
||||||
|
/* unmark that laika is currently running */
|
||||||
|
void laikaB_unmarkRunning(void);
|
||||||
|
|
||||||
|
/* try to gain persistance on machine */
|
||||||
|
void laikaB_tryPersist(void);
|
||||||
|
|
||||||
|
/* try to gain root */
|
||||||
|
void laikaB_tryRoot(void);
|
||||||
|
|
||||||
|
#endif
|
55
bot/lin/linpersist.c
Normal file
55
bot/lin/linpersist.c
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
/* platform specific code for achieving persistence on linux */
|
||||||
|
|
||||||
|
/* this is only used to check if another instance of laika is currently running */
|
||||||
|
#define LAIKA_RESERVED_PORT 32876
|
||||||
|
|
||||||
|
#include "persist.h"
|
||||||
|
#include "lsocket.h"
|
||||||
|
#include "lerror.h"
|
||||||
|
|
||||||
|
static struct sLaika_socket laikaB_markerPort;
|
||||||
|
|
||||||
|
/* check if laika is already running */
|
||||||
|
bool laikaB_checkRunning() {
|
||||||
|
return true; /* stubbed for now */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check if laika is already installed on current machine */
|
||||||
|
bool laikaB_checkPersist() {
|
||||||
|
return true; /* stubbed for now */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check if laika is running as super-user */
|
||||||
|
bool laikaB_checkRoot() {
|
||||||
|
return true; /* stubbed for now */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* mark that laika is currently running */
|
||||||
|
void laikaB_markRunning() {
|
||||||
|
#ifndef DEBUG
|
||||||
|
LAIKA_TRY
|
||||||
|
laikaS_initSocket(&laikaB_markerPort, NULL, NULL, NULL, NULL);
|
||||||
|
laikaS_bind(&laikaB_markerPort, LAIKA_RESERVED_PORT);
|
||||||
|
LAIKA_CATCH
|
||||||
|
LAIKA_DEBUG("Failed to bind marker port, laika is already running!\n");
|
||||||
|
exit(0);
|
||||||
|
LAIKA_TRYEND
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* unmark that laika is currently running */
|
||||||
|
void laikaB_unmarkRunning() {
|
||||||
|
#ifndef DEBUG
|
||||||
|
laikaS_kill(&laikaB_markerPort);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* try to gain persistance on machine */
|
||||||
|
void laikaB_tryPersist() {
|
||||||
|
/* stubbed */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* try to gain root */
|
||||||
|
void laikaB_tryRoot() {
|
||||||
|
/* stubbed */
|
||||||
|
}
|
38
bot/win/winpersist.c
Normal file
38
bot/win/winpersist.c
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/* platform specific code for achieving persistence on windows */
|
||||||
|
|
||||||
|
#include "persist.h"
|
||||||
|
|
||||||
|
/* check if laika is already running */
|
||||||
|
bool laikaB_checkRunning() {
|
||||||
|
return true; /* stubbed for now */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check if laika is already installed on current machine */
|
||||||
|
bool laikaB_checkPersist() {
|
||||||
|
return true; /* stubbed for now */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check if laika is running as super-user */
|
||||||
|
bool laikaB_checkRoot() {
|
||||||
|
return true; /* stubbed for now */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* mark that laika is currently running */
|
||||||
|
void laikaB_markRunning() {
|
||||||
|
/* stubbed */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* unmark that laika is currently running */
|
||||||
|
void laikaB_unmarkRunning() {
|
||||||
|
/* stubbed */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* try to gain persistance on machine */
|
||||||
|
void laikaB_tryPersist() {
|
||||||
|
/* stubbed */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* try to gain root */
|
||||||
|
void laikaB_tryRoot() {
|
||||||
|
/* stubbed */
|
||||||
|
}
|
@ -16,24 +16,18 @@
|
|||||||
dumping.
|
dumping.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum {
|
|
||||||
BOX_IP,
|
|
||||||
BOX_PUBKEY,
|
|
||||||
BOX_MAX
|
|
||||||
};
|
|
||||||
|
|
||||||
struct sLaikaB_box {
|
struct sLaikaB_box {
|
||||||
uint8_t *data;
|
uint8_t *data;
|
||||||
uint8_t *unlockedData;
|
uint8_t *unlockedData;
|
||||||
struct sLaikaV_vm vm;
|
struct sLaikaV_vm vm;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline void laikaB_unlock() {
|
inline void laikaB_unlock(struct sLaikaB_box *box) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* safely free's allocated buffer using libsodium's api for clearing sensitive data from memory */
|
/* safely free's allocated buffer using libsodium's api for clearing sensitive data from memory */
|
||||||
inline void laikaB_lock() {
|
inline void laikaB_lock(struct sLaikaB_box *box) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user