The dependent executable should appear before the libraries it depends on, as order is important (See 1).
- Statically typed language.
- Outputs bytecode that runs on the JVM (like Java).
All of them are similar to CMake but for Java/Kotlin:
- Gradle: Build system for Android used for compilation, packaging (APK), and for dependency management. Preferred for Kotlin projects.
An instrumentation tool for x86, Android..., that targets binary applications.
- To debug live processes.
- To execute your script inside another process.
- Frida is used for dynamic reverse engineering (i.e. analyze a program while software is running).
- Static reverse engineering software in contrast take binaries to dissect them.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <limits.h> | |
#include <string.h> | |
#include <stdbool.h> | |
#include <gd.h> | |
#include "utils.h" | |
/** | |
* Print password written beforehand on image with steganography_write.c | |
* - GD documentation: https://libgd.github.io/manuals/2.1.1/files/preamble-txt.html |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <gd.h> | |
// C doesn't allow variable length arrays (even using a constant) | |
#define N_CORNERS 3 | |
typedef struct { | |
int x; | |
int y; | |
} Point; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdint.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <math.h> | |
/** | |
* Parse bitmap image to find RGB values at given row and column | |
* Bitmap format: https://en.wikipedia.org/wiki/BMP_file_format | |
* Tested input bitmap image saved in Gimp without color space information and in 24bits format |
- Libraries:
Userland/Libraries/{LibC, LibGUI...}
- Games:
Userland/Games/{Snake, Solitaire...}
- Applications:
Userland/Applications/{Calculator, Calendar...}
SerenityOS is built using CMake and Ninja.
- Target: output files of the build process (executables, libraries).
- Use Ninja with CMake:
cmake -G Ninja
(generates abuild.ninja
file) - Build target:
ninja
- Breadboard: Rectangular plastic board with tiny holes to insert electronic components in them.
- Jump wire: Electrical wire used to interconnect components.
- Transistor: Used to amplify current, switch on/off the flow of current, and to construct logic gates.
- Diodes: Allows the flow of current in one direction & blocks the other direction (like a valve).
- Resistors: Limits the flow of current.
- Capacitor: Stores and releases electricity (like a temporary battery).
- LED: emits light when current flows through it.
- Arduino devices:
- Sensors: Used to monitor physical phenomena (e.g. temperature, humidity, motion, light...).
Below some notions about USB that could be useful to access USB devices programatically with [libusb]. For more details refer to [USB2.0 specification][usb2-specification].
- Host: Computer.
- USB device: Peripheral connected to computer via USB.
- Hub: USB device providing additionnal connections to the USB.
- IRQ (Interrupt request): a hardware signal from device requesting attention from host.
- Pipe: Logical abstraction for associating device's endpoint and host's software. There two types of pipes:
- Stream pipe: data no USB-defined structure.
- Message pipe: data has a USB-defined structure.
NewerOlder