Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP] ReverseMe #3
16-01-2014, 12:14 AM,
Post: #16
RE: [PHP] ReverseMe #3
(15-01-2014, 11:28 PM)johnburn Wrote: btw, sapa lg dh setel celen ni ea ;d

xder yang lain. x mendapat sambutan Forever Alone
Reply
16-01-2014, 12:37 AM,
Post: #17
RE: [PHP] ReverseMe #3
(16-01-2014, 12:14 AM)pers0nant Wrote:
(15-01-2014, 11:28 PM)johnburn Wrote: btw, sapa lg dh setel celen ni ea ;d

xder yang lain. x mendapat sambutan Forever Alone

i see code, i no up, dats y no do Fuck That Shit
puas sudah menanam ubi, nenas juga dibeli orang, puas sudah aku berbakti, pengganas juga dipandang orang

Quote:A true warrior need blood on his sword; A true pirate never afraid to sail the red sea.
Reply
16-01-2014, 12:59 AM,
Post: #18
RE: [PHP] ReverseMe #3
i no up? i no andersten Rage 1
Reply
17-01-2014, 01:01 AM,
Post: #19
RE: [PHP] ReverseMe #3
i wan do, i no time, dats y no do...
[Image: 1Z3i3.jpg]
Reply
17-01-2014, 02:13 AM, (This post was last modified: 17-01-2014, 02:16 AM by shahril.)
Post: #20
RE: [PHP] ReverseMe #3
(17-01-2014, 01:01 AM)syahmiazhar Wrote: i wan do, i no time, dats y no do...

abe jb dh posted "un-obfuscated kod" jadi x perlu la susah2 sngt ;d
[Image: OmDM2yf.png]
Reply
17-01-2014, 03:57 AM,
Post: #21
RE: [PHP] ReverseMe #3
since dah keluar deobfuscated by abam jb. ni write up for yang ingin tahu Fuck That Shit

PHP Code:
<? //of course, short tags

@$_[] = $___ = $__++ + ++$__ << $__;

/*

declare array $_ which akan sama dgn variable $___ :

$_[0] = $___ = $__++ + ++$__ << $__    # peggunaan bit shifting
             = 0 + 2 x 4               # dan incrementation
             = 8

@ digunakan utk supress error var $__ yang x dideclare

*/

@$_ = _ . $_ . +_ . !+_ . ~-~-$___;

/*

@ digunakan utk supress error string tanpa quote

declare variable $_ = '_Array016'; 

mana datang '_Array016'? ~fuu

_     : duhh. ade kat depan tuh

Array : since ader underscore kat depan. variable ni akan declared as string
        so bila campur ngan array $_ akan keluar output "Array" (sort of an error)

0     : +_ = false 
           = 0

1     : !+_ = not false 
            = true 
            = 1

6     : penggunaan bitwise(negation) ~-~-$___ = 8 - 1 - 1 
                                              = 6

*/

@$____[] = $_{$__++} . $_{!+_} . ($_{+_} ^ $_{~-$___}) . ($_{$__} ^ $_{$___--});

/*

@ again, supress error string tanpa quote

declare first value of array $____ as 'ranD', $____[0] = 'ranD';

mana datang 'ranD'?

sblm tu, note that :

- $_   = _Array016   # string variable boleh diakses as array
- $__  = 2 
- $___ = 8

therefore,

r : $_{$__++} = $_{2} 
              = r

a : $_{!+_} = $_{1} 
            = a

n : pengunaan bitwise(XOR). $_{+_} ^ $_{~-$___} = $_{0} XOR $_{7} 
                                                = _ XOR 1 <-- string, bukan int
                                                = n

D : $_{$__} ^ $_{$___--} = $_{3} XOR $_{8}
                         = r XOR 6 <-- string
                         = D

*/

@$____[] = ($_{+_} ^ $_{~-$___++}) . $_{$__} . $____[+_]{$__++};

/*

note that a few variable dah kena alter :

- $__  = 3
- $___ = 7


penggunann @, read above ~zzz

declare second value of array $____ as 'orD', $____[1] = 'orD';
peggunaan bitwise(XOR & negation) sama macam kat atas, nothing new.

*/

$_ = [
    'STRING',
    '&^+?-*#$!@'
];

