All Projects → zv → SHA3ImplementedInsideofaRARfile

zv / SHA3ImplementedInsideofaRARfile

Licence: other
The Keccak hash algorithm implemented inside of a RAR archive using the RAR filter assembly language

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to SHA3ImplementedInsideofaRARfile

crazy-canvas
Simple canvas playground
Stars: ✭ 12 (-42.86%)
Mutual labels:  fun
StarWarsArrays.jl
Arrays indexed as the order of Star Wars movies
Stars: ✭ 93 (+342.86%)
Mutual labels:  fun
DossyTextLabel
A subclass of UILabel reminiscent of Strong Bad's faithful Tandy 400.
Stars: ✭ 75 (+257.14%)
Mutual labels:  fun
perseverance-parachute-generator
Generate your own Perseverance parachute-style secret codes!
Stars: ✭ 17 (-19.05%)
Mutual labels:  fun
observations
Beobachtungen und Betrachtungen rund um das Informatik-Studium an der HSLU
Stars: ✭ 45 (+114.29%)
Mutual labels:  fun
FunUtils
Some codes i wrote to help me with me with my daily errands ;)
Stars: ✭ 43 (+104.76%)
Mutual labels:  fun
map-replace.js
a VSCode extension that replace selected string with custom JavaScript function.
Stars: ✭ 25 (+19.05%)
Mutual labels:  fun
Drawing
Drawing and fill color
Stars: ✭ 37 (+76.19%)
Mutual labels:  fun
penney
Penney's Game
Stars: ✭ 14 (-33.33%)
Mutual labels:  fun
random-restaurant-generator
An Android app that queries Yelp's API for a random restaurant near you
Stars: ✭ 15 (-28.57%)
Mutual labels:  fun
soundboard
cross-platform desktop application to spice up your audio/video conferences
Stars: ✭ 50 (+138.1%)
Mutual labels:  fun
mango
A @discord bot that has lots of features 🥭
Stars: ✭ 22 (+4.76%)
Mutual labels:  fun
randmoji
Generate wacky Bitmoji avatars using the private API.
Stars: ✭ 17 (-19.05%)
Mutual labels:  fun
extreme-carpaccio
Slicing and coding game
Stars: ✭ 116 (+452.38%)
Mutual labels:  fun
hash-wasm
Lightning fast hash functions using hand-tuned WebAssembly binaries
Stars: ✭ 382 (+1719.05%)
Mutual labels:  keccak
libkeccak
[Basically feature complete] Keccak-family hashing library
Stars: ✭ 53 (+152.38%)
Mutual labels:  keccak
anime-scraper
[partially working] Scrape and add anime episode stream URLs to uGet (Linux) or IDM (Windows) ~ Python3
Stars: ✭ 21 (+0%)
Mutual labels:  fun
mediaforge
A Discord bot for editing and creating videos, images, GIFs, and more!
Stars: ✭ 45 (+114.29%)
Mutual labels:  fun
A-for-apple
No description or website provided.
Stars: ✭ 14 (-33.33%)
Mutual labels:  fun
honk-twitter-bot
A simple honk twitter bot that reply honk slash command
Stars: ✭ 19 (-9.52%)
Mutual labels:  fun

SHA3 in a RAR file

It's old hat now but NIST has settled on Keccak as the upcoming SHA-3 Hash function standard.

In celebration of keccak's standardization, here's an implementation based on the specification implementation Here that takes some arbitrary number of bytes and a size variable (pascal style!) and produces a Keccak-256 hash (64 bytes)

You can build it by updating the rarvmtools git submodule and make

RAR VM?

Believe it or not, RAR files can contain bytecode for a simple x86-like virtual machine called the RarVM. This is designed to provide filters (preprocessors) to perform some reversible transformation on input data to increase redundancy, and thus improve compression.

For example, one filter (likely inspired by LZX, an earlier scheme with a similar feature) is called "Intel E8 preprocessing", which is designed to increase redundancy in x86 code.

WinRAR includes around a dozen standard filters that improve compression of several common inputs, but surprisingly also allows new filters to be defined at runtime by archives!

(Find out more here -- http://blog.cmpxchg8b.com/2012/09/fun-with-constrained-programming.html)

How do I shot web?

Familiarity with x86 (and preferably intel assembly syntax) is basically required.

RarVM has 8 named registers, called r0 to r7. r7 is used as a stack pointer for stack related operations (such as push, call, pop, etc). However, as on x86, there are no restrictions on setting r7 to whatever you like, although if you do something stack related it will be masked to fit within the address space for the duration of that operation.

A RarVM program may execute for at most 250,000,000 instructions, at which point it will be terminated abnormally. However there are no limits on the number of programs included in a file, so you must simply split your task into multiple 250M cycle chunks. If the instruction pointer ever moves outside the defined code segment, the program is considered to have completed successfully, and is terminated normally.

Your program will execute with a 0x40000 byte address space, and has access to 3 status flags : ZF (Zero), CF (Carry) and SF (Sign) which can be accessed via the conditional branch instructions, or via pushf/popf (as on x86).

Test vectors are provided in the source code to prove compliance wherever possible.

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