Skip to content
Ivan Kulikov edited this page Mar 14, 2015 · 1 revision

curious Encodings

<< index Android/Java/x86/... opcodes tables PDF tricks Portable Executable x86 oddities (this project is done in my spare time. Support it!)

Encodings

!JavaScript

jjencode

https://corkami.googlecode.com/svn/wiki/pics/misc_jjencode.png

JJEncode is a !JavaScript encoding by Yosuke Hasegawa that turns standard javascript into symbol-only code, including the decoder.

COM

Not the ActiveX thingy, but the old headerless binaries from DOS (and Windows XP or before)

aa86

https://corkami.googlecode.com/svn/wiki/pics/misc_aa86.png

Aa86 is a .COM file encoder by Yosuke Hasegawa that encodes binaries using only symbols characters, with a decoder.

so for example, a simple hello world binary is encoded as:

%@"%"@,~,%,!`_^[```

 - [https://corkami.googlecode.com/svn/trunk/asm/encodings/aa86.asm commented assembly source](^_^]-;>`_^[^_^]%"!,^,:`_^[^_^]-@{-`{-?:`_[^_^]_-``-``-@@`_^[^_^]-`~-``-@$`_^[^_^]-``-``-@@`_^[^_^]-`~-``-@#`_^[^_^]-+~-/~-?;`_^[^_^]%!~-;-,;`_^[^_^]-"$-@~-@``_^[^_^]-{[-);-@:`_^[^_^]-/*,%`_^[^_^]`_^[^_^]`_^[^_^]`_^[^_^]%@$-@;-?;`_^[^_^]-/~-`&,#`_^[^_^]-`~-`{,*`_^[^_^]-@@-$!`_^[^_^]-:$,[,<`_^[^_^]-!|-.),!`_^[^_^]-@{-@`-/(`_^[^_^]`_^[^_^]`_^[^_^]`_^[^_^]-{!-{.,.`_^[^_^]-~/-/``_^[^_^]%""-}@$"`_^[^_^]%@@-!/,!`_^[^_^]-:*-=%`[[[[[[[[`^^^^^-%+)@@^^^!;@@_!,((,.((-$+)@*+@!!@-,!"(+@@,$-,!"($%&,&,&_&@"'%_&"',&$&!"-@*@$")
 - [standalone encoder](https://corkami.googlecode.com/svn/trunk/asm/encodings/aa86.py)

### aa86-based dropper

https://corkami.googlecode.com/svn/wiki/pics/misc_aa86drop.png

Using Aa86 and a simple .COM dropper, it's possible to make an embedded PE not only non-null, but even typeable.

Example of an Aa86-encoded dropper with embedded PE:

%@"%"@,~,%,!`_^[```

EICAR

https://corkami.googlecode.com/svn/wiki/pics/misc_eicar2.png

the EICAR file is a tiny test file that is made of printable characters and prints the eicar test string.

  • https://corkami.googlecode.com/svn/trunk/asm/encodings/eicar.asm commented assembly source;-@:_^[^_^]-/*,%^[^^]_^[^_^]^[^^]_^[^_^]%@$-@;-?;^[^^]-/-&,#^[^^]-~-{,*_^[^_^]-@@-$!^[^^]-:$,[,<_^[^_^]-!|-.),!^[^^]-@{-@-/(^[^^]_^[^_^]^[^^]_^[^_^]-{!-{.,.^[^^]-/-/``^[^^]%""-}@$"_^[^_^]%@@-!/,!^[^^]-:-=%`[[[[[[[[`^^^^^-%+)@@^^^!;!@%+.@_!+@(!@$+)@-,!"$+$,+--"@)(#.!(#,@(@@!,+.$@-,!"$+,#)+@@@@+&&!@-,!""'(##"&!@+(.!"&!@.!$+@$+)!@)+,@!@-,!"!"'#"$+.#+(.!"&!@-,!""')!.!'@++-&!@,(%$@,(%(@,(%,@$++$@+@@+&&!@-,!""'@@(+!@,$-,!"@@@@@@@@%$@%."%$(%%$@@@@@@@(@@@@@@,%@@@@@@,&@@@@@@@@@@@@@@@@@"#"@"$&"'&@'@')&.&'&@"@%%$@"("&&"'&-&@"!#&#"&)&$'@"."#$$-$@"&&)&,&%&)"-@-@@$"-$%@@@@@%%$@@@@,$!@@@@@-&#'&'#&"'$'."$&,&,&@@@@@@@@"@!@+@!@(&$.@@@$@@__%!$$@@@$@@+.)@@@.!@@@@@@@@@@@@@@#($,$@#,@@@@@$@@$@@@@@@@$@@@@@@@!&@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@,@!@@@@@+@!@@@@@@@@@@@@@#@@@@@@'"')&.&$'&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-@@@@@@@@@@@@@@@@@@@@@@@((@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@,@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@(@@@@@@@@"#"@"$&"'&@'@'%&$&@"@%%$@"("##"#"&@"@%%$@"&&)&,&%&)"*@@@@@@@@@@@@@@@@@@@@@@@@@)
X5O!P%@AP[```
### EICAR2

Peter Ferrie rewrote the EICAR file, smaller this time, as the test string itself is executed in this new version.

5T2)D4)D65Z3PZEICAR-STANDARD-ANTIVIRUS-TEST-FILE!$UX!T!S


 - [https://corkami.googlecode.com/svn/trunk/asm/encodings/eicar2.asm commented assembly source](4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*)
----
# acknowledgements

 - Peter Ferrie
 - [Yosuke Hasegawa](http://utf-8.jp/)

[<< index](http://code.google.com/p/corkami/) [Android/Java/x86/... opcodes tables](http://opcodes.corkami.com) [PDF tricks](http://pdf.corkami.com) [Portable Executable](http://pe.corkami.com) [x86 oddities](http://x86.corkami.com) (this project is done in my spare time. **[Support ](http://code.google.com/p/corkami/wiki/About#Support_Corkami)** it!)
Clone this wiki locally