Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Command line interface for building, running, debugging, and disassembling the ArchAdept training course example projects.
archadeptcli
- ArchAdept Command Line InterfaceCommand line interface for building, running, debugging, and disassembling the ArchAdept training course example projects.
Many of the lessons on our training courses involve practical coding exercises for you to complete, or example code snippets for you to modify and run yourself on simulated hardware.
One challenge often faced by newcomers to bare metal ARM architecture development like this is getting all of the necessary tools installed and configured, especially when accounting for all the differences between the Mac, Linux, and Windows operating systems.
The ArchAdept CLI solves this issue by leveraging Docker containers "under-the-hood" to provide a consistent environment that is preloaded and preconfigured with all of the tools required to build, run, debug, and disassemble the ArchAdept training course example projects, while abstracting away all of the complexities of managing the actual Docker containers themselves.
Tested as working on:
Operating System | Version | x86_64 | arm64 |
---|---|---|---|
Mac | macOS Sonoma 14.1 | TODO | 🟢 |
Windows 10 | Windows 10 Enterprise 22H2 | 🟢 | N/A |
Windows 11 | TODO | TODO | TODO |
Linux | Ubuntu 22.04 LTS | 🟢 | TODO |
Click to expand for your operating system:
Install Docker Desktop by following the instructions at: https://www.docker.com/products/docker-desktop/
Install Homebrew by following the instructions at: https://brew.sh
Install Python 3.8 or newer via Homebrew:
$ brew search python3
$ brew install python@3.12 # Chosen from results of `brew search python3`
pipx
via Homebrew:$ brew install pipx
$PATH
:$ pipx ensurepath
pipx
:# From a new terminal window!
$ pipx install archadeptcli
$ archadept --help
$ pipx upgrade archadeptcli
[!TIP] Run
archadept pull
now to download the backend Docker image ahead of time; this may take a few minutes to complete.
Proceed to usage.
Install Docker Desktop by following the instructions at: https://www.docker.com/products/docker-desktop/
Install Python 3.8 or newer from https://www.python.org/downloads/windows/
[!WARNING] We strongly recommend not using the Microsoft Store to install Python 3; please download and install from the official Python website.
Furthermore, during installation, please ensure you tick the checkbox to add Python to your
$PATH
.
pipx
via pip
:PS> py -3 -m pip install --user pipx
pipx
correctly update your $PATH
:PS> py -3 -m pipx ensurepath
pipx
:# From a new terminal window!
PS> py -3 -m pipx install archadeptcli
PS> archadept --help
PS> py -3 -m pipx upgrade archadeptcli
[!TIP] Run
archadept pull
now to download the backend Docker image ahead of time; this may take a few minutes to complete.
Proceed to usage.
Install Docker Desktop by following the instructions at: https://www.docker.com/products/docker-desktop/
Use your distribution's package manager to check the installed version of
Python 3, for example on Ubuntu using apt
:
$ apt show python3 | grep Version
Version: 3.10.6-1~22.04
apt
:$ sudo apt upgrade python3
pipx
via pip
:$ python3 -m pip install --user pipx
pipx
correctly update your $PATH
:$ python3 -m pipx ensurepath
pipx
:# From a new terminal window!
$ python3 -m pipx install archadeptcli
$ archadept --help
$ python3 -m pipx upgrade archadeptcli
[!TIP] Run
archadept pull
now to download the backend Docker image ahead of time; this may take a few minutes to complete.
Proceed to usage.
The following commands are available:
Command | Description |
---|---|
make | Invoke an ArchAdept project Makefile. |
run | Run an ArchAdept project on a QEMU simulation of real hardware. |
debug | Attach debugger to an ArchAdept project running on a live QEMU simulation. |
pull | Pull the latest backend Docker image. |
prune | Cleanup any lingering Docker containers. |
make
usage: archadept make [-h] [-v] [-p PROJECT] [-i IMAGE] [-t TAG] [TARGET]
Invokes an ArchAdept example project Makefile.
options:
-h, --help show this help message and exit
-v enable logging verbose debug messages
command-specific options:
-p PROJECT path to the ArchAdept project (default: current directory)
-i IMAGE override Docker image repository (default: archadept/archadeptcli-backend)
-t TAG override Docker image tag (default: latest)
-S interleave source with disassembly (only available for 'dis' target)
-O {0,1,2,3} override project's default optimization level
command-specific positional arguments:
TARGET Makefile target from {all,clean,rebuild,dis,syms} (default: all)
The following targets are defined by all ArchAdept training course example project Makefiles:
all
builds the project.clean
deletes all of a project's build artifacts.rebuild
performs a clean build, equivalent to clean
followed by all
.dis
rebuilds the project, then disassembles it.syms
rebuilds the project, then dumps its symbol table.sects
rebuilds the project, then dumps its section headers.Note: The dis
target accepts the following optional flags:
-S
enables interleaving source code with the disassembly.run
usage: archadept run [-h] [-v] [-p PROJECT] [-i IMAGE] [-t TAG] [-s]
Runs an ArchAdept example project on a simulated Raspberry Pi 3b using QEMU.
options:
-h, --help show this help message and exit
-v enable logging verbose debug messages
command-specific options:
-p PROJECT path to the ArchAdept project (default: current directory)
-i IMAGE override Docker image repository (default: archadept/archadeptcli-backend)
-t TAG override Docker image tag (default: latest)
-s spawn GDB debug server and pause simulation at kernel entrypoint
To quit the QEMU simulation, press Ctrl-a
followed by x
.
debug
usage: archadept debug [-h] [-v] CONTAINER
Attaches an LLDB debug session to a live QEMU simulation started by `archadept run -s`.
options:
-h, --help show this help message and exit
-v enable logging verbose debug messages
command-specific positional arguments:
CONTAINER container in which the QEMU simulation is running, as given by `archadept run`
pull
usage: archadept pull [-h] [--version] [-v] [-i IMAGE] [-t TAG]
Pulls the latest ArchAdept CLI backend Docker image from DockerHub.
options:
-h, --help show this help message and exit
--version display archadeptcli version info
-v enable logging verbose debug messages
command-specific options:
-i IMAGE override Docker image repository (default: archadept/archadeptcli-backend)
-t TAG override Docker image tag (default: latest)
prune
usage: archadept prune [-h] [-v]
Cleans up any lingering Docker containers from previous ArchAdept CLI invocations.
options:
-h, --help show this help message and exit
-v enable logging verbose debug messages
FAQs
Command line interface for building, running, debugging, and disassembling the ArchAdept training course example projects.
We found that archadeptcli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.