All Projects → trailofbits → Appjaillauncher Rs

trailofbits / Appjaillauncher Rs

Licence: mit
AppJailLauncher in Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Appjaillauncher Rs

See
Sandboxed Execution Environment
Stars: ✭ 770 (+775%)
Mutual labels:  sandbox
Screeen
Observe user screen shot event in macOS.
Stars: ✭ 29 (-67.05%)
Mutual labels:  sandbox
Carc.in
Compile & run code in
Stars: ✭ 62 (-29.55%)
Mutual labels:  sandbox
Stagy
Stagy is a tool for quick deployment of staging environments.
Stars: ✭ 19 (-78.41%)
Mutual labels:  sandbox
Wakxy
Wakxy is a Wakfu packet sniffer (MITM). Written in C++/Qt with Javascript scripting support.
Stars: ✭ 12 (-86.36%)
Mutual labels:  sandbox
Norimaci
Norimaci is a simple and lightweight malware analysis sandbox for macOS
Stars: ✭ 37 (-57.95%)
Mutual labels:  sandbox
Ksm
A fast, hackable and simple x64 VT-x hypervisor for Windows and Linux. Builtin userspace sandbox and introspection engine.
Stars: ✭ 673 (+664.77%)
Mutual labels:  sandbox
Jd4
Judging daemon for programming contests
Stars: ✭ 85 (-3.41%)
Mutual labels:  sandbox
Thrive
The main repository for the development of the evolution game Thrive.
Stars: ✭ 874 (+893.18%)
Mutual labels:  sandbox
Sablejs
🏖️ The safer and faster ECMA5.1 interpreter written by JavaScript
Stars: ✭ 60 (-31.82%)
Mutual labels:  sandbox
Deer Executor
An executor for online judge —— 基于Go语言实现的代码评测工具
Stars: ✭ 23 (-73.86%)
Mutual labels:  sandbox
Fiber
Distributed Computing for AI Made Simple
Stars: ✭ 866 (+884.09%)
Mutual labels:  sandbox
Componentfixture
🛠️Interactive sandox playground for vue components
Stars: ✭ 44 (-50%)
Mutual labels:  sandbox
Tridentsandbox
An In-Browser Scripting IDE for HTML5/Javascript
Stars: ✭ 5 (-94.32%)
Mutual labels:  sandbox
Junest
The lightweight Arch Linux based distro that runs upon any Linux distros without root access
Stars: ✭ 1,134 (+1188.64%)
Mutual labels:  sandbox
Buildxl
Microsoft Build Accelerator
Stars: ✭ 676 (+668.18%)
Mutual labels:  sandbox
Compilebox
Compile and run user-submitted code in a docker based sandbox.
Stars: ✭ 951 (+980.68%)
Mutual labels:  sandbox
Sandboxed Api
Generates sandboxes for C/C++ libraries automatically
Stars: ✭ 1,260 (+1331.82%)
Mutual labels:  sandbox
Unjailme
A sandbox escape based on the proof-of-concept (CVE-2018-4087) by Rani Idan (Zimperium)
Stars: ✭ 73 (-17.05%)
Mutual labels:  sandbox
Postman Sandbox
Sandbox for Postman Scripts to run in Node.js or browser
Stars: ✭ 47 (-46.59%)
Mutual labels:  sandbox

AppJailLauncher (Rust)

AppJailLauncher is akin to a simple version of xinetd for Windows but with sandboxing enabled for the spawned child processes. The sandboxing is accomplished via AppContainers. This project is a rewrite of an earlier version in C.

Tested Platforms

  • Windows 10 Professional x64 (build 14393.1198)
  • Windows 10 Professional x64 (build 15063.296)

Supported Platforms

  • Windows 8 and above
  • Windows Server 2012 and above

Creating Challenges

There is an example challenge template in example/ that can be built using CMake.

To build the example challenge:

> cd example
> mkdir build
> cd build
> cmake ..
> cmake --build .

After building the example challenge, you serve the challenge via the following command in the root of the repository:

> .\target\debug\appjaillauncher-rs.exe run --key .\unittest_support\pub\key2.txt .\example\build\Debug\example_challenge.exe

Frequently Asked Questions

In the example challenge, what does InitChallenge do?

The InitChallenge function will create an timer that will terminate the process after a specified amount of milliseconds and set stdout buffering options to work better with network sockets. The first part is essential for countering griefing operations directed at your challenges by malicious actors.

I think I broke something. Is there a way to get more logging?

AppJailLauncher uses env_logger for logging. This means you can get more debug logging by setting the RUST_LOG environment variable to debug. For example, in PowerShell, the following command would be sufficient:

> $env:RUST_LOG="debug"

How do I target x86 Windows from x64 Windows with Rust?

rustup should be part of the default Rust install. First, use rustup to add the new x86 target:

> rustup target add i686-pc-windows-msvc

After installation, add --target=i686-pc-windows-msvc to the cargo build, cargo test commands to build for x86.

I have a complex ACL setup for my key, why won't things work?

Our ACL implementation is simple and should work on most configurations. However, it is entirely possible that for complex ACL setups, this will not work as intended. If you run into any issues, file an issue.

cargo build complains that msvc targets depend on msvc linker but "link.exe" was not found

You need to install the Visual C++ 2015 Build Tools or newer.

Development

Install Rust, then:

Build AppJailLauncher: cargo build

Run the unit tests: cargo test

Authors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].