N3 Defeating Simple Php Obfuscator

Discussion in 'N3 Source Codes dan Tutorials' started by dono, Dec 5, 2012.

Discuss Defeating Simple Php Obfuscator in the N3 Source Codes dan Tutorials area at Nyit-Nyit.Net

  1. dono 3 SMP STAFF N3 Tukang Sapu

    Messages:
    2,403
    Likes Received:
    2,574
    Trophy Points:
    141
    Game:
    Dota 2
    Region:
    Australia
    -----[ Langkah-langkah

    Beberapa waktu lalu, saya dihadapkan dengan sebuah script php yang di-obfuscate
    menggunakan obfuscator sederhana. Berikut ini snippet dari script php tersebut:

    Code:
    1 <?php // This file is protected by copyright law and provided under license.
    2 $OOO0O0O00=__FILE__;$O00O00O00=__LINE__;$OO00O0000=928;eval((base64_decode('
    3 k+AJDweJDweJDwhyL6GHOukyLCNa8bvVkhAFpiyDpGAFkTd0kTZ/k+AJtzeJD+QdDmr0kTZlcCka

    Kodenya cukup panjang, jadi saya potong saja cukup sebagai preview. Untuk kode
    yang lengkap, bisa dilihat di bagian attachment pada tutorial ini. Intinya ada
    lah, kode untuk deobfuscatornya terdapat pada baris ke-2, yang lengkapnya se-
    bagai berikut (edit sedikit biar rapi):


    Code:
    $OOO0O0O00 = __FILE__;
    $O00O00O00 = __LINE__;
    $OO00O0000 = 928;
    eval((base64_decode('JE8wMDBPME8wMD1mb3BlbigkT09PME8wTzAwLCdyYicpO3doaWxlKC0tJE
    8wME8wME8wMClmZ2V0cygkTzAwME8wTzAwLDEwMjQpO2ZnZXRzKCRPMDAwTzBPMDAsNDA5Nik7JE9PM
    DBPMDBPMD0oYmFzZTY0X2RlY29kZShzdHJ0cihmcmVhZCgkTzAwME8wTzAwLDM3MiksJ1NlbXcrb0M1
    WmtjVURSZkpYcDF0dkczTzhxTVdMN3hGWWEwbml5NkhWZ0s5bEUvMmROVHo0aGJ1ckJzSVFBalA9Jyw
    nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NT
    Y3ODkrLycpKSk7ZXZhbCgkT08wME8wME8wKTs=')));return;

    Jadi kuncinya, ada pada bagian "eval" dan yang harus dilakukan pertama adalah
    melakukan decode base64 string yang ada snippet kode di atas. Hasilnya adalah
    sebagai berikut (edit sedikit biar rapi):


    Code:
    $O000O0O00 = fopen($OOO0O0O00,'rb');
    while(--$O00O00O00) fgets($O000O0O00,1024);
    fgets($O000O0O00,4096);
    $OO00O00O0 = (base64_decode(strtr(fread($O000O0O00,372),
    'Semw+oC5ZkcUDRfJXp1tvG3O8qMWL7xFYa0niy6HVgK9lE/2dNTz4hburBsIQAjP=',
    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')));
    eval($OO00O00O0);

    Dari potongan kode di atas, bisa terlihat bahwa script tersebut memanfaatkan
    fungsi strtr[1] untuk meng-obfuscate baris terakhir script php. Dan untuk me-
    ngembalikan script php yang telah di-obfuscate, kita bisa melakukannya menggu-
    nakan command line atau membuat script sederhana. Berikut ini ada command line
    yang digunakan untuk mengembalikan script yang telah di-obfuscate:


    Code:
    $ tail -1 script.php | tr \
    'Semw+oC5ZkcUDRfJXp1tvG3O8qMWL7xFYa0niy6HVgK9lE/2dNTz4hburBsIQAjP=' \
    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' | \
    base64 -d

    Cukup ganti "script.php" dengan nama file yang akan di-deobfuscate, hasilnya
    seperti ini (edit sedikit biar rapi):


    Code:
    $OO00O00O0 = ereg_replace('__FILE__',"'".$OOO0O0O00."'",
    (base64_decode(strtr(fread($O000O0O00,$OO00O0000),
    'Semw+oC5ZkcUDRfJXp1tvG3O8qMWL7xFYa0niy6HVgK9lE/2dNTz4hburBsIQAjP=',
    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))));
    fclose($O000O0O00);
    eval($OO00O00O0);
    if ( !is_file('wp-load.php') )
    {
    preg_match('|^(.*?/)(wp-content)/|i', str_replace('\\', '/', __FILE__), $_m);
    require_once $_m[1].'wp-load.php';
    }
    else
    require_once 'wp-load.php';
    require_once ABSPATH.'wp-admin/admin.php';
    if ( !current_user_can('install_plugins') )
    wp_die(__('You do not have sufficient permissions to install plugins on this blog.'));
    $res = $wpdb->query("ALTER TABLE `{$wpdb->prefix}pageflip` AUTO_INCREMENT = 1") !== false;
    $res = $res && $wpdb->query("ALTER TABLE `{$wpdb->prefix}pageflip_gallery` AUTO_INCREMENT = 1") !== false;
    $res = $res && $wpdb->query("ALTER TABLE `{$wpdb->prefix}pageflip_img` AUTO_INCREMENT = 1") !== false;
    if ($res)
    echo "OK";

    Nah, sekarang scriptnya sudah berhasil di-deobfuscate dan dapat diedit sesuai
    keinginan. Dan jika ingin praktis, bisa membuat script sederhana seperti ini:


    Code:
     1 #!/bin/sh
    2
    3 if [ "$1" = "" ]; then
    4 echo "Usage: $0 <file>"
    5 exit 1
    6 fi
    7
    8 tail -1 $1 | tr \
    9 'Semw+oC5ZkcUDRfJXp1tvG3O8qMWL7xFYa0niy6HVgK9lE/2dNTz4hburBsIQAjP=' \
    10 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' | base64 -d

    Sekian tutorial singkat kali ini, semoga bermanfaat.


    -----[ Referensi

    [1] strtr — Translate characters or replace substrings
    http://php.net/manua...ction.strtr.php

    [2] tr - translate or delete characters
    http://linux.die.net/man/1/tr


    -----[ Attachment: obfuscated script

    begin 644 reset-id.php
    Code:
    M/#]P:'`@+R\@5&AI<R!F:6QE(&ES('!R;W1E8W1E9"!B>2!C;W!Y<FEG:'0@
    M;&%W(&%N9"!P<F]V:61E9"!U;F1E<B!L:6-E;G-E+B!2979E<G-E(&5N9VEN
    M965R:6YG(&]F('1H:7,@9FEL92!I<R!S=')I8W1L>2!P<F]H:6)I=&[email protected]
    M3T]/,$\P3S`P/5]?1DE,15]?.R1/,#!/,#!/,#`]7U],24Y%7U\[)$]/,#!/
    M,#`P,#TY,C@[979A;"@H8F%S938T7V1E8V][email protected]=TU$0E!-13AW340Q
    M;6(S0FQB:6=K5#`Y4$U%.'=4>D%W3$-D>5EI8W!/,V1O85=X;$M#,'1*13AW
    M344X=TU%.'=-0VQM6C)6,&-Y9VM4>D%W344X=U1Z07=,1$5W36I1<$\R6FY:
    M6%)Z2T-24$U$07=4>D)0341!<TY$035.:6LW2D4Y4$U$0E!-1$)0340P;UEM
    M1GI:5%DP6#)2;%DR.6M:4VAZ9$A*,&-I:&UC;59H6D-G:U1Z07=-13AW5'I!
    M=TQ$33--:6MS2C%.;&)88W)B,$TQ5VUT:E954E-::W!98T1&,&1K8WI4>FAX
    M5%9D34XS:$=75T5W8FUL-4YK:%=:,',U8D55=DUM4D]62&\P84=*,6-K2GI3
    M5D9"86Q!.4IY=VY154I$4D561U(P:$I3:W1-5%4U4%5&1E-5,5)65FQD65=6
    M<&A9;4YK6E=:;F%';'%A,GAT8FTY=V-82GID2%8R9#-H-65J07A-:DTP3E19
    M,T]$:W),>6-P2U-K-UI86FAB0V=K5#`X=TU%.'=-13AW2U1S/2<I*2D[<F5T
    M=7)N.S\^"FLK04I$=V5*1'=E2D1W:'E,-D=(3W5K>4Q#3F$X8G96:VA!1G!I
    M>41P1T%&:U1D,&M46B]K*T%*='IE2D0K461$;7(P:U1:;&-#:V%,8G9B4F]!
    M:7$S4C)Q0W963'5P5#<U6E9Q2&MY.#-85FLK461$=V5*1"M19$1M9&ET-%%D
    M1"M19$1W4V1C,61(=F)'13=413)8>D=-36)21W!O:S8Q>6%D1$]P8G!Z4DIF
    M-6][email protected]<7$X=&4O34]I8C%O<[email protected]>GEL<#%15'$K0G9X;G!6.$A'5%A(
    M4FMV=F]+=G<T2%5M-V58:5(K<'9Q-3$K>6,Q-$Y2=&E!6'9':W1';T<S1VAA
    M<3,V;S`X8G!Y<[email protected](4C0W3W%U>#5Y<T1W*U1$>EAH
    M4FY,<F8Q;#)K5&EG8S%I27$V4FQ7=5)Y8VUP2D1W4V1T>F5*1'=39V9B1V(X
    M,V16:RM!2D1W94I$=V5*1&UI27=89V=Q,%-66FUO9TQH039-,TYY8VTW=4QM
    M:&Q78F]I54AE5DQM3&=:;6E2;4AL4FU(951Q,S=&5S-O-#AB659K=4YX8VUR
    M2TI446=C-3=D53-2,E=(<'E72%AG575.9VM49%E,=7!43W5K>4Q#3F$X8G96
    M:VA.3&M49%EK5%%(56UE1D\T<6MT*T=&3U1I;%IM<$97,6E)=UAG5'%/;VA-
    M3VMY3V)!+SAB=EEK;T%%,WIO-U4P-W5,;6AL5V)O:55(959,;4Q)=UAG07=8
    M9WE7-5)Y=UAG5'%/;VA-3VMY3V)!+SAB=EEK=3=D53-.,[email protected]"],0V%D:WIL
    M4FU(:WE,3T=G3#9'1E=B0FYQ,65E6'E26%A'<%I5,#=U3&UH87%#:&=7,$%A
    M<4-H9U<P0F1--5-(9F0T8TTS.%EC;5-A.'5'5$PV1R\W;T%H3&)'5$]B4F%7
    M,%E(33-">C=#;VQ7;T%D5S5'2$TS0GIK5&[email protected]=U949Q0WEY8V]!1F-M
    M-W%7=799<4-165<V031:0V%A-S9V64QU1S9Q-GEN33-'+S=M961Q3VM%34]2
    M>DTS02],5&4T5U1E9U=(4C0X,TYL6C5E;#<S-V=72$195V)R63=#86=,5&4P
    M5T-!2%4P3&=C=&Q2;3!P5'%/1%E*,5-I-W5E:3@P-&I,3T=Y3$AI5EII;T1'
    M*T<Q6F]P95AI3F]:0V5):S4W9'%#6D5*2&54<[email protected]:&0X,S=Y<39.9TQ#
    M4UE81T=V=&A!:W1I4C%P=FAO='E864HQ4TY:,&E96G0T05I#<6%7-5)Y9F0T
    M8VLU:WE,5%-!6FUP5'%/1%EK,#A9:S4W9'%#6D5*2&]H<4]K0F-M:V5T;W!O
    M=C!E=EAV:T1P,659>%1P=4Q#<#!5=$)D3#9'-DU/84%,0V](<3-Q;$U/949Q
    M8F][email protected]=V=&A!:W1I4C%P=FAO='E864HQ4TY:,&E96G0T05I#
    M<6%7-5)Y9F0T8VLU:WE,5%-!6FUP5'%/1%EK,#A9:S4W9'%#6D5*2&]H<4]K
    M0F-M:V5T;W!O=C!E=EAV:T1P,659>%1P=4Q#<#!5=$)D3#9'-DU/84%,0V](
    M<3-Q;$U/949-,VA(.&UE94='<$I/-'EF6&AK;W1V1V9';5-!6G<K,&,Q4V%*
    M=#19<39O;$QB=DEW6&=G<3!35FLU:WE,5&E2;39';DU#45E::4%56FYL4FU9
    "/3T`
    `
    end
    Credits: id.slacker - RNDC Indonesia
    Group: https://www.facebook.com/groups/rndc.or.id/
     
    3 people like this.

    Gunakan jasa Rekber N3 untuk menjamin jual beli anda atau menghindari penipuan dengan meng klik disini
  2. Ri7N 2 SD Level 2

    Messages:
    330
    Likes Received:
    18
    Trophy Points:
    46
    fungsi utama dari code diatas , maksudnya kegunaannya ?
     
  3. dono 3 SMP STAFF N3 Tukang Sapu

    Messages:
    2,403
    Likes Received:
    2,574
    Trophy Points:
    141
    Game:
    Dota 2
    Region:
    Australia
    judulnya Defeating PHP Obfuscator sudah jelas intinya mendecrypt code PHP yang di protect. Tapi ini pola simple. Dalam dunia nullified ini adalah dasar nya.
     

Share This Page