RIOT is a free, open source operating system developed by a grassroots community gathering companies, academia, and hobbyists, distributed all around the world. RIOT supports most low-power IoT devices, microcontroller architectures (32-bit, 16-bit, 8-bit), and external devices. RIOT aims to implement all relevant open standards supporting an Internet of Things that is connected, secure, durable & privacy-friendly.
Supports over 200 boards based on AVR, MSP430, ESP8266, ESP32, RISC-V, ARM7 and ARM Cortex-M microcontrollers.
RIOT supports DTLS transport layer security, IEEE 802.15.4 encryption, Secure Firmware Updates (SUIT), multiple cryptographic packages, and crypto secure elements. Modular to adapt to application needs. We aim to support all common network technologies and Internet standards. RIOT is open to new developments and often an early adaptor in networking.
Develop in standard languages using standard tools. Modular. Real-time capable. Multithreaded with low overhead (less than 25 bytes/thread). Supports common and specialized protocols (6LoWPAN, IPv6, RPL, UDP, TCP, QUIC, MQTT-SN, CoAP, CBOR) and interfaces (BLE, LoRaWAN, 802.15.4, WLAN, CAN). Static and dynamic memory allocation.
Github: https://github.com/RIOT-OS/RIOT
Microwindows or Nano-X is a small graphical windowing system that implements both Win32 and Nano-X (X11-like) APIs for clipped graphics drawing in windows on Linux, Mac OS X, EMSCRIPTEN, Android and other platforms. It is Open Source and licenced under the the Mozilla Public License. For creating GUIs, the Nuklear immediate mode GUI, Win32 builtin controls, and TinyWidget's controls based on Nano-X are included. FLTK can be used with the X11 compability library NX11.
Some of the supported platforms are listed at the bottom on the left side. Next to that there are available screen drivers, mouse drivers and keyboard drivers. The Nano-X / Microwindows engine is the core code that implements all drawing and clipping, with the Win32 and Nano-X graphical windowing APIs implemented in seperately configurable layers on top of that. The engine is configured to use various OS platforms and associated screen, mouse and keyboard drivers, or bare hardware. The Nano-X API and the Win32 APIs are used to write applications. To provide close X11 compatibility the NX11 library can be built on top of the Nano-X API, which allows X11 applications to be linked and run without recompilation. The FLTK GUI toolkit runs based on NX11.
Generic satellite data processing software. Plug it into an SDR pipeline and it'll try to decode satellite images. Process and interpret in realtime or from recorded traffic. Can use either a local SDR or one shared across a network with rtl_tcp.
In the AUR. There's even a version for Android (in the F-Droid repo).
If the asciidoctor gives you any trouble (specifically, if it keeps saying it can't find itself), it means that it's been installed into the gem directory for a version of Ruby that you're not running (at least for Arch - it was in 3.2.0 but I had 3.0.0 installed).
LibreCUDA is a project aimed at replacing the CUDA driver API to enable launching CUDA code on Nvidia GPUs without relying on the proprietary CUDA runtime. It achieves this by communicating directly with the hardware via ioctls, (specifically what Nvidia's open-gpu-kernel-modules refer to as the rmapi), as well as QMD, Nvidia's MMIO command queue structure. LibreCUDA is capable of uploading CUDA ELF binaries onto the GPU and launching them via the command queue.
Still in the early stages, it looks like.
Generates a PAL, NTSC, SECAM, D/D2-MAC video signal from a video file, stream or test pattern. Also supports older 819, 405, 240 and 30 line standards, as well as the NASA Apollo video standards, both colour and mono. The input is any file type or URL supported by ffmpeg. The output can be to a file, HackRF, fl2k-supported VGA adaptors or any SDR
supported by SoapySDR.
It also supports:
This is a fork of https://github.com/fsphil/hacktv with some additional features added. Most of them are those which I personally use, though not necessarily warrant inclusions into original source.
progman is a simple X11 window manager modeled after the Windows 3 era. Can be themed (come with Hotdog Stand, of course). HiDPI support.
It looks like Windows v3.1. That's about it.
Another modern C compiler. It has a heap system that is a cross between an automatically-free-system and a reference-counted GC, and includes a collection library and a string library. In debug mode, we add as many memory-safe features as possible to the C language. It actively tries to detect memory leaks; it also makes the claim that it has no memory leaks, seeing as how it's self-hosted (which means that it can compile itself).
Requires clang, make, autoconf, valgrind, gdb, lldb, musl-dev (alpine linux), and pcre-dev.
Supports Linux, MacOS (Darwin), iSH (iPhone), termux (Android) userland (Android), and Raspberry Pi.
The syntax is almost the same as C language. It may not be POSIX compliant. If you do not #include <neo-c.h>
, you can use it as a normal C compiler.
Offloads rendering to the GPU for lower system load. Uses threaded rendering for absolutely minimal latency. Performance tradeoffs can be tuned. Graphics support in-window, with images and animations.
Ligatures and emoji, with per glyph font substitution supported.
Hyperlink support, with configurable actions. Control from scripts or the shell. Extend with Python ("kittens"). Programmable tabs, splits and multiple layouts to manage windows. Browse the entire history or the output from the last command comfortably in pagers and editors. Edit or download remote files in an existing SSH session.
Fastfetch is a neofetch-like tool for fetching system information and displaying them in a pretty way. It is written mainly in C, with performance and customizability in mind. Currently, Linux, Android, FreeBSD, MacOS and Windows 7+ are supported.
Can be configured fairly easily if you ask it to write a config file for you. It's surprisingly flexible.
OpenSMTPD is a FREE implementation of the server-side SMTP protocol as defined by RFC 5321, with some additional standard extensions. It allows ordinary machines to exchange emails with other systems speaking the SMTP protocol.
Started out of dissatisfaction with other implementations, OpenSMTPD is a fairly complete SMTP implementation.
OpenSMTPD is primarily developed by Gilles Chehade and Eric Faurot, with contributions from various OpenBSD hackers and members from other communities.
OpenSMTPD is part of the OpenBSD Project. The software is freely usable and re-usable by everyone under an ISC license.
A C implementation of tic-tac-toe in a single call to printf. Written for IOCCC 2020.
Duperemove is a simple tool for finding duplicated extents and submitting them for deduplication. When given a list of files it will hash their contents on an extent by extent basis and compare those hashes to each other, finding and categorizing extents that match each other. Optionally, a per-block hash can be applied for further duplication lookup. When given the -d option, duperemove will submit those extents for deduplication using the Linux kernel FIDEDUPRANGE ioctl, which only applies to btrfs and xfs.
Duperemove can store the hashes it computes in a 'hashfile'. If given an existing hashfile, duperemove will only compute hashes for those files which have changed since the last run. Thus you can run duperemove repeatedly on your data as it changes, without having to re-checksum unchanged data.
Requrires kernel v3.13 or later.
It's in the Arch extra package repository.
What is this? Well, it’s a guide to a bunch of concepts that you might see in networking. It’s not Network Programming in C—see Beej’s Guide to Network Programming1 for that. But it is here to help make sense of the terminology, and also to do a bit of network programming in Python.
Is it Beej’s Guide to Network Programming in Python? Well, kinda, actually. The C book is more about how C’s (well, Unix’s) network API works. And this book is more about the concepts underlying it, using Python as a vehicle.
USBRetro is an open source controller adapter firmware for converting USB controllers, keyboards, and mice to various retro consoles' native controller protocols.
PikaPython is an ultra-lightweight Python interpreter that runs with only 4KB of RAM, zero dependencies. It is ready to use out of the box without any configuration required and easy to extend with C.
Specifically supports a large number of microcontrollers.
This program wraps the libc localtime() and gmtime() functions to output the eternal September 1993 date. The epoch month is configurable.
Also supported is the never ending COVID 19 date.
Github: https://github.com/df7cb/sdate
This repository contains RCEd code extracted from Stuxnet binaries via disassembler and decompilers.
Many of you might find it wrong that both I and Mr. Amr Thabet copyrighted our code, I mean it is "stolen" code extracted from malware binaries, right?
I understand that it might look silly, but both of us spent hundreds, if not thousands, of hours between ASM code trying to figure out what was behind those binaries and we are providing the product of our hard work (i.e. readable C code) to you for free. It is not a simple job and it is not a short job, both our licenses are extremely permissive, you can do whatever you want with the code provided in this repository, the only thing I'd like to ask you is that our job get recognized and that when you use this code for analysis, blog posts, or university thesis you show us your support by giving us credit for what we did.
That's all. Thanks to all of you!
Did you know that Ghidra automatically detects and renders image and audio files embedded in a binary, including animated GIFs?
Open surprise in Ghidra for a nice surprise.
Build with make. I used CC=arm-linux-androideabi-gcc
for the heck of it.
This is jo, a small utility to create JSON objects. Jo tries to be clever about types and knows null, booleans, strings and numbers. It does arrays, and it pretty-prints on demand. If a key’s value begins with an opening brace ({) or a bracket ([]) we attempt to decode JSON from it; this allows jo to add objects or arrays (use -a!) to itself. jo also supports nested types natively.
In the AUR as jo-git.
Tigress is a diversifying virtualizer/obfuscator for the C language that supports many defenses against both static and dynamic reverse engineering and de-virtualization attacks. Tigress is a source-to-source transformer - it takes a C source program as input and returns a new C program as output. An obfuscation script (actually, a long sequence of command line options) describes the sequences of transformations that should be applied to the functions of the program.