PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Writing an executable builder in Perl



kat23
18.11.2008, 16:02
################################################## #

Writing an executable builder in Perl

################################################## #

Hello! In this paper I'll show you how to write your own
executable builder in Perl.

-> What is an executable builder?

It's a tool which edits a preset executable and saves the binary.
A builder is mostly used for trojan horses or remote keyloggers.

Let's begin.

We're going to code a MessageBox Builder. I wrote a simple tool
which uses the WinAPI function MessageBox() to display an alert.

UUENCODE, optimized assembly executable (written in TASM):

[ MessageBox.uuc ]

--------------------------------------------------------

begin 0666 MessageBox.exe
M35J0``,````$````__\``+@`````````0```````````````` ```````````
M````````````````````@`````X?N@X`M`G-(;@!3,TA5&AI<R!P<F]G<F%M
M(&-A;FYO="!B92!R=6X@:6X@1$]3(&UO9&4N#0T*)`````````!010``3`$#
M`-]*ET@``````````.``#P$+`0(R``8````&`````````!`````0````,```
M``!````0`````@``!``````````$``````````!``````@``` `````(`````
M`!```!``````$```$````````!```````````````'PQ``!X` ```````````
M````````````````````````````````````````````````` ```````````
M``````````````````````````````````````!0,@``7```` ```````````
M`````````````````````"YC;V1E````@@`````0`````@````(`````````
M`````````"```&`N=&5X=````!X"````(`````0````$````````````````
M```@``!@+F1A=&$```!`!````#`````&````"```````````````````0```
MP`````````````````````!H#````&@`````:"`T0`#H[`\``(/$#&@`````
MZ.4/``"C)#1``&@`````:``0``!H`````.C2#P``HR`T0`#HC!$``.@L$0``
MZ-`/``!H0````&@,,$``:$TQ0`#HR@\``&@`````Z!````#_-2`T0`#HFP\`
M`.B<#P``Z`D1``##`````````````````````````````````````` ``````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M`````````````````````````````````````````````/\E4#)``/\E6#)`
M`/\E7#)``/\E8#)``/\E9#)``.CU`0``:@#_%:0R0`##5FH!Z(X```#_="00
M_W0D#/]T)!3HU0```%#_%80R0`!J`(OPZ&T```"+QE["#`!35E>+?"00:@!7
M_Q6(,D``BQUH,D``B_#_TSOP=4!7_Q6,,D``A<!T-5?_%9`R0`"%P'0J_Q64
M,D``._AT(&H`5_\5F#)``&H0:"PT0`#HF@```%F+\%F)?@3_TXD&7S/`7D!;
MP@@`@WPD!`!T$?]T)`1H6R!``/\5G#)``.L]5HLU+#1``(7V=#%35XL>C7X(
M_Q5H,D``.0=U&&H!_W8,_Q68,D``5V@L-$``Z'\```!9687;B_-UTU];7L($
M`%6+[%%6_Q64,D``B_"%]G08C47\4%;_%8@R0`#_%6PR0``Y1?QT`C/VB\9>
MR</_="0(:@C_-30T0`#_%7`R0`"%P'03BTPD!(L1A=)T!XE"!(L1B1")`8/`
M",-J`&@`!```:@#_%5PR0`"C-#1``,/#BT0D"(M,)`2#Z`@Y`8L0=0Z)$8L(
MA<ET%X-A!`#K$8M(!(D1BPB%R70&BU`$B5$$4&H`_S4T-$``_Q5T,D``P\S,
MS,S,58OL:@!H`!```&H!_Q5<,D``HS@T0`#'!3`T0```````QP4\-$``$```
M`*$\-$``4&H!BPTX-$``4?\5<#)``*-X,4``7</,_R5\,D``````````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M``````````````````````````````#_____``````````!!0 4%!04%!04%!
M04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!0 4%!04%!04%!
M04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!0 4%!04%!04%!
M04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!0 4%!04%!04%!
M04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!0 4%!04%!04%!
M04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!0 4%!04%!04%!
M04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!0 4%!04%!04%!
M04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!0 4%!00!-97-S
M86=E0F]X('P@=W=W+FMA=&AA<G-I<RYX,BYT;P``D`````#_____`````/0Q
M`````````````+8R``!0,@``_#$``````````````#,``%@R` ``@,@``````
M``````!H,P``?#(``"@R`````````````/@S``"$,@``2#(`````````````
M%#0``*0R`````````````````````````````*PR````````P C(``-8R``#D
M,@``\C(```XS```D,P``.C,``$8S````````4C,```````!V, P``A#,``*`S
M``"R,P``Q#,``-HS``#J,P````````0T````````K#(```````#",@``UC(`
M`.0R``#R,@``#C,``"0S```Z,P``1C,```````!2,P```````'8S``"$,P``
MH#,``+(S``#$,P``VC,``.HS````````!#0```````"9`FUE;7-E=```35-6
M0U)4+F1L;`````!'971-;V1U;&5(86YD;&5!`````$AE87!#<F5A=&4`````
M2&5A<$1E<W1R;WD```!%>&ET4')O8V5S<P!+15).14PS,BYD;&P`````1V5T
M0W5R<F5N=%1H<F5A9$ED`````$=E=$-U<G)E;G10<F]C97-S260```!(96%P
M06QL;V,```!(96%P1G)E90````!);FET0V]M;6]N0V]N=')O;',``$-/34-4
M3#,R+F1L;`````!-97-S86=E0F]X00```$=E=%=I;F1O=U1H<F5A9%!R;V-E
M<W-)9`````!)<U=I;F1O=U9I<VEB;&4```!)<U=I;F1O=T5N86)L960```!'
M971&;W)E9W)O=6YD5VEN9&]W````16YA8FQE5VEN9&]W`````$5N=6U7:6YD
M;W=S`%5315(S,BYD;&P`````0V]);FET:6%L:7IE``!/3$4S,BYD;&P`````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
M````````````````````````````````````````````````` ```````````
=````````````````````````````````````````
`
end

--------------------------------------------------------

We'll decrypt and open it in a hex editor.
Now have a look at the content from offset 00000800 to offset 00000940:

FF FF FF FF 00 00 00 00 00 00 00 00 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
41 41 41 41 41 41 41 41 41 41 41 41 00 4D 65 73

It displays 320 0x41 bytes (=A). If you run the MessageBox.exe, you'll see
an information alert window with those 320 A's. It seems to be pointless,
but we need it.

320 byte will be the maximum size for the users string.

If the string is smaller, we've to add zerobytes:

--------------------------------------------------------

my $t = "My String";

my $strsize = 320;

while (length($t) != $strsize) { # If the string is smaller than our preserved bytesize
$t .= chr(0); # we have to fill the rest of the string with zerobytes
}

if ($strsize < length($t)) { # If the string is bigger than our preserved bytesize
print "\nString is too big\n"; # it will cause segmentation fault - so we've to abort it
exit;
}

--------------------------------------------------------

Now we have to use the full hex code of our application.
Format: 0x00 -> \x00

At offset 00000800 we've to insert our string.

So here's the final code:

[ builder.pl ]

--------------------------------------------------------

#!/usr/bin/perl

# MessageBox Builder
# written by katharsis
# www.katharsis.x2.to

use strict;
use warnings;

my $t = shift;
my $f = shift;

my $strsize = 320;

if ((!$f) || (!$t)) {
print "\nUsage: builder.pl [text] [output file]\nExample: builder.pl hello test.exe\n";
exit;
}

if ($strsize < length($t)) { # If the string is bigger than our preserved bytesize
print "\nString is too big\n"; # it will cause segmentation fault - so we've to abort it
exit;
}

while (length($t) != $strsize) { # If the string is smaller than our preserved bytesize
$t .= chr(0); # we have to fill the rest of the string with zerobytes
}


my $x = # This is the main code of our application

"\x4D\x5A\x90\x00\x03\x00\x00\x00\x04\x00\x00".
"\x00\xFF\xFF\x00\x00\xB8\x00\x00\x00\x00\x00".
"\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x80\x00\x00\x00\x0E\x1F".
"\xBA\x0E\x00\xB4\x09\xCD\x21\xB8\x01\x4C\xCD".
"\x21\x54\x68\x69\x73\x20\x70\x72\x6F\x67\x72".
"\x61\x6D\x20\x63\x61\x6E\x6E\x6F\x74\x20\x62".
"\x65\x20\x72\x75\x6E\x20\x69\x6E\x20\x44\x4F".
"\x53\x20\x6D\x6F\x64\x65\x2E\x0D\x0D\x0A\x24".
"\x00\x00\x00\x00\x00\x00\x00\x50\x45\x00\x00".
"\x4C\x01\x03\x00\xDF\x4A\x97\x48\x00\x00\x00".
"\x00\x00\x00\x00\x00\xE0\x00\x0F\x01\x0B\x01".
"\x02\x32\x00\x06\x00\x00\x00\x06\x00\x00\x00".
"\x00\x00\x00\x00\x10\x00\x00\x00\x10\x00\x00".
"\x00\x30\x00\x00\x00\x00\x40\x00\x00\x10\x00".
"\x00\x00\x02\x00\x00\x04\x00\x00\x00\x00\x00".
"\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00".
"\x40\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00".
"\x02\x00\x00\x00\x00\x00\x10\x00\x00\x10\x00".
"\x00\x00\x00\x10\x00\x00\x10\x00\x00\x00\x00".
"\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x7C\x31\x00\x00\x78\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x50\x32\x00\x00\x5C\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x2E\x63\x6F\x64\x65\x00\x00\x00\x82".
"\x00\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00".
"\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x20\x00\x00\x60\x2E\x74".
"\x65\x78\x74\x00\x00\x00\x1E\x02\x00\x00\x00".
"\x20\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x20\x00\x00\x60\x2E\x64\x61\x74\x61\x00".
"\x00\x00\x40\x04\x00\x00\x00\x30\x00\x00\x00".
"\x06\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00".
"\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x68\x0C\x00\x00\x00".
"\x68\x00\x00\x00\x00\x68\x20\x34\x40\x00\xE8".
"\xEC\x0F\x00\x00\x83\xC4\x0C\x68\x00\x00\x00".
"\x00\xE8\xE5\x0F\x00\x00\xA3\x24\x34\x40\x00".
"\x68\x00\x00\x00\x00\x68\x00\x10\x00\x00\x68".
"\x00\x00\x00\x00\xE8\xD2\x0F\x00\x00\xA3\x20".
"\x34\x40\x00\xE8\x8C\x11\x00\x00\xE8\x2C\x11".
"\x00\x00\xE8\xD0\x0F\x00\x00\x68\x40\x00\x00".
"\x00\x68\x0C\x30\x40\x00\x68\x4D\x31\x40\x00".
"\xE8\xCA\x0F\x00\x00\x68\x00\x00\x00\x00\xE8".
"\x10\x00\x00\x00\xFF\x35\x20\x34\x40\x00\xE8".
"\x9B\x0F\x00\x00\xE8\x9C\x0F\x00\x00\xE8\x09".
"\x11\x00\x00\xC3\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\xFF\x25\x50\x32\x40\x00\xFF\x25\x58\x32".
"\x40\x00\xFF\x25\x5C\x32\x40\x00\xFF\x25\x60".
"\x32\x40\x00\xFF\x25\x64\x32\x40\x00\xE8\xF5".
"\x01\x00\x00\x6A\x00\xFF\x15\xA4\x32\x40\x00".
"\xC3\x56\x6A\x01\xE8\x8E\x00\x00\x00\xFF\x74".
"\x24\x10\xFF\x74\x24\x0C\xFF\x74\x24\x14\xE8".
"\xD5\x00\x00\x00\x50\xFF\x15\x84\x32\x40\x00".
"\x6A\x00\x8B\xF0\xE8\x6D\x00\x00\x00\x8B\xC6".
"\x5E\xC2\x0C\x00\x53\x56\x57\x8B\x7C\x24\x10".
"\x6A\x00\x57\xFF\x15\x88\x32\x40\x00\x8B\x1D".
"\x68\x32\x40\x00\x8B\xF0\xFF\xD3\x3B\xF0\x75".
"\x40\x57\xFF\x15\x8C\x32\x40\x00\x85\xC0\x74".
"\x35\x57\xFF\x15\x90\x32\x40\x00\x85\xC0\x74".
"\x2A\xFF\x15\x94\x32\x40\x00\x3B\xF8\x74\x20".
"\x6A\x00\x57\xFF\x15\x98\x32\x40\x00\x6A\x10".
"\x68\x2C\x34\x40\x00\xE8\x9A\x00\x00\x00\x59".
"\x8B\xF0\x59\x89\x7E\x04\xFF\xD3\x89\x06\x5F".
"\x33\xC0\x5E\x40\x5B\xC2\x08\x00\x83\x7C\x24".
"\x04\x00\x74\x11\xFF\x74\x24\x04\x68\x5B\x20".
"\x40\x00\xFF\x15\x9C\x32\x40\x00\xEB\x3D\x56".
"\x8B\x35\x2C\x34\x40\x00\x85\xF6\x74\x31\x53".
"\x57\x8B\x1E\x8D\x7E\x08\xFF\x15\x68\x32\x40".
"\x00\x39\x07\x75\x18\x6A\x01\xFF\x76\x0C\xFF".
"\x15\x98\x32\x40\x00\x57\x68\x2C\x34\x40\x00".
"\xE8\x7F\x00\x00\x00\x59\x59\x85\xDB\x8B\xF3".
"\x75\xD3\x5F\x5B\x5E\xC2\x04\x00\x55\x8B\xEC".
"\x51\x56\xFF\x15\x94\x32\x40\x00\x8B\xF0\x85".
"\xF6\x74\x18\x8D\x45\xFC\x50\x56\xFF\x15\x88".
"\x32\x40\x00\xFF\x15\x6C\x32\x40\x00\x39\x45".
"\xFC\x74\x02\x33\xF6\x8B\xC6\x5E\xC9\xC3\xFF".
"\x74\x24\x08\x6A\x08\xFF\x35\x34\x34\x40\x00".
"\xFF\x15\x70\x32\x40\x00\x85\xC0\x74\x13\x8B".
"\x4C\x24\x04\x8B\x11\x85\xD2\x74\x07\x89\x42".
"\x04\x8B\x11\x89\x10\x89\x01\x83\xC0\x08\xC3".
"\x6A\x00\x68\x00\x04\x00\x00\x6A\x00\xFF\x15".
"\x5C\x32\x40\x00\xA3\x34\x34\x40\x00\xC3\xC3".
"\x8B\x44\x24\x08\x8B\x4C\x24\x04\x83\xE8\x08".
"\x39\x01\x8B\x10\x75\x0E\x89\x11\x8B\x08\x85".
"\xC9\x74\x17\x83\x61\x04\x00\xEB\x11\x8B\x48".
"\x04\x89\x11\x8B\x08\x85\xC9\x74\x06\x8B\x50".
"\x04\x89\x51\x04\x50\x6A\x00\xFF\x35\x34\x34".
"\x40\x00\xFF\x15\x74\x32\x40\x00\xC3\xCC\xCC".
"\xCC\xCC\xCC\x55\x8B\xEC\x6A\x00\x68\x00\x10".
"\x00\x00\x6A\x01\xFF\x15\x5C\x32\x40\x00\xA3".
"\x38\x34\x40\x00\xC7\x05\x30\x34\x40\x00\x00".
"\x00\x00\x00\xC7\x05\x3C\x34\x40\x00\x10\x00".
"\x00\x00\xA1\x3C\x34\x40\x00\x50\x6A\x01\x8B".
"\x0D\x38\x34\x40\x00\x51\xFF\x15\x70\x32\x40".
"\x00\xA3\x78\x31\x40\x00\x5D\xC3\xCC\xFF\x25".
"\x7C\x32\x40\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00".
"\x00\x00\x00".$t.

"\x00\x4D\x65\x73\x73\x61\x67".
"\x65\x42\x6F\x78\x20\x7C\x20\x77\x77\x77\x2E".
"\x6B\x61\x74\x68\x61\x72\x73\x69\x73\x2E\x78".
"\x32\x2E\x74\x6F\x00\x00\x90\x00\x00\x00\x00".
"\xFF\xFF\xFF\xFF\x00\x00\x00\x00\xF4\x31\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\xB6\x32".
"\x00\x00\x50\x32\x00\x00\xFC\x31\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00".
"\x58\x32\x00\x00\x20\x32\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x68\x33\x00\x00\x7C\x32".
"\x00\x00\x28\x32\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\xF8\x33\x00\x00\x84\x32\x00\x00".
"\x48\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x14\x34\x00\x00\xA4\x32\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\xAC\x32\x00\x00".
"\x00\x00\x00\x00\xC2\x32\x00\x00\xD6\x32\x00".
"\x00\xE4\x32\x00\x00\xF2\x32\x00\x00\x0E\x33".
"\x00\x00\x24\x33\x00\x00\x3A\x33\x00\x00\x46".
"\x33\x00\x00\x00\x00\x00\x00\x52\x33\x00\x00".
"\x00\x00\x00\x00\x76\x33\x00\x00\x84\x33\x00".
"\x00\xA0\x33\x00\x00\xB2\x33\x00\x00\xC4\x33".
"\x00\x00\xDA\x33\x00\x00\xEA\x33\x00\x00\x00".
"\x00\x00\x00\x04\x34\x00\x00\x00\x00\x00\x00".
"\xAC\x32\x00\x00\x00\x00\x00\x00\xC2\x32\x00".
"\x00\xD6\x32\x00\x00\xE4\x32\x00\x00\xF2\x32".
"\x00\x00\x0E\x33\x00\x00\x24\x33\x00\x00\x3A".
"\x33\x00\x00\x46\x33\x00\x00\x00\x00\x00\x00".
"\x52\x33\x00\x00\x00\x00\x00\x00\x76\x33\x00".
"\x00\x84\x33\x00\x00\xA0\x33\x00\x00\xB2\x33".
"\x00\x00\xC4\x33\x00\x00\xDA\x33\x00\x00\xEA".
"\x33\x00\x00\x00\x00\x00\x00\x04\x34\x00\x00".
"\x00\x00\x00\x00\x99\x02\x6D\x65\x6D\x73\x65".
"\x74\x00\x00\x4D\x53\x56\x43\x52\x54\x2E\x64".
"\x6C\x6C\x00\x00\x00\x00\x47\x65\x74\x4D\x6F".
"\x64\x75\x6C\x65\x48\x61\x6E\x64\x6C\x65\x41".
"\x00\x00\x00\x00\x48\x65\x61\x70\x43\x72\x65".
"\x61\x74\x65\x00\x00\x00\x00\x48\x65\x61\x70".
"\x44\x65\x73\x74\x72\x6F\x79\x00\x00\x00\x45".
"\x78\x69\x74\x50\x72\x6F\x63\x65\x73\x73\x00".
"\x4B\x45\x52\x4E\x45\x4C\x33\x32\x2E\x64\x6C".
"\x6C\x00\x00\x00\x00\x47\x65\x74\x43\x75\x72".
"\x72\x65\x6E\x74\x54\x68\x72\x65\x61\x64\x49".
"\x64\x00\x00\x00\x00\x47\x65\x74\x43\x75\x72".
"\x72\x65\x6E\x74\x50\x72\x6F\x63\x65\x73\x73".
"\x49\x64\x00\x00\x00\x48\x65\x61\x70\x41\x6C".
"\x6C\x6F\x63\x00\x00\x00\x48\x65\x61\x70\x46".
"\x72\x65\x65\x00\x00\x00\x00\x49\x6E\x69\x74".
"\x43\x6F\x6D\x6D\x6F\x6E\x43\x6F\x6E\x74\x72".
"\x6F\x6C\x73\x00\x00\x43\x4F\x4D\x43\x54\x4C".
"\x33\x32\x2E\x64\x6C\x6C\x00\x00\x00\x00\x4D".
"\x65\x73\x73\x61\x67\x65\x42\x6F\x78\x41\x00".
"\x00\x00\x47\x65\x74\x57\x69\x6E\x64\x6F\x77".
"\x54\x68\x72\x65\x61\x64\x50\x72\x6F\x63\x65".
"\x73\x73\x49\x64\x00\x00\x00\x00\x49\x73\x57".
"\x69\x6E\x64\x6F\x77\x56\x69\x73\x69\x62\x6C".
"\x65\x00\x00\x00\x49\x73\x57\x69\x6E\x64\x6F".
"\x77\x45\x6E\x61\x62\x6C\x65\x64\x00\x00\x00".
"\x47\x65\x74\x46\x6F\x72\x65\x67\x72\x6F\x75".
"\x6E\x64\x57\x69\x6E\x64\x6F\x77\x00\x00\x00".
"\x45\x6E\x61\x62\x6C\x65\x57\x69\x6E\x64\x6F".
"\x77\x00\x00\x00\x00\x45\x6E\x75\x6D\x57\x69".
"\x6E\x64\x6F\x77\x73\x00\x55\x53\x45\x52\x33".
"\x32\x2E\x64\x6C\x6C\x00\x00\x00\x00\x43\x6F".
"\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65\x00".
"\x00\x4F\x4C\x45\x33\x32\x2E\x64\x6C\x6C\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00";

open(OUT, ">:raw", $f);
print OUT $x;
close(OUT);

print "\n$f has been created!\n"; # We've to write the raw data because it's a binary file


# EOF

--------------------------------------------------------


// katharsis
// www.katharsis.x2.to