Giter VIP home page Giter VIP logo

jsxer's Introduction

Jsxer

A faster decompiler for Adobe's (Legacy) ExtendScript binary format (*.jsxbin).

Features

  • Lifts JSXBIN back to JavaScript code.
  • Jsxblind deobfuscation (experimental).
  • Python bindings.
  • Dynamic library.
  • Fast as hell.

What is ExtendScript?

ExtendScript is a scripting language and an associated toolkit developed by Adobe Systems, intended for use with Creative Suite and Technical Communication Suite products. It is a dialect of the ECMAScript 3 standard and therefore similar to JavaScript and ActionScript. The toolkit comes bundled with Creative Suite and Technical Communication Suite editions and can access tools within applications like Photoshop, FrameMaker, InDesign or After Effects for batch-processing projects.

Please, do not use this project unethically.

yo, pirates, hear me out...

Look, I get that it's tempting– money doesn't grow on trees.

Many script authors are independent developers, and by stealing their work you make what they do unsustainable and their lives harder. Without income, they are not able to create and maintain what many people may depend on.

Jsxer (in addition to simply being a fun and educational project to develop) was made for source code recovery and security research purposes. It is free and open-source software– and as such, I won't try to control what you can and can't do with it.

Just remember that script authors are real humans! So if you like their work, show some love and fork over the dough. :)

Appreciate ya!

Build (MacOS)

Open the Terminal app to run the following commands. If you are unfamiliar with Terminal, you can find it in /Applications/Utilities/Terminal.app.

Install CMake:

brew install cmake

Configure and build the project:

cmake .
cmake --build . --config release 

After a successful build, navigate to the folder with the executable:

cd ./bin/release/

Usage

Note Make sure that the input file only contains the JSXBIN literal itself.[1] (Usually starting with @JSXBIN@)

jsxer <jsxbin path>

The --unblind flag enables the experimental deobfuscation.

Credits

  • Thanks to Andrin Meier (@andrinpricemeier, formerly @autoboosh) for his research on the format, and his project jsxbin-to-jsx-converter.
  • Thanks to @codecopy for keeping a fork of @autoboosh's project, where the original vanished as a consequence of a DMCA takedown from Adobe.

Contributions

Contributions are welcome. Open an issue if you have a problem. Check contribution guidelines here.


Star History

Star History Chart

jsxer's People

Contributors

angelod2022 avatar iconifyit avatar matojeje avatar psyirius 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  avatar  avatar

jsxer's Issues

More intelligent variable renaming with JsxBlind deobfuscation

In the deobfuscator's current state, it renames symbols with names that have characters that are not valid. It achieves this by renaming an affected variable from Unicode weirdness to, for example, symbol_34. Ideally, we can look at the values assigned to any given variable and rename it using an automatically generated brief description of its assigned contents. We could also take into consideration how the variable is used–say a loop iteration variable for example.

Invalid Image Data

Thank you for releasing the Windows version!
I tried to use it to convert some scripts jsxbin to jsx
The converted text is quite beautiful
After just converting, without any editing, let AE run it
Some scripts will pop up with error message or not working

For example, this is the error message of one of the scripts
(Unable to execute scripts at line 2538. Invalid image data)

This is another script
(Unable to execute scripts at line 2063. L is undefined)

Is there something I did wrong?

Broken script when converted?

Hi, first off, thank you for keeping this kind of project alive! The original was/is great, but it used to crash/hang on larger scripts. Yours seems to get through large scripts, however I've just tested it and it seems some stuff must be missing from it as the script doesn't work.

This App can't run on your pc

after i start the decompiler with ./jsxer.exe path/to/script.jsxbin path/to/output.jsx it usually says "this app can't run on your pc"

i have a 64x based pc.
and downloaded the recent 1.6.0 version
on windows 10

Batch decompile

Allow the user to specify a directory of JSXBIN files to decompile.

Website and/or WASM version?

I'd like to learn WASM so this might be a good opportunity to do so. Would it make sense to build a WASM version of this tool and then build a website around it to allow people to decrypt jsxbin files online?

Decompiled Statements appear out of order.

Thanks admin for sharing. Decompiles small files well, But jsxbin files over 100kb cannot be decompiled, the translated file is reversed with functions and variables

zsh: segmentation fault

here is giving the following error:
./jsxer sample.jsxbin sample.jsx
[ i ] Decopiling...
zsh: segmentation fault ./jsxer sample.jsxbin sample.jsx

How to solve?

Some issues after decompiling

Thanks for all you hard work,it's a really nice tool!

But I found some issues when I ran jsxer with this file:
EXTERNAL REFERENCE REMOVED BY ADMIN

When I use the compiled version (jsxbin) directly , this file works well in AE.But after decompiling,it apprears some issues.

There are at last two issues(I tried to fix all the bugs, but it was hard. So only two have been found):

  • Some illegal words “class” come out after decompiling;
  • A function appear wrong content"()" at the end(after "{}").

Could you please try decompiling this file and check it out? Thank you all very much!

What's problem with this JSXBIN?

i have recently came across a JSXBIN when you try to decompile it it succesfully decompile but can't recompile with extended script it says illigal use of word "default" and also say illigal use of word "static"

dyld: Symbol not found OSX 10.11.6

After trying couple different methods to run this. I keep getting this dylib error.

ac-Pro:release macpro1$ /Users/macpro1/Downloads/jsxer\ by\ AngeloD2022/release/jsxer /Users/macpro1/Library/Application\ Support/Adobe/CEP/Extensions/logo-packer-main/jsx/cmyktopms.jsxbin cmyktopms.jsx
dyld: Symbol not found: __ZTTNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE
  Referenced from: /Users/macpro1/Downloads/jsxer by AngeloD2022/release/jsxer
  Expected in: /usr/lib/libc++.1.dylib
 in /Users/macpro1/Downloads/jsxer by AngeloD2022/release/jsxer
Trace/BPT trap: 5
Mac-Pro:release macpro1$ 

Seems like this was written on Windows. I see the folder hierarchy from the MAC version. It looks different vs that error. Could it be the Mac build perhaps has wrong paths set?

Screen Shot 2023-05-30 at 13 08 18

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.