All Projects → dr4k0nia → Origami

dr4k0nia / Origami

Licence: GPL-3.0 license
Packer compressing .net assemblies, (ab)using the PE format for data storage

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Origami

Upx Visual Studio
Compile UPX 3.96 and belong librarys on Visual Studio! Source also include LZMA, UCL and zlib ✒️
Stars: ✭ 96 (-13.51%)
Mutual labels:  packer, compressor
packer-windows
Windows Templates for Packer: Windows 11, Windows 10, Windows Server 2022, 2019, 2016, also with Docker
Stars: ✭ 1,116 (+905.41%)
Mutual labels:  packer
inbox-notifier
Gmail notifications instantly in the Windows taskbar
Stars: ✭ 55 (-50.45%)
Mutual labels:  net-framework
oracle-linux
Scripts, examples, and tutorials to get started with Oracle Linux
Stars: ✭ 77 (-30.63%)
Mutual labels:  packer
atomex.client.wpf
Atomic swap exchange client for OS Windows
Stars: ✭ 15 (-86.49%)
Mutual labels:  net-framework
learn-terraform-provisioning
Companion code repository for learning to provision Terraform instances with Packer & cloud-init
Stars: ✭ 56 (-49.55%)
Mutual labels:  packer
Krypton-Toolkit-Suite-Extended-NET-5.470
An extension to the Krypton Toolkit suite of controls for .NET framework 4.7
Stars: ✭ 51 (-54.05%)
Mutual labels:  net-framework
SimpleDialogs
💬 A simple framework to help displaying dialogs on a WPF app
Stars: ✭ 24 (-78.38%)
Mutual labels:  net-framework
dockpack
This project uses ansible, packer and vagrant to create an agile lab.
Stars: ✭ 13 (-88.29%)
Mutual labels:  packer
windows-docker-desktop-box
Vagrant box to test Docker Desktop with Linux/Windows containers
Stars: ✭ 17 (-84.68%)
Mutual labels:  packer
packer-plugin-amazon-ami-management
Packer post-processor plugin for Amazon AMI management
Stars: ✭ 95 (-14.41%)
Mutual labels:  packer
nvim-fennel-lsp-conjure-as-clojure-ide
Basic config to transform your NVIM in a powerful Clojure IDE using fennel, clojure-lsp and conjure.
Stars: ✭ 144 (+29.73%)
Mutual labels:  packer
kiteshield
Packer/Protector for x86-64 ELF binaries on Linux
Stars: ✭ 71 (-36.04%)
Mutual labels:  packer
ansible-role-cardano-node
Ansible role for the provisioning of Shelly Cardano binaries from source.
Stars: ✭ 20 (-81.98%)
Mutual labels:  packer
VIDEOconvertor
A stable and Fast telegram video convertor bot which can encode into different libs and resolution, compress videos, convert video into audio and other video formats, rename with thumbnail support, generate screenshot and trim videos.
Stars: ✭ 180 (+62.16%)
Mutual labels:  compressor
Compressor
An android image compression library.
Stars: ✭ 6,745 (+5976.58%)
Mutual labels:  compressor
nvim-config
My neovim config
Stars: ✭ 63 (-43.24%)
Mutual labels:  packer
oriedita
Oriedita (fork of Orihime) is an origami crease pattern editor and folding simulator.
Stars: ✭ 28 (-74.77%)
Mutual labels:  origami
local-hashicorp-stack
Local Hashicorp Stack for DevOps Development without Hypervisor or Cloud
Stars: ✭ 23 (-79.28%)
Mutual labels:  packer
Curtail
Simple & useful image compressor.
Stars: ✭ 246 (+121.62%)
Mutual labels:  compressor

Origami

Packer compressing .net assemblies, (ab)using the PE format for data storage

Usage

   Origami.exe <file>
   Origami.exe <file> <mode>

Available modes:

-dbg Use PE headers debug directory for data storage

-pes Use additional PE Section (.origami) for data storage

How it works

Origami takes an input module (payload) which gets compressed and encrypted. The payload is then inserted into a, newly created, stub module along with a runtime loader for payload extraction. Depending on the chosen mode the payload is either placed in a new section along side the stubs metadata or hidden in the debug data entries of the stub. The new loader uses a direct pointer (VirtualAddress) to the payloads location, instead of traversing the PE header at runtime. To make the direct access possible I utilize Base Relocations and a customized module building routine in AsmResolver.

Some improvements made in version 2:

  • NET Core support
  • Costura support
  • Simplified loader

This blog post is based on an older release of origami which uses a different runtime and packing process. I will write an updated blog post when I find the time
For a detailed explanation of the stub code check out my blog post

Dependencies

Logo by icons8

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].