summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal <amlal@el-mahrouss-logic.com>2024-09-27 11:42:55 +0200
committerAmlal <amlal@el-mahrouss-logic.com>2024-09-27 11:42:55 +0200
commit28dcc76e2e93817a5e4a4ceef0479fd8ac7399c9 (patch)
tree4ca252d938095b0ef054836c900d25b758379a61
parent8db6fc60063757628f92bd1c4d4855775f4ff9e2 (diff)
parentf34d39946213f68c4d49c47eaaedb99b0f5f47ad (diff)
Merge branch 'unstable' of gitlab.com:mahrouss/zka-dev into unstable
-rw-r--r--dev/base/EncryptFS/build.json2
-rw-r--r--dev/base/FireWall/build.json19
-rw-r--r--dev/base/FireWall/fwapi.hxx7
-rw-r--r--dev/base/FireWall/src/fwentry.cc5
-rw-r--r--dev/base/ReadMe.md4
-rw-r--r--dev/base/RunDLL64/src/dll.cxx4
-rw-r--r--dev/base/RunXPCOM/src/xpcom.cxx4
-rw-r--r--tools/drvsign.cxx107
-rw-r--r--tools/drvsign.json6
-rw-r--r--tools/src/zxdmake.cxx72
-rw-r--r--tools/zxd.hxx56
-rw-r--r--tools/zxdmake.json19
12 files changed, 189 insertions, 116 deletions
diff --git a/dev/base/EncryptFS/build.json b/dev/base/EncryptFS/build.json
index 3b41b059..1f9b018e 100644
--- a/dev/base/EncryptFS/build.json
+++ b/dev/base/EncryptFS/build.json
@@ -3,7 +3,7 @@
"compiler_std": "c++20",
"headers_path": ["../", "./"],
"sources_path": ["src/*.cxx"],
- "output_name": "efs.sys",
+ "output_name": "efs.zsc",
"compiler_flags": [
"-ffreestanding",
"-shared",
diff --git a/dev/base/FireWall/build.json b/dev/base/FireWall/build.json
new file mode 100644
index 00000000..7f8c4956
--- /dev/null
+++ b/dev/base/FireWall/build.json
@@ -0,0 +1,19 @@
+{
+ "compiler_path": "x86_64-w64-mingw32-g++.exe",
+ "compiler_std": "c++20",
+ "headers_path": [ "../", "./", "../../" ],
+ "sources_path": [ "src/*.cc" ],
+ "output_name": "firewall.zsc",
+ "compiler_flags": [
+ "-ffreestanding",
+ "-fno-rtti",
+ "-fno-exceptions",
+ "-Wl,--subsystem=17"
+ ],
+ "cpp_macros": [
+ "__FIREWALL_AMD64__",
+ "cFWVersion=0x0100",
+ "cFWVersionHighest=0x0100",
+ "cFWVersionLowest=0x0100"
+ ]
+}
diff --git a/dev/base/FireWall/fwapi.hxx b/dev/base/FireWall/fwapi.hxx
new file mode 100644
index 00000000..7e22333d
--- /dev/null
+++ b/dev/base/FireWall/fwapi.hxx
@@ -0,0 +1,7 @@
+/*
+ * Copyright (c) 2024 ZKA Technologies
+ */
+
+#pragma once
+
+#include <sci/sci_base.hxx> \ No newline at end of file
diff --git a/dev/base/FireWall/src/fwentry.cc b/dev/base/FireWall/src/fwentry.cc
new file mode 100644
index 00000000..e7b929d3
--- /dev/null
+++ b/dev/base/FireWall/src/fwentry.cc
@@ -0,0 +1,5 @@
+/*
+ * Copyright (c) 2024 ZKA Technologies
+ */
+
+#include <fwapi.hxx> \ No newline at end of file
diff --git a/dev/base/ReadMe.md b/dev/base/ReadMe.md
index 46443aea..307ef17d 100644
--- a/dev/base/ReadMe.md
+++ b/dev/base/ReadMe.md
@@ -1,7 +1,7 @@
-# ZKA User DLLs/Programs.
+# ZKA User apps and services.
## Description:
-- Used to provide features to a program from the sci.dll.
+- Provides firewall, filesystem encrypter and rundll/runxpcom tools.
###### Copyright ZKA Technologies, all rights reserved.
diff --git a/dev/base/RunDLL64/src/dll.cxx b/dev/base/RunDLL64/src/dll.cxx
index 560a404d..ece370dc 100644
--- a/dev/base/RunDLL64/src/dll.cxx
+++ b/dev/base/RunDLL64/src/dll.cxx
@@ -1,3 +1,7 @@
+/*
+ * Copyright (c) 2024 ZKA Technologies
+ */
+
#include <sci/sci_base.hxx>
typedef int (*MainKind)(int, char**);
diff --git a/dev/base/RunXPCOM/src/xpcom.cxx b/dev/base/RunXPCOM/src/xpcom.cxx
index 9536b070..7c6aa252 100644
--- a/dev/base/RunXPCOM/src/xpcom.cxx
+++ b/dev/base/RunXPCOM/src/xpcom.cxx
@@ -1,3 +1,7 @@
+/*
+ * Copyright (c) 2024 ZKA Technologies
+ */
+
#include <sci/sci_base.hxx>
typedef SInt32 (*RPCProcKind)(IUnknown*);
diff --git a/tools/drvsign.cxx b/tools/drvsign.cxx
deleted file mode 100644
index ec5a6945..00000000
--- a/tools/drvsign.cxx
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Created on Thu Aug 22 09:29:13 CEST 2024
- *
- * Copyright (c) 2024 ZKA Technologies
- */
-
-#include <cstdint>
-#include <iostream>
-#include <fstream>
-#include <string>
-#include <cstring>
-#include <sstream>
-#include <filesystem>
-
-#define kDriverSignedExt ".zxd"
-#define kDriverExt ".sys"
-#define kSignedDriverMagic " ZXD"
-
-namespace ZXD
-{
- struct ZXD_HEADER final
- {
- char d_binary_padding[512];
- // doesn't change.
- char d_binary_magic[5];
- int d_binary_version;
- // can change.
- char d_binary_name[4096];
- std::uint64_t d_binary_checksum;
- std::uint64_t d_binary_size;
- };
-
- /***********************************************************************************/
- /* This handles the detection of a MZ header. */
- /***********************************************************************************/
-
- bool drvsign_check_for_mz(std::string mz_blob) noexcept
- {
- return mz_blob[0] == 'M' &&
- mz_blob[1] == 'Z';
- }
-} // namespace ZXD
-
-/// @brief This program converts a PE32+ driver, into a custom format, the ZXD.
-/// @note ZXD is a format for ZKA signed drivers.
-int main(int argc, char* argv[])
-{
- for (size_t i = 1ul; i < argc; ++i)
- {
- if (strcmp(argv[i], "/?") == 0)
- {
- std::cout << "drvsign: ZKA ZXD Driver Tool.\n";
- std::cout << "drvsign: © ZKA Technologies, all rights reserved.\n";
-
- return 0;
- }
- }
-
- if (!std::filesystem::exists(argv[1]) ||
- !std::string(argv[1]).ends_with(kDriverExt))
- return -1;
-
- ZXD::ZXD_HEADER sig{0};
-
- sig.d_binary_version = 1;
-
- memcpy(sig.d_binary_magic, kSignedDriverMagic, strlen(kSignedDriverMagic));
- memcpy(sig.d_binary_name, argv[1], strlen(argv[1]));
-
- sig.d_binary_size = std::filesystem::file_size(argv[1]);
-
- memset(sig.d_binary_padding, 0x00, 512);
-
- sig.d_binary_checksum = 0;
-
- std::string signed_path = argv[1];
- signed_path.erase(signed_path.find(kDriverExt), strlen(kDriverExt));
- signed_path += kDriverSignedExt;
-
- std::ofstream of_drv(signed_path, std::ios::binary);
- std::ifstream if_drv(argv[1], std::ios::binary);
-
- std::stringstream ss;
- ss << if_drv.rdbuf();
-
- if (!ZXD::drvsign_check_for_mz(ss.str()))
- {
- std::filesystem::remove(signed_path);
- std::cout << "drvsign: Couldn't sign current driver, Input driver isn't a valid executable.\n";
-
- return 1;
- }
-
- for (auto ch : ss.str())
- {
- sig.d_binary_checksum |= ch;
- }
-
- sig.d_binary_checksum ^= sig.d_binary_size;
-
- of_drv.write((char*)&sig, sizeof(ZXD::ZXD_HEADER));
- of_drv.write(ss.str().c_str(), ss.str().size());
-
- std::cout << "drvsign: Signing is done, quiting, here is the key: " << sig.d_binary_checksum << ".\n";
-
- return 0;
-}
diff --git a/tools/drvsign.json b/tools/drvsign.json
deleted file mode 100644
index 33bd4ea8..00000000
--- a/tools/drvsign.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "compiler_path": "g++",
- "compiler_std": "c++20",
- "sources_path": ["drvsign.cxx"],
- "output_name": "drvsign"
-}
diff --git a/tools/src/zxdmake.cxx b/tools/src/zxdmake.cxx
new file mode 100644
index 00000000..8a3276ff
--- /dev/null
+++ b/tools/src/zxdmake.cxx
@@ -0,0 +1,72 @@
+/*
+ * Created on Thu Aug 22 09:29:13 CEST 2024
+ *
+ * Copyright (c) 2024 ZKA Technologies
+ */
+
+#include <zxd.hxx>
+
+/// @brief This program converts a PE32+ driver, into a custom format, the ZXD.
+/// @note ZXD is a format for ZKA signed drivers.
+int main(int argc, char* argv[])
+{
+ for (size_t i = 1ul; i < argc; ++i)
+ {
+ if (strcmp(argv[i], "/?") == 0)
+ {
+ std::cout << "zxdmake: ZKA ZXD Driver Tool.\n";
+ std::cout << "zxdmake: © ZKA Technologies, all rights reserved.\n";
+
+ return 0;
+ }
+ }
+
+ if (!std::filesystem::exists(argv[1]) ||
+ !std::string(argv[1]).ends_with(kDriverExt))
+ return -1;
+
+ ZXD::ZXD_HEADER zxd_hdr{0};
+
+ zxd_hdr.d_binary_version = 1;
+
+ memcpy(zxd_hdr.d_binary_magic, kSignedDriverMagic, strlen(kSignedDriverMagic));
+ memcpy(zxd_hdr.d_binary_name, argv[1], strlen(argv[1]));
+
+ zxd_hdr.d_binary_size = std::filesystem::file_size(argv[1]);
+
+ memset(zxd_hdr.d_binary_padding, 0x00, 512);
+
+ zxd_hdr.d_binary_checksum = 0;
+
+ std::string signed_path = argv[1];
+ signed_path.erase(signed_path.find(kDriverExt), strlen(kDriverExt));
+ signed_path += kDriverSignedExt;
+
+ std::ofstream of_drv(signed_path, std::ios::binary);
+ std::ifstream if_drv(argv[1], std::ios::binary);
+
+ std::stringstream ss;
+ ss << if_drv.rdbuf();
+
+ if (!ZXD::zxd_check_for_mz(ss.str()))
+ {
+ std::filesystem::remove(signed_path);
+ std::cout << "zxdmake: Couldn't sign current driver, Input driver isn't a valid executable.\n";
+
+ return 1;
+ }
+
+ for (auto ch : ss.str())
+ {
+ zxd_hdr.d_binary_checksum |= ch;
+ }
+
+ zxd_hdr.d_binary_checksum ^= zxd_hdr.d_binary_size;
+
+ of_drv.write((char*)&zxd_hdr, sizeof(ZXD::ZXD_HEADER));
+ of_drv.write(ss.str().c_str(), ss.str().size());
+
+ std::cout << "zxdmake: Signing is done, quiting, Checksum: " << zxd_hdr.d_binary_checksum << ".\n";
+
+ return 0;
+}
diff --git a/tools/zxd.hxx b/tools/zxd.hxx
new file mode 100644
index 00000000..5875b017
--- /dev/null
+++ b/tools/zxd.hxx
@@ -0,0 +1,56 @@
+/*
+ * Created on Thu Aug 22 09:29:13 CEST 2024
+ *
+ * Copyright (c) 2024 ZKA Technologies
+ */
+
+#pragma once
+
+#include <cstdint>
+#include <iostream>
+#include <fstream>
+#include <string>
+#include <cstring>
+#include <sstream>
+#include <filesystem>
+
+#define kDriverSignedExt ".zxd"
+#define kDriverExt ".sys"
+#define kSignedDriverMagic " ZXD"
+
+#define cZXDPaddingSize (512)
+#define cZXDMagicSize (5)
+
+namespace ZXD
+{
+ /// <summary>
+ /// ZXD header.
+ /// </summary>
+ struct ZXD_HEADER final
+ {
+ char d_binary_padding[cZXDPaddingSize];
+ // doesn't change.
+ char d_binary_magic[cZXDMagicSize];
+ std::int32_t d_binary_version;
+ // can change.
+ char d_binary_name[4096];
+ std::uint64_t d_binary_checksum;
+ std::uint64_t d_binary_size;
+ };
+
+ /***********************************************************************************/
+ /* @brief These two handles the detection of a MZ header. */
+ /***********************************************************************************/
+
+ inline bool zxd_check_for_mz(const char* mz_blob) noexcept
+ {
+ return mz_blob[0] == 'M' &&
+ mz_blob[1] == 'Z';
+ }
+
+ inline bool zxd_check_for_mz(std::string mz_blob) noexcept
+ {
+ return mz_blob[0] == 'M' &&
+ mz_blob[1] == 'Z';
+ }
+} // namespace ZXD \ No newline at end of file
diff --git a/tools/zxdmake.json b/tools/zxdmake.json
new file mode 100644
index 00000000..d24a5de9
--- /dev/null
+++ b/tools/zxdmake.json
@@ -0,0 +1,19 @@
+{
+ "compiler_path": "x86_64-w64-mingw32-g++.exe",
+ "compiler_std": "c++20",
+ "headers_path": [ "../", "./", "../../" ],
+ "sources_path": [ "src/zxdmake.cxx" ],
+ "output_name": "zxdmake.exe",
+ "compiler_flags": [
+ "-ffreestanding",
+ "-fno-rtti",
+ "-fno-exceptions",
+ "-Wl,--subsystem=17"
+ ],
+ "cpp_macros": [
+ "__DRVSIGN_AMD64__",
+ "cDSVersion=0x0100",
+ "cDSVersionHighest=0x0100",
+ "cDSVersionLowest=0x0100"
+ ]
+}