From 6f2a947deb6add78781762d3d8cbad7bf1ef0e3d Mon Sep 17 00:00:00 2001 From: Max Logaev Date: Sun, 22 Feb 2026 00:09:14 +0300 Subject: [PATCH] Remove broken unused and unfinished apps and libs - TEAtool: A useless utility for encryption with the TEA algorithm, written for fun by me during my school years; - GameHack: not a working prototype of a program like Cheat Engine; - microtar: port of a portable library with a reduced functionality for working with TAR in C that is not used Signed-off-by: Max Logaev --- data/Tupfile.lua | 2 - programs/develop/libraries/microtar/LICENSE | 19 - programs/develop/libraries/microtar/README.md | 99 ---- .../develop/libraries/microtar/Tupfile.lua | 8 - .../libraries/microtar/example/read.asm | 78 --- .../libraries/microtar/example/write.asm | 70 --- .../develop/libraries/microtar/microtar.c | 450 ------------------ .../develop/libraries/microtar/microtar.h | 91 ---- programs/develop/libraries/microtar/mtar.inc | 38 -- programs/other/GameHack/Makefile | 16 - programs/other/GameHack/gh_core.c | 72 --- programs/other/GameHack/gh_shell.c | 96 ---- programs/other/TEAtool/Makefile | 18 - programs/other/TEAtool/lang_en.c | 49 -- programs/other/TEAtool/readme.txt | 9 - programs/other/TEAtool/tea.c | 62 --- programs/other/TEAtool/teatool.c | 303 ------------ 17 files changed, 1480 deletions(-) delete mode 100644 programs/develop/libraries/microtar/LICENSE delete mode 100644 programs/develop/libraries/microtar/README.md delete mode 100755 programs/develop/libraries/microtar/Tupfile.lua delete mode 100644 programs/develop/libraries/microtar/example/read.asm delete mode 100644 programs/develop/libraries/microtar/example/write.asm delete mode 100644 programs/develop/libraries/microtar/microtar.c delete mode 100644 programs/develop/libraries/microtar/microtar.h delete mode 100644 programs/develop/libraries/microtar/mtar.inc delete mode 100755 programs/other/GameHack/Makefile delete mode 100644 programs/other/GameHack/gh_core.c delete mode 100644 programs/other/GameHack/gh_shell.c delete mode 100755 programs/other/TEAtool/Makefile delete mode 100644 programs/other/TEAtool/lang_en.c delete mode 100644 programs/other/TEAtool/readme.txt delete mode 100644 programs/other/TEAtool/tea.c delete mode 100755 programs/other/TEAtool/teatool.c diff --git a/data/Tupfile.lua b/data/Tupfile.lua index 60ba6b2ae..105c77236 100644 --- a/data/Tupfile.lua +++ b/data/Tupfile.lua @@ -735,7 +735,6 @@ tup.append_table(extra_files, { {"kolibrios/develop/TinyBasic/TinyBasic", VAR_PROGS .. "/develop/tinybasic-1.0.4/tinybasic"}, {"kolibrios/develop/TinyBasic/bas/", SRC_PROGS .. "/develop/tinybasic-1.0.4/bas/*"}, {"kolibrios/develop/TinyBasic/TinyBasic.man", SRC_PROGS .. "/develop/tinybasic-1.0.4/doc/tinybasic.man"}, --- {"kolibrios/utils/teatool", VAR_PROGS .. "/other/TEAtool/teatool"}, {"kolibrios/utils/passwordgen", VAR_PROGS .. "/other/PasswordGen/passwordgen"}, {"kolibrios/utils/kruler", VAR_PROGS .. "/other/kruler/kruler"}, {"kolibrios/media/qr_tool", SRC_PROGS .. "/media/qr_tool/qr_tool"}, @@ -759,7 +758,6 @@ tup.append_table(img_files, { {"GAMES/REVERSI", VAR_PROGS .. "/games/reversi/reversi"}, {"LIB/BASE64.OBJ", VAR_PROGS .. "/develop/libraries/base64/base64.obj"}, {"LIB/ICONV.OBJ", VAR_PROGS .. "/develop/libraries/iconv/iconv.obj"}, - -- {"LIB/MTAR.OBJ", VAR_PROGS .. "/develop/libraries/microtar/mtar.obj"}, }) tup.append_table(extra_files, { -- {"kolibrios/3D/cubeline", VAR_PROGS .. "/demos/cubeline/trunk/cubeline"}, diff --git a/programs/develop/libraries/microtar/LICENSE b/programs/develop/libraries/microtar/LICENSE deleted file mode 100644 index 7e3bf17cc..000000000 --- a/programs/develop/libraries/microtar/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2017 rxi - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/programs/develop/libraries/microtar/README.md b/programs/develop/libraries/microtar/README.md deleted file mode 100644 index 42acf49ca..000000000 --- a/programs/develop/libraries/microtar/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# microtar -A lightweight tar library written in ANSI C - - -## Basic Usage -The library consists of `microtar.c` and `microtar.h`. These two files can be -dropped into an existing project and compiled along with it. - - -#### Reading -```c -mtar_t tar; -mtar_header_t h; -char *p; - -/* Open archive for reading */ -mtar_open(&tar, "test.tar", "r"); - -/* Print all file names and sizes */ -while ( (mtar_read_header(&tar, &h)) != MTAR_ENULLRECORD ) { - printf("%s (%d bytes)\n", h.name, h.size); - mtar_next(&tar); -} - -/* Load and print contents of file "test.txt" */ -mtar_find(&tar, "test.txt", &h); -p = calloc(1, h.size + 1); -mtar_read_data(&tar, p, h.size); -printf("%s", p); -free(p); - -/* Close archive */ -mtar_close(&tar); -``` - -#### Writing -```c -mtar_t tar; -const char *str1 = "Hello world"; -const char *str2 = "Goodbye world"; - -/* Open archive for writing */ -mtar_open(&tar, "test.tar", "w"); - -/* Write strings to files `test1.txt` and `test2.txt` */ -mtar_write_file_header(&tar, "test1.txt", strlen(str1)); -mtar_write_data(&tar, str1, strlen(str1)); -mtar_write_file_header(&tar, "test2.txt", strlen(str2)); -mtar_write_data(&tar, str2, strlen(str2)); - -/* Finalize -- this needs to be the last thing done before closing */ -mtar_finalize(&tar); - -/* Close archive */ -mtar_close(&tar); -``` - - -## Error handling -All functions which return an `int` will return `MTAR_ESUCCESS` if the operation -is successful. If an error occurs an error value less-than-zero will be -returned; this value can be passed to the function `mtar_strerror()` to get its -corresponding error string. - - -## Wrapping a stream -If you want to read or write from something other than a file, the `mtar_t` -struct can be manually initialized with your own callback functions and a -`stream` pointer. - -All callback functions are passed a pointer to the `mtar_t` struct as their -first argument. They should return `MTAR_ESUCCESS` if the operation succeeds -without an error, or an integer below zero if an error occurs. - -After the `stream` field has been set, all required callbacks have been set and -all unused fields have been zeroset the `mtar_t` struct can be safely used with -the microtar functions. `mtar_open` *should not* be called if the `mtar_t` -struct was initialized manually. - -#### Reading -The following callbacks should be set for reading an archive from a stream: - -Name | Arguments | Description ---------|------------------------------------------|--------------------------- -`read` | `mtar_t *tar, void *data, unsigned size` | Read data from the stream -`seek` | `mtar_t *tar, unsigned pos` | Set the position indicator -`close` | `mtar_t *tar` | Close the stream - -#### Writing -The following callbacks should be set for writing an archive to a stream: - -Name | Arguments | Description ---------|------------------------------------------------|--------------------- -`write` | `mtar_t *tar, const void *data, unsigned size` | Write data to the stream - - -## License -This library is free software; you can redistribute it and/or modify it under -the terms of the MIT license. See [LICENSE](LICENSE) for details. diff --git a/programs/develop/libraries/microtar/Tupfile.lua b/programs/develop/libraries/microtar/Tupfile.lua deleted file mode 100755 index 04492e264..000000000 --- a/programs/develop/libraries/microtar/Tupfile.lua +++ /dev/null @@ -1,8 +0,0 @@ -if tup.getconfig("NO_GCC") ~= "" then return end -HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../" or tup.getconfig("HELPERDIR") -tup.include(HELPERDIR .. "/use_gcc.lua") - -CFLAGS = " -c -w -nostdinc -DGNUC -DMTAR_OBJ -Os -fno-common -fno-builtin -fno-leading-underscore -fno-pie" -INCLUDES = " -I../include -I../../ktcc/trunk/libc.obj/include" - -tup.rule("microtar.c", "kos32-gcc" .. CFLAGS .. INCLUDES .. " -o %o %f " .. tup.getconfig("KPACK_CMD"), "mtar.obj") diff --git a/programs/develop/libraries/microtar/example/read.asm b/programs/develop/libraries/microtar/example/read.asm deleted file mode 100644 index 31b67645f..000000000 --- a/programs/develop/libraries/microtar/example/read.asm +++ /dev/null @@ -1,78 +0,0 @@ -format binary as "kex" - -use32 - org 0x0 - db 'MENUET01' - dd 0x01 - dd START - dd IM_END - dd MEM - dd MEM - dd 0 - dd 0 - -include '../../../../macros.inc' -include '../../../../proc32.inc' -include '../../../../KOSfuncs.inc' -include '../../../../dll.inc' -include '../mtar.inc' -;include '../../../../debug-fdo.inc' - -;__DEBUG__ = 1 -;__DEBUG_LEVEL__ = 2 - - -START: - stdcall dll.Load, @IMPORT ; Имортироуем функции из mtar.obj - test eax, eax - jnz exit - - ccall [mtar_init] ; Инициализируем библиотеку (на самом деле подгружается libc.obj - ccall [mtar_open], tar, tar_fname, tar_fmode ; Открываем для чтения файл 'test.tar' - - ; DEBUGF 2, "%d", eax - -print_next: - ccall [mtar_read_header], tar, header ; Читаем заголовок - cmp eax, MTAR_ENULLRECORD ; Если заголовок не был прочитан (return -7) выходим из цикла - je exit - ccall [printf], format_str, header+mtar_header_t.name, dword[header+mtar_header_t.size] ; Выводим в консоль имя файла и размер в байтах - ccall [mtar_next], tar ; Переходим к следующему заголовку - jmp print_next ; прыгаем в начало цикла - -exit: - ccall [mtar_close], tar ; Закрываем 'test.tar' - mcall SF_TERMINATE_PROCESS ; Выходим из программы - -; data - -tar_fname db 'test.tar', 0 -tar_fmode db 'r', 0 - -tar rb sizeof.mtar_t -header rb sizeof.mtar_header_t - -format_str db '%-10s (%-4d bytes)', 0x0A,0 - -align 4 - -@IMPORT: -library mtar, 'mtar.obj', libc , 'libc.obj' -import mtar, \ - mtar_init, 'mtar_init', \ - mtar_open, 'mtar_open', \ - mtar_next, 'mtar_next', \ - mtar_strerror, 'mtar_strerror', \ - mtar_read_header, 'mtar_read_header', \ - mtar_write_data, 'mtar_write_data', \ - mtar_finalize, 'mtar_finalize', \ - mtar_close, 'mtar_close' - -import libc, \ - printf, 'printf' - - -IM_END: -align 4 -rb 4096 ; stack -MEM: diff --git a/programs/develop/libraries/microtar/example/write.asm b/programs/develop/libraries/microtar/example/write.asm deleted file mode 100644 index b14d79b9c..000000000 --- a/programs/develop/libraries/microtar/example/write.asm +++ /dev/null @@ -1,70 +0,0 @@ -format binary as "kex" - -use32 - org 0x0 - db 'MENUET01' - dd 0x01 - dd START - dd IM_END - dd MEM - dd MEM - dd 0 - dd 0 - -include '../../../../macros.inc' -include '../../../../proc32.inc' -include '../../../../KOSfuncs.inc' -include '../../../../dll.inc' -include '../mtar.inc' -;include '../../../../debug-fdo.inc' - -;__DEBUG__ = 1 -;__DEBUG_LEVEL__ = 2 - -START: - stdcall dll.Load, @IMPORT ; Имортироуем функции из mtar.obj - test eax, eax - jnz exit - - ccall [mtar_init] ; Инициализируем библиотеку (на самом деле подгружается libc.obj - ccall [mtar_open], tar, tar_fname, tar_fmode ; Создаём новый файл 'test.tar' - ccall [mtar_write_file_header], tar, test1_txt , str1_len ; Создаём внутри 'test.tar' пустрой файл 'test1.txt' - - ccall [mtar_write_data], tar, str1, str1_len ; Записываем данныев в этот файл - - ccall [mtar_finalize], tar ; Указываем что больше с tar работать не будем - ccall [mtar_close], tar ; Закрываем 'test.tar' - -exit: - mcall SF_TERMINATE_PROCESS ; Выходим из программы - -; data - -str1 db 'Hello world!', 0 -str1_len = $ - str1 - -str2 db 'Goodbye world!', 0 - -tar_fname db 'test.tar', 0 -tar_fmode db 'w', 0 - -test1_txt db 'test1.txt', 0 - -tar rb 32 - -align 4 - -@IMPORT: -library mtar, 'mtar.obj' -import mtar, \ - mtar_init, 'mtar_init', \ - mtar_open, 'mtar_open', \ - mtar_write_file_header, 'mtar_write_file_header', \ - mtar_write_data, 'mtar_write_data', \ - mtar_finalize, 'mtar_finalize', \ - mtar_close, 'mtar_close' - -IM_END: -align 4 -rb 4096 ; stack -MEM: diff --git a/programs/develop/libraries/microtar/microtar.c b/programs/develop/libraries/microtar/microtar.c deleted file mode 100644 index edc30f407..000000000 --- a/programs/develop/libraries/microtar/microtar.c +++ /dev/null @@ -1,450 +0,0 @@ -/* - * Copyright (c) 2017 rxi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#include -#include -#include -#include - -#include - -#include "microtar.h" - -typedef struct { - char name[100]; - char mode[8]; - char owner[8]; - char group[8]; - char size[12]; - char mtime[12]; - char checksum[8]; - char type; - char linkname[100]; - char _padding[255]; -} mtar_raw_header_t; - -static void * mtar_memset( void * s, int c, size_t n ){ - unsigned char * p = ( unsigned char * ) s; - while ( n-- ){ - *p++ = ( unsigned char ) c; - } - return s; -} - -#ifdef MTAR_OBJ -// All pointers was changed for compatible to latest version tcc and the libc.obj headers -size_t (*_fread)(void *restrict, size_t size, size_t count, FILE *restrict)=NULL; -size_t (*_fwrite)(const void *restrict, size_t size, size_t count, FILE *restrict)=NULL; -int (*_fclose)(FILE *)=NULL; -FILE* (*_fopen)(const char *restrict, const char *restrict)=NULL; -int (*_fseek)(FILE *, long, int)=NULL; -long (*_ftell)(FILE *)=NULL; -int (*_sprintf)(char* buffer, const char* format, ...)=NULL; -int (*_sscanf)(const char*, const char *restrict, ...)=NULL; -int (*_strcmp)(const char * s1, const char* s2)=NULL; -char* (*_strchr)(const char* s, int c)=NULL; -char* (*_strcpy)(char* s1, const char* s2)=NULL; - -#endif - -static unsigned round_up(unsigned n, unsigned incr) { - return n + (incr - n % incr) % incr; -} - - -static unsigned checksum(const mtar_raw_header_t* rh) { - unsigned i; - unsigned char *p = (unsigned char*) rh; - unsigned res = 256; - for (i = 0; i < offsetof(mtar_raw_header_t, checksum); i++) { - res += p[i]; - } - for (i = offsetof(mtar_raw_header_t, type); i < sizeof(*rh); i++) { - res += p[i]; - } - return res; -} - - -static int tread(mtar_t *tar, void *data, unsigned size) { - int err = tar->read(tar, data, size); - tar->pos += size; - return err; -} - - -static int twrite(mtar_t *tar, const void *data, unsigned size) { - - int err = tar->write(tar, data, size); - tar->pos += size; - return err; -} - - -static int write_null_bytes(mtar_t *tar, int n) { - int i, err; - char nul = '\0'; - for (i = 0; i < n; i++) { - err = twrite(tar, &nul, 1); - if (err) { - return err; - } - } - return MTAR_ESUCCESS; -} - - -static int raw_to_header(mtar_header_t *h, const mtar_raw_header_t *rh) { - unsigned chksum1, chksum2; - - /* If the checksum starts with a null byte we assume the record is NULL */ - if (*rh->checksum == '\0') { - return MTAR_ENULLRECORD; - } - - /* Build and compare checksum */ - chksum1 = checksum(rh); - _sscanf(rh->checksum, "%o", &chksum2); - if (chksum1 != chksum2) { - return MTAR_EBADCHKSUM; - } - - /* Load raw header into header */ - _sscanf(rh->mode, "%o", &h->mode); - _sscanf(rh->owner, "%o", &h->owner); - _sscanf(rh->size, "%o", &h->size); - _sscanf(rh->mtime, "%o", &h->mtime); - h->type = rh->type; - _strcpy(h->name, rh->name); - _strcpy(h->linkname, rh->linkname); - - return MTAR_ESUCCESS; -} - - -static int header_to_raw(mtar_raw_header_t *rh, const mtar_header_t *h) { - unsigned chksum; - - /* Load header into raw header */ - mtar_memset(rh, 0, sizeof(*rh)); - _sprintf(rh->mode, "%o", h->mode); - _sprintf(rh->owner, "%o", h->owner); - _sprintf(rh->size, "%o", h->size); - _sprintf(rh->mtime, "%o", h->mtime); - rh->type = h->type ? h->type : MTAR_TREG; - _strcpy(rh->name, h->name); - _strcpy(rh->linkname, h->linkname); - - /* Calculate and write checksum */ - chksum = checksum(rh); - _sprintf(rh->checksum, "%06o", chksum); - rh->checksum[7] = ' '; - - return MTAR_ESUCCESS; -} - - -const char* mtar_strerror(int err) { - switch (err) { - case MTAR_ESUCCESS : return "success"; - case MTAR_EFAILURE : return "failure"; - case MTAR_EOPENFAIL : return "could not open"; - case MTAR_EREADFAIL : return "could not read"; - case MTAR_EWRITEFAIL : return "could not write"; - case MTAR_ESEEKFAIL : return "could not seek"; - case MTAR_EBADCHKSUM : return "bad checksum"; - case MTAR_ENULLRECORD : return "null record"; - case MTAR_ENOTFOUND : return "file not found"; - } - return "unknown error"; -} - - -static int file_write(mtar_t *tar, const void *data, unsigned size) { - unsigned res = _fwrite(data, 1, size, tar->stream); - return (res == size) ? MTAR_ESUCCESS : MTAR_EWRITEFAIL; -} - -static int file_read(mtar_t *tar, void *data, unsigned size) { - unsigned res = _fread(data, 1, size, tar->stream); - return (res == size) ? MTAR_ESUCCESS : MTAR_EREADFAIL; -} - -static int file_seek(mtar_t *tar, unsigned offset) { - int res = _fseek(tar->stream, offset, SEEK_SET); - return (res == 0) ? MTAR_ESUCCESS : MTAR_ESEEKFAIL; -} - -static int file_close(mtar_t *tar) { - _fclose(tar->stream); - return MTAR_ESUCCESS; -} - - -int mtar_open(mtar_t *tar, const char *filename, const char *mode) { - int err; - mtar_header_t h; - - /* Init tar struct and functions */ - mtar_memset(tar, 0, sizeof(*tar)); - tar->write = file_write; - tar->read = file_read; - tar->seek = file_seek; - tar->close = file_close; - - /* Assure mode is always binary */ - if ( _strchr(mode, 'r') ) mode = "rb"; - if ( _strchr(mode, 'w') ) mode = "wb"; - if ( _strchr(mode, 'a') ) mode = "ab"; - /* Open file */ - tar->stream = _fopen(filename, mode); - if (!tar->stream) { - return MTAR_EOPENFAIL; - } - /* Read first header to check it is valid if mode is `r` */ - if (*mode == 'r') { - err = mtar_read_header(tar, &h); - if (err != MTAR_ESUCCESS) { - mtar_close(tar); - return err; - } - } - - /* Return ok */ - return MTAR_ESUCCESS; -} - - -int mtar_close(mtar_t *tar) { - return tar->close(tar); -} - - -int mtar_seek(mtar_t *tar, unsigned pos) { - int err = tar->seek(tar, pos); - tar->pos = pos; - return err; -} - - -int mtar_rewind(mtar_t *tar) { - tar->remaining_data = 0; - tar->last_header = 0; - return mtar_seek(tar, 0); -} - - -int mtar_next(mtar_t *tar) { - int err, n; - mtar_header_t h; - /* Load header */ - err = mtar_read_header(tar, &h); - if (err) { - return err; - } - /* Seek to next record */ - n = round_up(h.size, 512) + sizeof(mtar_raw_header_t); - return mtar_seek(tar, tar->pos + n); -} - - -int mtar_find(mtar_t *tar, const char *name, mtar_header_t *h) { - int err; - mtar_header_t header; - /* Start at beginning */ - err = mtar_rewind(tar); - if (err) { - return err; - } - /* Iterate all files until we hit an error or find the file */ - while ( (err = mtar_read_header(tar, &header)) == MTAR_ESUCCESS ) { - if ( !_strcmp(header.name, name) ) { - if (h) { - *h = header; - } - return MTAR_ESUCCESS; - } - mtar_next(tar); - } - /* Return error */ - if (err == MTAR_ENULLRECORD) { - err = MTAR_ENOTFOUND; - } - return err; -} - - -int mtar_read_header(mtar_t *tar, mtar_header_t *h) { - int err; - mtar_raw_header_t rh; - /* Save header position */ - tar->last_header = tar->pos; - /* Read raw header */ - err = tread(tar, &rh, sizeof(rh)); - if (err) { - return err; - } - /* Seek back to start of header */ - err = mtar_seek(tar, tar->last_header); - if (err) { - return err; - } - /* Load raw header into header struct and return */ - return raw_to_header(h, &rh); -} - - -int mtar_read_data(mtar_t *tar, void *ptr, unsigned size) { - int err; - /* If we have no remaining data then this is the first read, we get the size, - * set the remaining data and seek to the beginning of the data */ - if (tar->remaining_data == 0) { - mtar_header_t h; - /* Read header */ - err = mtar_read_header(tar, &h); - if (err) { - return err; - } - /* Seek past header and init remaining data */ - err = mtar_seek(tar, tar->pos + sizeof(mtar_raw_header_t)); - if (err) { - return err; - } - tar->remaining_data = h.size; - } - /* Read data */ - err = tread(tar, ptr, size); - if (err) { - return err; - } - tar->remaining_data -= size; - /* If there is no remaining data we've finished reading and seek back to the - * header */ - if (tar->remaining_data == 0) { - return mtar_seek(tar, tar->last_header); - } - return MTAR_ESUCCESS; -} - - -int mtar_write_header(mtar_t *tar, const mtar_header_t *h) { - mtar_raw_header_t rh; - /* Build raw header and write */ - header_to_raw(&rh, h); - tar->remaining_data = h->size; - return twrite(tar, &rh, sizeof(rh)); -} - -int mtar_write_file_header(mtar_t *tar, const char *name, unsigned size) { - mtar_header_t h; - /* Build header */ - mtar_memset(&h, 0, sizeof(h)); - _strcpy(h.name, name); - h.size = size; - h.type = MTAR_TREG; - h.mode = 0664; - /* Write header */ - return mtar_write_header(tar, &h); -} - - -int mtar_write_dir_header(mtar_t *tar, const char *name) { - mtar_header_t h; - /* Build header */ - mtar_memset(&h, 0, sizeof(h)); - _strcpy(h.name, name); - h.type = MTAR_TDIR; - h.mode = 0775; - /* Write header */ - return mtar_write_header(tar, &h); -} - - -int mtar_write_data(mtar_t *tar, const void *data, unsigned size) { - int err; - /* Write data */ - err = twrite(tar, data, size); - if (err) { - return err; - } - tar->remaining_data -= size; - /* Write padding if we've written all the data for this file */ - if (tar->remaining_data == 0) { - return write_null_bytes(tar, round_up(tar->pos, 512) - tar->pos); - } - return MTAR_ESUCCESS; -} - - -int mtar_finalize(mtar_t *tar) { - /* Write two NULL records */ - return write_null_bytes(tar, sizeof(mtar_raw_header_t) * 2); -} - -/* Load libc.obj */ - -#ifdef MTAR_OBJ - -#include - -int mtar_init(){ - ksys_dll_t *libc = _ksys_dlopen("/sys/lib/libc.obj"); - if(!libc){ - _ksys_debug_puts("mtar.obj: libc.obj not loaded!"); - return 1; - } - - _fread = _ksys_dlsym(libc, "fread"); - _fwrite = _ksys_dlsym(libc, "fwrite"); - _fclose = _ksys_dlsym(libc, "fclose"); - _fopen = _ksys_dlsym(libc, "fopen"); - _fseek = _ksys_dlsym(libc, "fseek"); - _ftell = _ksys_dlsym(libc, "ftell"); - _sprintf= _ksys_dlsym(libc, "sprintf"); - _sscanf = _ksys_dlsym(libc, "sscanf"); - _strcmp = _ksys_dlsym(libc, "strcmp"); - _strchr = _ksys_dlsym(libc, "strchr"); - _strcpy = _ksys_dlsym(libc, "strcpy"); - return 0; -} - - -ksys_dll_t EXPORTS[] = { - {"mtar_init", mtar_init}, - {"mtar_open", mtar_open}, - {"mtar_close", mtar_close}, - {"mtar_seek", mtar_seek}, - {"mtar_rewind", mtar_rewind}, - {"mtar_next", mtar_next}, - {"mtar_find", mtar_find}, - {"mtar_read_header", mtar_read_header}, - {"mtar_read_data", mtar_read_data}, - {"mtar_write_header", mtar_write_header}, - {"mtar_write_file_header", mtar_write_file_header}, - {"mtar_write_dir_header", mtar_write_dir_header}, - {"mtar_write_data",mtar_write_data}, - {"mtar_finalize", mtar_finalize}, - {"mtar_strerror", mtar_strerror}, - NULL -}; - -#endif diff --git a/programs/develop/libraries/microtar/microtar.h b/programs/develop/libraries/microtar/microtar.h deleted file mode 100644 index 9c6d39c20..000000000 --- a/programs/develop/libraries/microtar/microtar.h +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Copyright (c) 2017 rxi - * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the MIT license. See `microtar.c` for details. - */ - -#ifndef MICROTAR_H -#define MICROTAR_H - -#ifdef __cplusplus -extern "C" -{ -#endif - -#include -#include - -#define MTAR_VERSION "0.1.0" - -enum { - MTAR_ESUCCESS = 0, - MTAR_EFAILURE = -1, - MTAR_EOPENFAIL = -2, - MTAR_EREADFAIL = -3, - MTAR_EWRITEFAIL = -4, - MTAR_ESEEKFAIL = -5, - MTAR_EBADCHKSUM = -6, - MTAR_ENULLRECORD = -7, - MTAR_ENOTFOUND = -8 -}; - -enum { - MTAR_TREG = '0', - MTAR_TLNK = '1', - MTAR_TSYM = '2', - MTAR_TCHR = '3', - MTAR_TBLK = '4', - MTAR_TDIR = '5', - MTAR_TFIFO = '6' -}; - -typedef struct { - unsigned mode; - unsigned owner; - unsigned size; - unsigned mtime; - unsigned type; - char name[100]; - char linkname[100]; -} mtar_header_t; - - -typedef struct mtar_t mtar_t; - -#pragma pack(push,1) -struct mtar_t { - int (*read)(mtar_t *tar, void *data, unsigned size); - int (*write)(mtar_t *tar, const void *data, unsigned size); - int (*seek)(mtar_t *tar, unsigned pos); - int (*close)(mtar_t *tar); - void *stream; - unsigned pos; - unsigned remaining_data; - unsigned last_header; -}; -#pragma pack(pop) - -const char* mtar_strerror(int err); - -int mtar_open(mtar_t *tar, const char *filename, const char *mode); -int mtar_close(mtar_t *tar); - -int mtar_seek(mtar_t *tar, unsigned pos); -int mtar_rewind(mtar_t *tar); -int mtar_next(mtar_t *tar); -int mtar_find(mtar_t *tar, const char *name, mtar_header_t *h); -int mtar_read_header(mtar_t *tar, mtar_header_t *h); -int mtar_read_data(mtar_t *tar, void *ptr, unsigned size); - -int mtar_write_header(mtar_t *tar, const mtar_header_t *h); -int mtar_write_file_header(mtar_t *tar, const char *name, unsigned size); -int mtar_write_dir_header(mtar_t *tar, const char *name); -int mtar_write_data(mtar_t *tar, const void *data, unsigned size); -int mtar_finalize(mtar_t *tar); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/programs/develop/libraries/microtar/mtar.inc b/programs/develop/libraries/microtar/mtar.inc deleted file mode 100644 index 210f99eeb..000000000 --- a/programs/develop/libraries/microtar/mtar.inc +++ /dev/null @@ -1,38 +0,0 @@ -MTAR_ESUCCESS = 0 -MTAR_EFAILURE = -1 -MTAR_EOPENFAIL = -2 -MTAR_EREADFAIL = -3 -MTAR_EWRITEFAIL = -4 -MTAR_ESEEKFAIL = -5 -MTAR_EBADCHKSUM = -6 -MTAR_ENULLRECORD = -7 -MTAR_ENOTFOUND = -8 - -MTAR_TREG = '0' -MTAR_TLNK = '1' -MTAR_TSYM = '2' -MTAR_TCHR = '3' -MTAR_TBLK = '4' -MTAR_TDIR = '5' -MTAR_TFIFO = '6' - -struct mtar_header_t - mode dd ? - owner dd ? - size dd ? - mtime dd ? - type dd ? - name rb 100 - linkname rb 100 -ends - -struct mtar_t - read_func dd ? - write_func dd ? - seek_func dd ? - close_func dd ? - stream dd ? - pos dd ? - remaining_data dd ? - last_header dd ? -ends \ No newline at end of file diff --git a/programs/other/GameHack/Makefile b/programs/other/GameHack/Makefile deleted file mode 100755 index c9b6511f2..000000000 --- a/programs/other/GameHack/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -KTCC_DIR=../../develop/ktcc/trunk - -NAME=gamehack - -KTCC=$(KTCC_DIR)/bin/kos32-tcc -KPACK=kpack - -SRC=gh_shell.c -CFLAGS=-I $(KTCC_DIR)/libc/include -LIBS = -lck - -all: - $(KTCC) $(CFLAGS) $(SRC) $(LIBS) -o $(NAME) - $(KPACK) $(NAME) -clean: - rm $(NAME) diff --git a/programs/other/GameHack/gh_core.c b/programs/other/GameHack/gh_core.c deleted file mode 100644 index a49a4cd4e..000000000 --- a/programs/other/GameHack/gh_core.c +++ /dev/null @@ -1,72 +0,0 @@ -int PID=-1; - -int kdebugger_write(unsigned ID, unsigned n, unsigned addr, unsigned* buff) -{ - int num; - __asm__ __volatile__( - "int $0x40" - :"=a"(num) - :"a"(69), "b"(7), "c"(ID), "d"(n),"S"(addr),"D"(buff) - ); - return num; -} - -int kdebugger_read(unsigned ID, unsigned n, unsigned addr, unsigned* buff) -{ - int num; - __asm__ __volatile__( - "int $0x40" - :"=a"(num) - :"a"(69), "b"(6), "c"(ID), "d"(n),"S"(addr),"D"(buff) - ); - return num; -} - -void kdebugger_pause(unsigned ID) -{ - __asm__ __volatile__( - "int $0x40" - ::"a"(69), "b"(4), "c"(ID) - ); -} - -void kdebugger_play(unsigned ID) -{ - __asm__ __volatile__( - "int $0x40" - ::"a"(69), "b"(5), "c"(ID) - ); -} - -void kdebugger_disconnect(unsigned ID) -{ - __asm__ __volatile__( - "int $0x40" - ::"a"(69), "b"(3), "c"(ID) - ); -} - -int load_game(char *app_name, char *args) -{ - #pragma pack(push, 1) - struct file_op_t - { - unsigned fn; - unsigned flags; - char* args; - unsigned res1, res2; - char zero; - char* app_name __attribute__((packed)); - } file_op; - #pragma pack(pop) - - memset(&file_op, 0, sizeof(file_op)); - file_op.fn = 7; - file_op.flags = 1; - file_op.args = args; - file_op.app_name = app_name; - - register int val; - asm volatile ("int $0x40":"=a"(val):"a"(70), "b"(&file_op)); - return val; -} diff --git a/programs/other/GameHack/gh_shell.c b/programs/other/GameHack/gh_shell.c deleted file mode 100644 index bb32a97b1..000000000 --- a/programs/other/GameHack/gh_shell.c +++ /dev/null @@ -1,96 +0,0 @@ -#include -#include -#include -#include -#include -#include "gh_core.c" - -#define CMD_LEN 255 -#define TITLE "GameHack 1.0 ALPHA " - -char cmd_line[CMD_LEN]; -char cmd_line_tmp[CMD_LEN]; - -void notify_show(char *text) -{ - start_app("/sys/@notify", text); -} - -void cmd_processing() -{ - strcpy(cmd_line_tmp, cmd_line); - char *cmd = strtok(cmd_line_tmp, " \n"); - if(!strcmp(cmd, "pause")){ - kdebugger_pause(PID); - } - else if(!strcmp(cmd, "play")){ - kdebugger_play(PID); - } - else if(!strcmp(cmd, "exit")){ - exit(0); - } - else if(!strcmp(cmd, "write")){ - unsigned addr=0; - int val =0; - if(sscanf(cmd_line, "%s %x %d %d",cmd_line, &addr, &val, &val)==3){ - if(kdebugger_write(PID, sizeof(int), addr, &val)==-1){ - puts("Memory write error!"); - } - }else{ - puts("Invalid arguments!"); - } - } - else if(!strcmp(cmd, "read")){ - unsigned addr=0; - int val =0; - if(sscanf(cmd_line, "%s %x %x",cmd_line, &addr, &addr)==2){ - if(kdebugger_read(PID, sizeof(int), addr, &val)==-1){ - puts("Memory read error!"); - } - printf("0x%.8X: %d\n", addr, val); - }else{ - puts("Invalid arguments!"); - } - } - - - else if(!strcmp(cmd, "help")) - { - puts("Commands:"); - puts(" write [addres] [value] - Write DWORD value by address."); - puts(" read [addres] [value] - Read DWORD value by address."); - puts(" pause - Suspend the game (process)." ); - puts(" play - Resume running the game(process)."); - puts(" find [value] - Search for DWORD value in memory(VIP)."); - } - else if(!strcmp(cmd, "find")) - { - puts("Not yet implemented ..."); - } - else if(cmd != NULL){ - puts("Unknown command!"); - } -} - -int main(int argc, char* argv[]) -{ - if (argc!=2 ){ - notify_show("'No game selected!' -E"); - exit(0); - } - con_init_console_dll(); - con_set_title(TITLE); - PID = load_game(argv[1], NULL); - PID = 2; - if(PID<0){ - notify_show("'Game not loaded!' -E"); - exit(0); - } - kdebugger_play(PID); - while (1){ - printf("GameHack> "); - con_gets(cmd_line, CMD_LEN); - cmd_processing(); - memset(cmd_line, '\n', CMD_LEN); - } -} \ No newline at end of file diff --git a/programs/other/TEAtool/Makefile b/programs/other/TEAtool/Makefile deleted file mode 100755 index 22cc145d8..000000000 --- a/programs/other/TEAtool/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -KTCC_DIR=../../develop/ktcc/trunk - -NAME=teatool - -KTCC=$(KTCC_DIR)/bin/kos32-tcc -KPACK=kpack - -SRC=teatool.c -CFLAGS=-nostdinc -I $(KTCC_DIR)/libc/include -LFLAGS=-nostdlib -L $(KTCC_DIR)/bin/lib $(KTCC_DIR)/bin/lib/start.o -LIBS = -lck - -all: - $(KTCC) $(CFLAGS) $(LFLAGS) $(SRC) $(LIBS) -o $(NAME) - $(KPACK) $(NAME) - -clean: - rm $(NAME) diff --git a/programs/other/TEAtool/lang_en.c b/programs/other/TEAtool/lang_en.c deleted file mode 100644 index 00676a168..000000000 --- a/programs/other/TEAtool/lang_en.c +++ /dev/null @@ -1,49 +0,0 @@ -#include -#define INVALID_ARG "Invalid arguments! Use the help: -h!\n" -#define KEY_RECORD_IN_FILE "The key is recorded in file: %s\n" -#define INCORRECT_FILE "Error! Incorrect file:'%s'\n" -#define NO_KEY_OR_KEYFILE "No key or key file!\n" -#define INVALID_KEY_FORMAT "Invalid key format!\n" -#define FILE_NOT_FOUND "File '%s' not found!\n" -#define DATA_DECRYPT "Data from file: %s successfully DECRYPTED to file: %s\n" -#define DATA_ENCRYPT "Data from file: %s successfully ENCRYPTED to file: %s\n" -#define FILE_DECRYPTION "File decryption...\n" -#define FILE_ENCRYPTION "File encryption...\n" -#define RECORD_DECRYPT_DATA "Record decryped data...\n" -#define LOAD_IN_RAM "Loading a '%s' file in RAM...\n" -#define RECORD_ENCRYPT_DATA "Record encryped data...\n" -#define MEMORY_ERROR "To big file, not enough memory! Use normal mode." - -void show_help() -{ - puts("Usage: \nTEAtool [infile] [outfile] [arguments]\n"); - puts("Arguments:"); - puts("-e [mode] Encrypt file in 'speed' or 'normal' mode."); - puts("-d [mode] Decrypt file in 'speed' or 'normal' mode."); - puts(" In 'speed' mode, file is entirely loaded into RAM."); - puts(" In 'normal' mode, file is loaded with parts in RAM."); - puts("-k [key] 128bit-key in hex format."); - puts("-K [keyfile] Use key from file."); - puts("-r [key] [keyfile].key Key entry to key file."); - puts("-h This reference"); - puts("-a About the program \n"); -} - -void show_about() -{ - puts("\n"); - puts("-----------TEAtool-ENG-----------\n"); - printf(" ) ( Version: \n"); - printf(" ( ) ) 1.8-stable \n"); - printf(" ) ( ( \n"); - printf(" _______)_ Author: \n"); - printf(" .-'---------| turbocat2001 \n"); - printf("( C|/////////| \n"); - printf(" '-./////////| Tester: rgimad \n"); - printf(" '_________' \n"); - printf(" '-------'' License: GPLv3 \n\n"); - printf(" Powered by: \n"); - printf(" Tiny Encryption Algorithm. \n\n"); -} - - diff --git a/programs/other/TEAtool/readme.txt b/programs/other/TEAtool/readme.txt deleted file mode 100644 index 4db855324..000000000 --- a/programs/other/TEAtool/readme.txt +++ /dev/null @@ -1,9 +0,0 @@ -Encrypting the "in.file" file with the "FFAB1100C176001F1ADDB8E792001EA5" key in normal mode: - # teatool in.file out.file -k FFAB1100C176001F1ADDB8E792001EA5 -e normal -Encrypting the "in.file" file with the key-file "my.key" in speed mode:* - # teatool in.file out.file -K my.key -e speed -Writing the "FFAB1100C176001F1ADDB8E792001EA5" key to the key-file "my.key"* - # teatool -r FFAB1100C176001F1ADDB8E792001EA5 my - - - diff --git a/programs/other/TEAtool/tea.c b/programs/other/TEAtool/tea.c deleted file mode 100644 index be5e4e888..000000000 --- a/programs/other/TEAtool/tea.c +++ /dev/null @@ -1,62 +0,0 @@ - -#include - -void TEA_encrypt (uint32_t block[2], uint32_t key[4]) -{ - /* set up */ - uint32_t v0 = block[0]; - uint32_t v1 = block[1]; - uint32_t sum = 0; - uint32_t i; - - /* a key schedule constant */ - uint32_t delta = 0x9e3779b9; - - /* cache key */ - uint32_t k0 = key[0]; - uint32_t k1 = key[1]; - uint32_t k2 = key[2]; - uint32_t k3 = key[3]; - - /* basic cycle start */ - for (i = 0; i < 32; i++) - { - sum += delta; - v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1); - v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3); - } - /* end cycle */ - - block[0] = v0; - block[1] = v1; -} - -void TEA_decrypt (uint32_t* block, uint32_t* key) -{ - /* set up */ - uint32_t v0 = block[0]; - uint32_t v1 = block[1]; - uint32_t sum = 0xC6EF3720; - uint32_t i; - - /* a key schedule constant */ - uint32_t delta = 0x9e3779b9; - - /* cache key */ - uint32_t k0 = key[0]; - uint32_t k1 = key[1]; - uint32_t k2 = key[2]; - uint32_t k3 = key[3]; - - /* basic cycle start */ - for (i = 0; i < 32; i++) - { - v1 -= ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3); - v0 -= ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1); - sum -= delta; - } - /* end cycle */ - - block[0] = v0; - block[1] = v1; -} diff --git a/programs/other/TEAtool/teatool.c b/programs/other/TEAtool/teatool.c deleted file mode 100755 index 2c63e4fc2..000000000 --- a/programs/other/TEAtool/teatool.c +++ /dev/null @@ -1,303 +0,0 @@ -/* Copyright (C) 2019-2021 Logaev Maxim (turbocat2001), GPLv2 */ - -#include -#include -#include -#include -#include - -#include "lang_en.c" -#include "tea.c" - -#define ENCRYPT 1 -#define DECRYPT 2 - -typedef unsigned char flag; -uint32_t key[4]; - -long size_orig_file(FILE* file) -{ - fseek(file, 0, SEEK_END); - long size = ftell(file); - fseek(file, 0, SEEK_SET); - return size; -} - -long size_xcrypt_file(FILE* file) -{ - fseek(file, 0, SEEK_END); - long size = ftell(file); - fseek(file, 0, SEEK_SET); - if(size%8==0) { - return size; - }else{ - return (size/8+1)*8; - } -} - -void xcrypt_file_speed(char *in_file, char* out_file, char arg) -{ - FILE *input, *output; - - if((input = fopen(in_file,"rb"))==NULL){ - printf(FILE_NOT_FOUND, in_file); - exit(1); - } - - output = fopen(out_file,"wb"); - - long size_f=size_xcrypt_file(input); - uint8_t size_diff; - size_diff=(uint8_t)(size_f-size_orig_file(input)); - uint32_t *buff; - buff=malloc(size_f); - if(!buff) { - puts(MEMORY_ERROR); - exit(-1); - } - - if(arg==ENCRYPT){ - printf(LOAD_IN_RAM,in_file); - fread(buff, 1,size_f, input); - printf(FILE_ENCRYPTION); - - for(long i=0; i<(size_f/4); i=i+2) - { - TEA_encrypt(buff+i,key); - } - - printf(RECORD_ENCRYPT_DATA); - fwrite(&size_diff,1, 1, output); - fwrite(buff,1,size_f, output); - fclose(input); - fclose(output); - printf(DATA_ENCRYPT,in_file,out_file); - exit(0); - } - - else if(arg==DECRYPT){ - long size_f=size_orig_file(input); - printf(LOAD_IN_RAM,in_file); - fread(&size_diff,1,1,input); - fread(buff,1,size_f-1, input); - printf(FILE_DECRYPTION); - - for(long i=0; i=8){ - fwrite(temp_block,sizeof(uint32_t),2,output); - }else{ - fwrite(temp_block,1,size_f,output); - } - - size_f=size_f-8; - - if(size_f<0){ - size_f=0; - } - } - - fclose(input); - fclose(output); - printf(DATA_DECRYPT,in_file,out_file); - exit(0); - } -} - - - -void str_to_strkey(char *str, char str_key[4][9]) -{ - int count=0; - for(int i=0; i<4; i++) - { - int j=0; - while (j<8) - { - str_key[i][j]=str[count]; - count++; - j++; - } - } -} - -int valid_key(char *str) -{ - int count=0; - char hex[]={"abcdefABCDEF0123456789"}; - for(int i=0; i<32; i++) - { - if(strchr(hex,str[i])!=NULL){ - count++; - } - } - if(count==32){return 1;} - else{ return 0;} -} - - -void key_con_read(char *str) -{ - char str_key[4][9]; - if(valid_key(str)&&(strlen(str)==32)) - { - for(int i=0; i<4; i++){ - str_to_strkey(str, str_key); - key[i]=(uint32_t)strtol(str_key[i],NULL,16); - } - }else{ - printf(INVALID_KEY_FORMAT); - exit(-1); - } -} - -void key_file_read(char *key_file) -{ - FILE *keyfile; - if((keyfile = fopen(key_file,"rb"))==NULL){ - printf(FILE_NOT_FOUND, key_file); - exit(-1); - } - - if(size_orig_file(keyfile)==16) { - fread(key,sizeof(uint32_t),4, keyfile); - }else{ - printf(INVALID_KEY_FORMAT); - exit(-1); - } - fclose(keyfile); -} - - -void findopt(int argc, char *argv[],char *in_file, char *out_file) -{ - char found=0; - for(int j=3; j