Giter VIP home page Giter VIP logo

lawndoc / jaws Goto Github PK

View Code? Open in Web Editor NEW
232.0 5.0 9.0 1.68 MB

Jaws is an invisible programming language! Inject invisible code into other languages and files! Created for security research -- see blog post

Home Page: https://www.palehat.net/jaws-research/

License: GNU General Public License v3.0

Makefile 3.14% Lex 1.49% Yacc 20.28% Roff 0.23% C 74.86%
programming-language flex-bison compiler virtual-machine security-research malware-research interpreter interpreted-programming-language polyglot c-programming

jaws's Issues

Header not complex enough

I was trying to concatenate jaws code to the end of an elf binary for a CTF, but I ran into an issue where a false header was being picked up in the binary before it got to the actual jaws code.

To decrease the likelihood of this happening when injecting jaws into various files, I might need to consider making the header more complex/unique. The easiest way would just be to make it reasonably longer with additional spaces and tabs.

Definitely a breaking change, but jaws isn't that popular so it's not a huge deal... I'll be thinking about it.

is the premise true?

First off thank you, this seems like very interesting research!

Hope these questions doesn't come off as rude:

The research behind Jaws aims to build awareness that unknown interpreters can be dangerous.

but that would require said VM to be actually installed on the target machine in the first place?

Since Jaws code is composed entirely of whitespace characters, it can easily coexist with other programming languages to create polyglot code.

Since most languages have code formatters and linters, some even auto format on save can it really survive?

then you have whitespace sensitive languages such as Python that casts doubt on this premise?

also note: under emacs one can use the M-x fixup-whitespace

Add an extractor to the VM

Add the capability to dump interpreted instructions back into their own file, effectively making an extractor that can pull raw Jaws code out of any type of file.

Add a debugger

Add a debugger to Jaws to step through interpretation or enter the debugger when an error occurs. The debugger should be able to see what instruction the interpreter is on, the data on the stack, and the data on the heap.

Create LLVM backend for Jaws

This is probably going to require the creation of a separate git repo, but I'm just putting in here for remembering later.

The end goal is to be able to translate C code to Jaws.

Windows network instructions not working

The test program netcon.jaws works when the Jaws vm is built for Linux, but doesn't work on Windows. The Windows implementation uses winsocks2 rather than unix sockets, so the first place to look would be the Windows netcon implementation in runtime.c

Create Jaws injection tool

This is probably going to go in its own repo, but it would be cool to have a tool that injects Jaws code into various types of files.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.