diff options
| -rw-r--r-- | dev/DDK/DispatchKernelCall.S | 2 | ||||
| -rw-r--r-- | dev/DDK/KernelAlloc.c | 4 | ||||
| -rw-r--r-- | dev/DDK/KernelCall.c | 6 | ||||
| -rw-r--r-- | dev/DDK/KernelDev.c | 4 | ||||
| -rw-r--r-- | dev/DDK/KernelDev.h | 12 | ||||
| -rw-r--r-- | dev/DDK/KernelPrint.c | 2 | ||||
| -rw-r--r-- | tools/drvsign.cxx | 16 |
7 files changed, 23 insertions, 23 deletions
diff --git a/dev/DDK/DispatchKernelCall.S b/dev/DDK/DispatchKernelCall.S index ef1886b9..3a9a57b5 100644 --- a/dev/DDK/DispatchKernelCall.S +++ b/dev/DDK/DispatchKernelCall.S @@ -30,7 +30,7 @@ __KernelCallDispatch: /* args x0, x8, x9, x10, x11 is kept to tell that this is a Kernel call */ __KernelCallDispatch: /* There is no specific interrupt request id for a system call in ARM64 as well. */ - mov x11, #0x33 + mov x9, #0x33 svc #0 #endif diff --git a/dev/DDK/KernelAlloc.c b/dev/DDK/KernelAlloc.c index 75aa3213..7648712d 100644 --- a/dev/DDK/KernelAlloc.c +++ b/dev/DDK/KernelAlloc.c @@ -18,7 +18,7 @@ DK_EXTERN void* KernelAlloc(size_t sz) if (!sz) ++sz; - void* ptr = KernelCall("NewHeap", 1, &sz, sizeof(size_t)); + void* ptr = KernelCall("MmNewKeHeap", 1, &sz, sizeof(size_t)); return ptr; } @@ -32,5 +32,5 @@ DK_EXTERN void KernelFree(void* ptr) if (!ptr) return; - KernelCall("DeleteHeap", 1, ptr, 0); + KernelCall("MmDeleteKeHeap", 1, ptr, 0); } diff --git a/dev/DDK/KernelCall.c b/dev/DDK/KernelCall.c index 31e67620..16c36f43 100644 --- a/dev/DDK/KernelCall.c +++ b/dev/DDK/KernelCall.c @@ -32,7 +32,7 @@ DK_EXTERN void* KernelCall(const char* KernelRpcName, int32_t cnt, void* data, s /// @param slotFn, syscall slot. DK_EXTERN void KernelAddSyscall(const int slot, void (*slotFn)(void* a0)) { - KernelCall("AddSyscall", slot, slotFn, 1); + KernelCall("IntAddSyscall", slot, slotFn, 1); } /// @brief Get a Kernel property. @@ -41,7 +41,7 @@ DK_EXTERN void KernelAddSyscall(const int slot, void (*slotFn)(void* a0)) /// @return property's object. DK_EXTERN void* KernelGetProperty(const int slot, const char* name) { - return KernelCall("GetProperty", slot, name, 1); + return KernelCall("RtlGetProperty", slot, (void*)name, 1); } /// @brief Set a Kernel property. @@ -51,5 +51,5 @@ DK_EXTERN void* KernelGetProperty(const int slot, const char* name) /// @return property's object. DK_EXTERN void* KernelSetProperty(const int slot, const struct DDK_PROPERTY_RECORD* ddk_pr) { - return KernelCall("SetProperty", slot, ddk_pr, 1); + return KernelCall("RtlSetProperty", slot, (void*)ddk_pr, 1); } diff --git a/dev/DDK/KernelDev.c b/dev/DDK/KernelDev.c index 78703961..a04f5986 100644 --- a/dev/DDK/KernelDev.c +++ b/dev/DDK/KernelDev.c @@ -15,7 +15,7 @@ DK_EXTERN KERNEL_DEVICE_PTR KernelOpenDevice(const char* devicePath) if (!devicePath) return nil; - return KernelCall("OpenDevice", 1, (void*)devicePath, KernelStringLength(devicePath)); + return KernelCall("ZkOpenDevice", 1, (void*)devicePath, KernelStringLength(devicePath)); } /// @brief Close any device. @@ -25,5 +25,5 @@ DK_EXTERN void KernelCloseDevice(KERNEL_DEVICE_PTR device) if (!device) return; - KernelCall("CloseDevice", 1, device, sizeof(KERNEL_DEVICE)); + KernelCall("ZkCloseDevice", 1, device, sizeof(KERNEL_DEVICE)); } diff --git a/dev/DDK/KernelDev.h b/dev/DDK/KernelDev.h index e051c7a3..17876688 100644 --- a/dev/DDK/KernelDev.h +++ b/dev/DDK/KernelDev.h @@ -15,12 +15,12 @@ struct _KERNEL_DEVICE; /// @brief Kernel Device driver. typedef struct _KERNEL_DEVICE DK_FINAL { - char name[255]; // the device name. Could be /./DEVICE_NAME/ - void* (*read)(void* arg, int len); // read from device. - void (*write)(void* arg, int len); - void (*wait)(void); // write to device. - struct _KERNEL_DEVICE* (*open)(const char* path); // open device. - void (*close)(struct _KERNEL_DEVICE* dev); // close device. + char d_name[255]; // the device name. Could be /./DEVICE_NAME/ + void* (*d_read)(void* arg, int len); // read from device. + void (*d_write)(void* arg, int len); + void (*d_wait)(void); // write to device. + struct _KERNEL_DEVICE* (*d_open)(const char* path); // open device. + void (*d_close)(struct _KERNEL_DEVICE* dev); // close device. } KERNEL_DEVICE, *KERNEL_DEVICE_PTR; /// @brief Open a new device from path. diff --git a/dev/DDK/KernelPrint.c b/dev/DDK/KernelPrint.c index 7eb893d0..77faa8a8 100644 --- a/dev/DDK/KernelPrint.c +++ b/dev/DDK/KernelPrint.c @@ -14,7 +14,7 @@ DK_EXTERN void KernelPrintChar(const char ch) assembled[0] = ch; assembled[1] = 0; - KernelCall("WriteCharacter", 1, assembled, 1); + KernelCall("SrWriteCharacter", 1, assembled, 1); } /// @brief print string to UART. diff --git a/tools/drvsign.cxx b/tools/drvsign.cxx index 18678448..95407162 100644 --- a/tools/drvsign.cxx +++ b/tools/drvsign.cxx @@ -11,13 +11,13 @@ #include <sstream> #include <filesystem> -#define kDriverSignedExt ".vxd" +#define kDriverSignedExt ".zxd" #define kDriverExt ".sys" -#define kSignedDriverMagic " VXD" +#define kSignedDriverMagic " ZXD" namespace details { - struct SIGNED_DRIVER_HEADER final + struct ZKA_DRIVER_HEADER final { char d_binary_padding[512]; // doesn't change. @@ -40,15 +40,15 @@ namespace details } } // namespace details -/// @brief This program converts a PE32+ driver, into a custom format, the SIGG. -/// @note SIGG is used to tell that we're dealing with a ZKA driver. +/// @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 Driver Signing Tool.\n"; + std::cout << "drvsign: ZKA ZKA Driver Tool.\n"; std::cout << "drvsign: © ZKA Technologies, all rights reserved.\n"; return 0; @@ -59,7 +59,7 @@ int main(int argc, char* argv[]) !std::string(argv[1]).ends_with(kDriverExt)) return -1; - details::SIGNED_DRIVER_HEADER sig{0}; + details::ZKA_DRIVER_HEADER sig{0}; sig.d_binary_version = 1; @@ -97,8 +97,8 @@ int main(int argc, char* argv[]) sig.d_binary_checksum ^= sig.d_binary_size; + of_drv.write((char*)&sig, sizeof(details::ZKA_DRIVER_HEADER)); of_drv.write(ss.str().c_str(), ss.str().size()); - of_drv.write((char*)&sig, sizeof(details::SIGNED_DRIVER_HEADER)); std::cout << "drvsign: Signing is done, quiting, here is the key: " << sig.d_binary_checksum << ".\n"; |
