<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>Non-alpha PHP code</title>
        <description>I guess the fun can begin all over again :D

[www.thespanner.co.uk]</description>
        <link>http://sla.ckers.org/forum/read.php?24,36986,36986#msg-36986</link>
        <lastBuildDate>Fri, 24 May 2013 02:55:01 -0500</lastBuildDate>
        <generator>Phorum 5.2.15a</generator>
        <item>
            <guid>http://sla.ckers.org/forum/read.php?24,36986,36995#msg-36995</guid>
            <title>Re: Non-alpha PHP code</title>
            <link>http://sla.ckers.org/forum/read.php?24,36986,36995#msg-36995</link>
            <description><![CDATA[And I decided to be lazy and make a better one:<br />
<br />
[<a href="http://hackvertor.co.uk/hvurl/2x" rel="nofollow" >hackvertor.co.uk</a>]<br />
<br />
Quoteless, underscoreless, this calls assert and chr for every char and will allow you to generate anything.]]></description>
            <dc:creator>Gareth Heyes</dc:creator>
            <category>Obfuscation</category>
            <pubDate>Mon, 26 Sep 2011 12:41:41 -0500</pubDate>
        </item>
        <item>
            <guid>http://sla.ckers.org/forum/read.php?24,36986,36990#msg-36990</guid>
            <title>Re: Non-alpha PHP code</title>
            <link>http://sla.ckers.org/forum/read.php?24,36986,36990#msg-36990</link>
            <description><![CDATA[Stefen Esser (of course) found the shortest way to create an array:<br />
@$§[]=$§;<br />
<br />
So here we need to convert it to strings and get &quot;_&quot; for complete non-alpha without quotes or underscore. I wonder how small it can get? :D<br />
<br />
Here's how to get underscore: $§[]=$§;$§=$§.$§;$§§=+$§;$§[+$§§++]|($§[$§§+$§§+$§§]^);<br />
<br />
I started work on a basic generator, lots of chars still missing;<br />
<br />
<pre class="bbcode">

(function(){   

//externals
params = ['Ϩ'];
code = 'array0123456789';
//end externals

           var i,        
           output = '', lookup;
    output += '&lt;?php\n';
    output += '$'+params[0]+'[]=$'+params[0]+';';
    output += '$'+params[0]+'=$'+params[0]+'.$'+params[0]+';';
    output += '$'+params[0]+''+params[0]+'=+$'+params[0]+';';
    output += '$'+params[0]+''+params[0]+''+params[0]+'=$'+params[0]+'[+$'+params[0]+''+params[0]+'++]|($'+params[0]+'[$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+']^);';       
    lookup = {
                0:'(+$'+params[0]+')',
                1:'($'+params[0]+''+params[0]+')',
                2:'($'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+')',
                3:'($'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+')',
                4:'($'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+')',
                5:'($'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+')',
                6:'($'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+')',
                7:'($'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+')',
                8:'($'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+')',
                9:'($'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+')',
                '_':'$'+params[0]+''+params[0]+''+params[0],
                'A':'$'+params[0]+'[+$'+params[0]+']',
                'a':'$'+params[0]+'[$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+']',
                'r':'$'+params[0]+'[$'+params[0]+''+params[0]+']',
                'y':'$'+params[0]+'[$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+']',
                's':'($'+params[0]+'[$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+']|'+'$'+params[0]+'[$'+params[0]+''+params[0]+'])',
                'p':'($'+params[0]+'[$'+params[0]+''+params[0]+']&amp;'+'$'+params[0]+'[$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'+$'+params[0]+''+params[0]+'])',
                'R':'($'+params[0]+'[$'+params[0]+''+params[0]+']'
    };
    output += '\n?&gt;';
    output += '&lt;?php\n';
    output += code.replace(/./g,function(c){
        if(lookup[c]) {
            return '.('+lookup[c]+')';
        } else {
            return c;
        }
    }).replace(/^[.]/,'');       
    output += '\n?&gt;';
    return output;
})();

</pre>]]></description>
            <dc:creator>Gareth Heyes</dc:creator>
            <category>Obfuscation</category>
            <pubDate>Thu, 22 Sep 2011 19:05:12 -0500</pubDate>
        </item>
        <item>
            <guid>http://sla.ckers.org/forum/read.php?24,36986,36988#msg-36988</guid>
            <title>Re: Non-alpha PHP code</title>
            <link>http://sla.ckers.org/forum/read.php?24,36986,36988#msg-36988</link>
            <description><![CDATA[Not part of the new minification effort, but that bitwise stuff is really good for obfuscation.<br />
<br />
Ex:<br />
<pre class="bbcode">$create_function = '`pd`td_dtl`thll'|'cbaa`a_babc`acb';
$register_shutdown_function = 'pddhptdp_phttdltl_dtl`thll'|'bacac`ab_c`a``ccb_babc`acb';

$shell = 'var_dump(123);';

$register_shutdown_function($create_function('', $shell));</pre>
<br />
Here all the var names can be changed, but you can still get the func names as strings without actually writing them. This would make it impossible to find just by grepping through the source.<br />
<br />
<br />
Half-assed code to generate the strings:<br />
<pre class="bbcode">$str='create_function';
$part1 = '';
$part2 = '';
for($a=0;$a&lt;strlen($str);$a+=1){
  $chr = $str[$a];
  if($chr &lt; 'a' || $chr &gt; 'z'){
    $part1.=$chr;
    $part2.=$chr;
    continue;
  }
  $num = ord($chr);
  $bin = substr(str_pad(base_convert($num, 10, 2), 8, '0', STR_PAD_LEFT), 0, 8);
  $part1.=chr(base_convert('011'.substr($bin,3,3).'00', 2, 10));
  $part2.=chr(base_convert('011000'.substr($bin,6,2), 2, 10));
}
var_dump(
  $part1,
  $part2,
  $part1 | $part2
);
</pre>]]></description>
            <dc:creator>barbarianbob</dc:creator>
            <category>Obfuscation</category>
            <pubDate>Thu, 22 Sep 2011 18:26:38 -0500</pubDate>
        </item>
        <item>
            <guid>http://sla.ckers.org/forum/read.php?24,36986,36986#msg-36986</guid>
            <title>Non-alpha PHP code</title>
            <link>http://sla.ckers.org/forum/read.php?24,36986,36986#msg-36986</link>
            <description><![CDATA[I guess the fun can begin all over again :D<br />
<br />
[<a href="http://www.thespanner.co.uk/2011/09/22/non-alphanumeric-code-in-php/" rel="nofollow" >www.thespanner.co.uk</a>]]]></description>
            <dc:creator>Gareth Heyes</dc:creator>
            <category>Obfuscation</category>
            <pubDate>Thu, 22 Sep 2011 11:59:47 -0500</pubDate>
        </item>
    </channel>
</rss>
