This project implements an encrypted file vault, by function overloading for system calls.
Make sure your node.js version is v16.13.1, and you can update your node version through this tutorial.
$ sudo apt install nodejs npm
$ node -v
v16.13.1
Next, you need to initialize the db.
$ sudo apt install mysql-server
$ sudo apt install libmysqlclient-dev
# check the status of mysql
$ sudo apt install net-tools
$ sudo netstat -tap | grep mysql
# set the password of the user “root”
$ sudo mysql
> update mysql.user set authentication_string=PASSWORD("123456"), plugin="mysql_native_password" where user="root";
> flush privileges;
> exit;
# restart the mysql server
$ sudo /etc/init.d/mysql restart
# initialize the db
$ mysql -u root -p
> create database test;
> use test;
> create table user (name varchar(100) not null, password varchar(100) not null);
> exit;
Finally, you need to initialize the vault directory.
$ sudo mkdir /vault
$ sudo chmod 777 /vault
$ cd kernel
$ make
$ sudo insmod VaultModule.ko
We use electron to build the user-side program.
$ cd gui
$ npm install
If you have encountered some installation problems caused by network connections, try following steps to complete the installation progress :)
$ cd node_modules/electron
$ node install.js
Next, compile the netlink into a dynamic link library.
$ cd netlink
$ gcc -c -fPIC -o netlink.o netlink.c
$ gcc -shared -o libnetlink.so netlink.o
The last step, run the project!
$ cd ..
$ npm start