Giter VIP home page Giter VIP logo

lawndoc / jaws Goto Github PK

View Code? Open in Web Editor NEW
231.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 Introduction

Hi, I'm C.J.

I work in InfoSec, but I have broad interests encompassing many areas of IT. Most of my interests are driven by my curiosity and love for programming and automation. Whenever I think of something cool or have an idea to make my life easier, it becomes a project on my GitHub. If you find one of my projects useful, please consider becoming a sponsor so I can dedicate more time to my open source work.

Here's some information on my projects and contributions:


✨ My top repos: ✨

Readme Card Readme Card Readme Card Readme Card Readme Card Readme Card


Connect with me on social media:

lawndoc cj-may cj__may


PGP Public Key 🔒
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEYSW4bhYJKwYBBAHaRw8BAQdAxx1qfknJzb90TohHw4D1oZyYDqdr9RuhB7fk
bhW9lUy0IUMuSi4gTWF5IDxsYXduZG9jQHByb3Rvbm1haWwuY29tPoiQBBMWCAA4
FiEEvM/6iPYJs2e3nVnMqXi0d7MPtjAFAmElu90CGwMFCwkIBwIGFQoJCAsCBBYC
AwECHgECF4AACgkQqXi0d7MPtjBUwQEA4TFbyy03+ucXTrczPTYl8UuWaETLPr27
KePBSxUzXLYA/24Xsn1eXxBtaURIm3ZrekyZBSq+DNLe1SgnKOMKVZAKtB9DLkou
IE1heSA8ZG9jdG9ybWF5NkBnbWFpbC5jb20+iJAEExYIADgWIQS8z/qI9gmzZ7ed
WcypeLR3sw+2MAUCYSW8jQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCp
eLR3sw+2MCq1AP4ujDZqycGp9HF5CXUmeuicm6XsDffKWBDjfAhQyLv6/QD/ehy0
FtHje08z0MMRYo02L9F77cnBmK0Z19wt1TO34Qy4OARhJbhuEgorBgEEAZdVAQUB
AQdApBRpPz0nLw1WEyd+3iF+NExWrOqP6hmxPK/iNfFFI2EDAQgHiHgEGBYIAAkF
AmEluG4CGwwAIQkQqXi0d7MPtjAWIQS8z/qI9gmzZ7edWcypeLR3sw+2ME81AQDN
kq9Ljq+DbD9GV+BxkzcGVMktThgOo9kwNneBoHsHvAD+KH2usfyre0uTB7hqsec4
tbgRM9FHsdrI4kUi3D2m+As=
=Nw/H
-----END PGP PUBLIC KEY BLOCK-----

jaws's People

Contributors

lawndoc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

jaws's Issues

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.

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.

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

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.

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.

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

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.