/*

declare array $_, $_[0] = STRING
                  $_[1] = &^+?-*#$!@

*/

for(@$____[$__] = +_; @$_[+_]{$____[$__]};) {

/*

altered var :

- $__  = 4
- $___ = 8


peggunaan function for. duuhh~

pre-evaluation      : declare array $____[4] = 0;  # guna array pening sket ~fts
condition           : $_[0]{$____[4]} = 'STRING'{$____[4]}
                      # since $____[4] adalah incrementing integer (next part), loop
                      # akan continue selagi alphabhet pada nth place masih ada
                      # kalau dah habis akan error = FALSE, and loop akan pecah  
updating-evaluation : none

*/

@$_[$__] = _ . (($____[+_]($__, ~-$__ . $___) << $___) + $____[!+_]($_[+_]{$____[$__]++}));

/*

declare array $_[4] as temporary value holder for each loop since value akan
direplace for each loop, so basically :

    $temp = _ . ((ranD(4, 38) << 8) + orD('STRING'{$____[4]++}));

- underscore kat depan tu just nak tukar datatype int ---> string. so nanti boleh 
  akses as array.
- kenapa random 4 --> 38? tu utk pastikan bila dah shift bit sebanyak 8 kali (or darab 256)
  akan hasilkan no yang ada empat digit apabila tambah dgn ascii value for each character
- ord('STRING'{$i++}) = cari ascii value for each character (loop). pastu 
                        increment variable $____[4] for the next loop

*/

for(@$____[$___] = +_; $____[$___] ^ $__;) {

/*

again, function for :

pre-evaluation      : declare array $____[8] = 0;
condition           : $____[8] ^ 4
                      # since $____[8] adalah incrementing integer, loop akan
                      # akan continue selagi int != 4 (konsep XOR), which means
                      # loop akan berlaku sebanyak 4 kali (0,1,2,3)
updating-evaluation : none

*/

@$_[$___] .= $_[!+_]{$_[$__]{++$____[$___]}};

/*

declare array $_[8]. value akan diupdate for each loop (bukan replace). value array
ni adalah encoded value for string.

    $_[8] .= '&^+?-*#$!@'{$temp{$____[8]}};

basically, foreach nombor dalam temporary value akan direplace oleh charlist tersebut
berdasarkan nombor tempat :

    0 => &
    1 => ^
    2 => +
    3 => ?
    4 => _
    5 => *
    6 => #
    7 => $
    8 => !
    9 => @

*/

} // closing brackets. obviously

} // same as above

?><?=$_[$___]; // <?= adalah short tags utk echo. sama dgn echo $_[8] <--- encoded string


/*

HOW TO SOLVE?

so base code dia (thanks abam jb) : 

<?php
$str = ['STRING' , '&^+?-*#$!@'];

for($i = 0; $str[0][$i];) {
    $temp = _ . ((rand(4, 38) << 8) + ord($str[0]{$i++}));
    for ($y = 0; $y ^ 4;) {
        $encoded .= $str[1][$temp{++$y}];
        }
    }
echo $encoded;
?>

perkataan 'STRING' (6 char) akan hasilkan 24 character. how about 'a' ?
yup. definitely 4 char. tapi character akan berubah setiap kali evaluation. 

so, analisis beberapa encoded string utk 'a' berdasarkan tempat charlist :

- $$$$ => 7777
- @!+* => 9825
- #$*? => 6753
- ^^+^ => 1121

nombor2 tersebut adalah hasil darab random integer (4 -> 38) dgn 256 + ascci value 
character 'a' (97). jadi, utk dapatkan value ascii tersebut, hasil darab 256 perlu
ditolakkan daripada nombor asal. so either guna formula :

    $ascii = 7777 - floor(7777/256);
    $char  = chr($ascii);

or modulus :

    $ascii = 7777 % 256;
    $char  = chr($ascii);

pakai chr() terus pon boleh since dia automatically modulus ~fts :

    $char = chr(7777);



THE END

*/ 
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  [PHP] ReverseMe #2 pers0nant 24 1,701 16-07-2013, 10:56 AM
Last Post: pers0nant
  [PHP] ReverseMe pers0nant 46 2,884 04-07-2013, 11:02 AM
Last Post: fatah

Forum Jump: