Devilzc0de Forum Follow @devilzc0de
  • Home
  • Hacking
  • Networking
  • Programming
  • O.S
  • Server
  • Tweets
  • Search
  • Member List
  • Calendar
Current time: 05-26-2013, 10:30 AM Hello There, Guest! (Login — Register)
Devilzc0de Forum › Information Technology › Programming › C / C++ v
« Previous 1 ... 6 7 8 9 10 ... 15 Next »

[Tutor] Obfuscate source code C (bikin source code susah dibaca)

Home General Computer Multimedia Business Lounge

Pages (2): 1 2 Next »
Post Reply 
Tweet
Threaded Mode | Linear Mode
Tutor Obfuscate source code C (bikin source code susah dibaca)
01-14-2012, 10:18 PM
Post: #1
ketek Offline
bocah ingusan
*******
Administrators
Posts: 2,180
Joined: Jan 2010
Reputation: 385
Obfuscate source code C (bikin source code susah dibaca)
salam DCers

wew.. kali ini mari kita ngebahas cara membuat source code kita susah dibaca orang hammer hammer

oke ada beberapa alasan kenapa source code kita di obfuscate:
- untuk melindungi algoritma kita (najong banget yang ini)
- untuk gaya-gayaan (you know me so well lah ngakak)
- untuk menyembunyikan alur dari program kita
- untuk ikut contest obfuscated c code (IOCCC)

halaman wikipedia : http://en.wikipedia.org/wiki/Obfuscated_code

salah satu source code dari wikipedia yg sudah di obfuscated

Oleh Óscar Toledo Gutiérrez, Best of Show entry in the 19th IOCCC, implementasi 8080 emulator
Code:
#include <stdio.h>
           #define n(o,p,e)=y=(z=a(e)%16 p x%16 p o,a(e)p x p o),h(
                                #define s 6[o]
             #define p z=l[d(9)]|l[d(9)+1]<<8,1<(9[o]+=2)||++8[o]
                                #define Q a(7)
           #define w 254>(9[o]-=2)||--8[o],l[d(9)]=z,l[1+d(9)]=z>>8
                               #define O )):((
                  #define b (y&1?~s:s)>>"\6\0\2\7"[y/2]&1?0:(
                               #define S )?(z-=
                    #define a(f)*((7&f)-6?&o[f&7]:&l[d(5)])
                               #define C S 5 S 3
                       #define D(E)x/8!=16+E&198+E*8!=x?
                             #define B(C)fclose((C))
                       #define q (c+=2,0[c-2]|1[c-2]<<8)
                          #define m x=64&x?*c++:a(x),
                         #define A(F)=fopen((F),"rb+")
                    unsigned char o[10],l[78114],*c=l,*k=l
                          #define d(e)o[e]+256*o[e-1]
#define h(l)s=l>>8&1|128&y|!(y&255)*64|16&z|2,y^=y>>4,y^=y<<2,y^=~y>>1,s|=y&4
+64506; e,V,v,u,x,y,z,Z; main(r,U)char**U;{

     { { { } } }       { { { } } }       { { { } } }       { { { } } }
    { { {   } } }     { { {   } } }     { { {   } } }     { { {   } } }
   { { {     } } }   { { {     } } }   { { {     } } }   { { {     } } }
   { { {     } } }   { { {     } } }   { { {     } } }   { { {     } } }
   { { {     } } }   { { {     } } }   { { {     } } }   { { {     } } }
    { { {   } } }    { { {     } } }    { { {   } } }    { { {     } } }
      { { ; } }      { { {     } } }      { { ; } }      { { {     } } }
    { { {   } } }    { { {     } } }    { { {   } } }    { { {     } } }
   { { {     } } }   { { {     } } }   { { {     } } }   { { {     } } }
   { { {     } } }   { { {     } } }   { { {     } } }   { { {     } } }
   { { {     } } }   { { {     } } }   { { {     } } }   { { {     } } }
    { { {   } } }     { { {   } } }     { { {   } } }     { { {   } } }
     { { { } } }       { { { } } }       { { { } } }       { { { } } }

                                   for(v A((u A((e A((r-2?0:(V A(1[U])),"C")
),system("stty raw -echo min 0"),fread(l,78114,1,e),B(e),"B")),"A")); 118-(x
=*c++); (y=x/8%8,z=(x&199)-4 S 1 S 1 S 186 S 2 S 2 S 3 S 0,r=(y>5)*2+y,z=(x&
207)-1 S 2 S 6 S 2 S 182 S 4)?D(0)D(1)D(2)D(3)D(4)D(5)D(6)D(7)(z=x-2 C C C C
C C C C+129 S 6 S 4 S 6 S 8 S 8 S 6 S 2 S 2 S 12)?x/64-1?((0 O a(y)=a(x) O 9
[o]=a(5),8[o]=a(4) O 237==*c++?((int (*)())(2-*c++?fwrite:fread))(l+*k+1[k]*
256,128,1,(fseek(y=5[k]-1?u:v,((3[k]|4[k]<<8)<<7|2[k])<<7,Q=0),y)):0 O y=a(5
),z=a(4),a(5)=a(3),a(4)=a(2),a(3)=y,a(2)=z O c=l+d(5) O y=l[x=d(9)],z=l[++x]
,x[l]=a(4),l[--x]=a(5),a(5)=y,a(4)=z O 2-*c?Z||read(0,&Z,1),1&*c++?Q=Z,Z=0:(
Q=!!Z):(c++,Q=r=V?fgetc(V):-1,s=s&~1|r<0) O++c,write(1,&7[o],1) O z=c+2-l,w,
c=l+q O p,c=l+z O c=l+q O s^=1 O Q=q[l] O s|=1 O q[l]=Q O Q=~Q O a(5)=l[x=q]
,a(4)=l[++x] O s|=s&16|9<Q%16?Q+=6,16:0,z=s|=1&s|Q>159?Q+=96,1:0,y=Q,h(s<<8)
O l[x=q]=a(5),l[++x]=a(4) O x=Q%2,Q=Q/2+s%2*128,s=s&~1|x O Q=l[d(3)]O x=Q  /
128,Q=Q*2+s%2,s=s&~1|x O l[d(3)]=Q O s=s&~1|1&Q,Q=Q/2|Q<<7 O Q=l[d(1)]O s=~1
&s|Q>>7,Q=Q*2|Q>>7 O l[d(1)]=Q O m y n(0,-,7)y) O m z=0,y=Q|=x,h(y) O m z=0,
y=Q^=x,h(y) O m z=Q*2|2*x,y=Q&=x,h(y) O m Q n(s%2,-,7)y) O m Q n(0,-,7)y)  O
m Q n(s%2,+,7)y) O m Q n(0,+,7)y) O z=r-8?d(r+1):s|Q<<8,w O p,r-8?o[r+1]=z,r
[o]=z>>8:(s=~40&z|2,Q=z>>8) O r[o]--||--o[r-1]O a(5)=z=a(5)+r[o],a(4)=z=a(4)
+o[r-1]+z/256,s=~1&s|z>>8 O ++o[r+1]||r[o]++O o[r+1]=*c++,r[o]=*c++O z=c-l,w
,c=y*8+l O x=q,b z=c-l,w,c=l+x) O x=q,b c=l+x) O b p,c=l+z) O a(y)=*c++O r=y
,x=0,a(r)n(1,-,y)s<<8) O r=y,x=0,a(r)n(1,+,y)s<<8))));
system("stty cooked echo"); B((B((V?B(V):0,u)),v)); }

bisa baca gak tuh alur kerjanya tu program ? ngakak


oke ane gak begitu ahli dalam hal ini, tapi mari kita coba obfuscate code berikut ini :
Code:
#include <stdio.h>

main(){
    printf("devilzc0de");
}

ane obfuscate jadi kyk gini:
Code:
#include <stdio.h>
#define _ printf
#define _m main
#define _i int
#define _f for
#define __d _m(){
#define __e _i s[10] =
#define __v {0, 1,17,-13,3,14,-23,-51,52,1};
#define __i _i b = 100;
#define __l _i i;
#define __z _f(i=0;
#define __c i < 10; i++){
#define __0 b = b + s[i];
#define ___d _("%c",
#define ___e b); }}
__d __e __v __i __l __z __c __0 ___d ___e


[Image: 214rzt3.jpg]




gimana caranya???

pertama-tama, mari kita rubah kata devilzc0de menjadi, hmmm mari kita rubah jadi bentuk ascii char code
ane masukkan kata 'devilzc0de' di http://devilzc0de.org/forum/tools.php?x=decoder
dan mendapatkan hasil seperti berikut untuk ascii char:
Code:
100 101 118 105 108 122 99 48 100 101
untuk orang yg familiar dengan ascii char code pasti tau klo itu adalah sebuah string, mari kita buat semakin susah dengan cara.:
ambil sebuah basis, misalkan angka 100 sebagai basis, lalu kita ambil selisih nya masing,,,
100 ke 100 = 0
100 ke 101 = 1
101 ke 118 = 17
118 ke 105 = -13
105 ke 108 = 3
dan seterusnya sampe kita dapat urutannya seperti berikut:
Code:
0, 1,17,-13,3,14,-23,-51,52,1
nah udah agak mulai susah di terka kan, angka apa itu coba,
mari kita terapkan di source code

berikut source code yg sudah dimodifikasi:
Code:
#include <stdio.h>

main(){
    int selisih[10] = {0, 1,17,-13,3,14,-23,-51,52,1};
    int basis = 100;
    int i;

    for(i=0; i < 10; i++){
        basis = basis + selisih[i];
        printf("%c", basis);
    }
}
nah itu aja udah mulai susah dibaca kan... ketawaketawa


mari kita lanjut lagi kita obfuscate dengan menggunakan #define
berikut syntax untuk #define
Code:
#define <identifier> <replacement token list>                    // object-like macro
#define <identifier>(<parameter list>) <replacement token list>  // function-like macro, note parameters
silahkan googling atau buka buku untuk referensi lebih dalam mengenai #define

mari kita define beberapa fungsi , printf sebagai '_' , int sebagai '_i', for sebagai '_f' dan main sebagai '_m' ini bisa terserah kamu mau jadi apa, coba bandingkan source code dibawah ini dengan source code yg sebelumnya:
Code:
#include <stdio.h>
#define _ printf
#define _m main
#define _i int
#define _f for

_m(){
    _i selisih[10] = {0, 1,17,-13,3,14,-23,-51,52,1};
    _i basis = 100;
    _i i;

    _f(i=0; i < 10; i++){
        basis = basis + selisih[i];
        _("%c", basis);
    }
}

gimana udah mulai ngerti kan?
lanjut, mari kita ganti variable basis dan selisih menjadi b dan s
jadinya seperti ini:
Code:
#include <stdio.h>
#define _ printf
#define _m main
#define _i int
#define _f for

_m(){
    _i s[10] = {0, 1,17,-13,3,14,-23,-51,52,1};
    _i b = 100;
    _i i;

    _f(i=0; i < 10; i++){
        b = b + s[i];
        _("%c", b);
    }
}

hehe itu aja udah susah kan dibacanya, mari kita lanjutkan lagi menggunakan definenya, coba bandingkan source berikut dengan yg sebelumnya:
Code:
#include <stdio.h>
#define _ printf
#define _m main
#define _i int
#define _f for
#define __d _m(){
#define __e _i s[10] =
#define __v {0, 1,17,-13,3,14,-23,-51,52,1};


__d
    __e __v
    _i b = 100;
    _i i;

    _f(i=0; i < 10; i++){
        b = b + s[i];
        _("%c", b);
    }
}

lanjut lagi kita define untuk _i b = 100; dan _i i;
bandingkan source code dibawah ini dengan yg sebelumnya:
Code:
#include <stdio.h>
#define _ printf
#define _m main
#define _i int
#define _f for
#define __d _m(){
#define __e _i s[10] =
#define __v {0, 1,17,-13,3,14,-23,-51,52,1};
#define __i _i b = 100;
#define __l _i i;

__d
    __e __v
    __i
    __l

    _f(i=0; i < 10; i++){
        b = b + s[i];
        _("%c", b);
    }
}

nah udah mulai makin mantap kan... mari dilanjutkan untuk definenya lagi..perhatikan lagi perbandingannya
Code:
#include <stdio.h>
#define _ printf
#define _m main
#define _i int
#define _f for
#define __d _m(){
#define __e _i s[10] =
#define __v {0, 1,17,-13,3,14,-23,-51,52,1};
#define __i _i b = 100;
#define __l _i i;
#define __z _f(i=0;
#define __c i < 10; i++){

__d
    __e __v
    __i
    __l

    __z __c
        b = b + s[i];
        _("%c", b);
    }
}

ayoooo dikit lagiii.. sekarang yg bagian bawahnya ya.. liat lagi ni ane buat jadi seperti ini
Code:
#include <stdio.h>
#define _ printf
#define _m main
#define _i int
#define _f for
#define __d _m(){
#define __e _i s[10] =
#define __v {0, 1,17,-13,3,14,-23,-51,52,1};
#define __i _i b = 100;
#define __l _i i;
#define __z _f(i=0;
#define __c i < 10; i++){
#define __0 b = b + s[i];
#define ___d _("%c",
#define ___e b); }}

__d
    __e __v
    __i
    __l

    __z __c
        __0
        ___d ___e
perhatikan untuk yg ___d dan ___e itu garis bawahnya tiga, karena yg garis bawahnya dua __d dan __e sudah kita define sebelumnya..

oke mari coba kita bersih bersihkan spasi dan newlinenya , jadinya seperti ini :
Code:
#include <stdio.h>
#define _ printf
#define _m main
#define _i int
#define _f for
#define __d _m(){
#define __e _i s[10] =
#define __v {0, 1,17,-13,3,14,-23,-51,52,1};
#define __i _i b = 100;
#define __l _i i;
#define __z _f(i=0;
#define __c i < 10; i++){
#define __0 b = b + s[i];
#define ___d _("%c",
#define ___e b); }}
__d __e __v __i __l __z __c __0 ___d ___e

gimana mantap kan???
dibutuhkan kreatifitas dan ketekunan untuk trial n error sehingga kamu bisa makin mantap meng-obfuscate sebuah code...

dihalaman ini ada source code para pemenang dari IOCCC
http://www.ioccc.org/years.html
silahkan di oprek buat belajar

sekian tutorial dari ane nubitol...
semoga bermanfaat mantap

Find all posts by this user
Quote this message in a reply
 Reputed by :  anko_kum4ru(+1) , mariachi(+1) , wahyu_devilzc0de™(+1) , Killu4(+1) , ditatompel(+1) , av01d3r(+1) , schumbag(+1)
01-14-2012, 10:23 PM
Post: #2
tabun Offline
./Junk3r C4d3t
Posts: 1,802
Joined: Dec 2011
Reputation: 33
RE: Obfuscate source code C (bikin source code susah dibaca)
mantap... smangat
donita, selain ppnya cakep, tutornya jga cakep.. mantap
ane izin arsipin dulu nih neh.. belajar
Find all posts by this user
Quote this message in a reply
01-14-2012, 10:27 PM
Post: #3
mariachi Away
has been reboot
**
Moderators
Posts: 2,373
Joined: Nov 2010
Reputation: 55
RE: Obfuscate source code C (bikin source code susah dibaca)
ane mabokkkk.... pusing
Find all posts by this user
Quote this message in a reply
01-14-2012, 10:36 PM
Post: #4
chaer.newbie Online
--------------------------
*****
Dewa
Posts: 5,288
Joined: Dec 2009
Reputation: 184
RE: Obfuscate source code C (bikin source code susah dibaca)
dewa hah mabok gw baca programnya
Find all posts by this user
Quote this message in a reply
01-14-2012, 10:38 PM
Post: #5
Killu4 Away
./Devilz Advisor
Posts: 744
Joined: Nov 2011
Reputation: 16
RE: Obfuscate source code C (bikin source code susah dibaca)
Busyet dah bener2 diputer alur programnya,terlalu banyak sesuatu jadi pusing
Brb cari tahu apa itu "define" dlu deh ngacir
Find all posts by this user
Quote this message in a reply
01-14-2012, 10:41 PM
Post: #6
castro Offline
./ Kimcil HunteR \.
Posts: 550
Joined: Feb 2011
Reputation: 27
RE: Obfuscate source code C (bikin source code susah dibaca)
mantap sekali nih omz..
algortima enkripsinya bikin mimisan
btw cuma bisa buat bahasa C aja ya?? galau
ane lagi cari yang beginian buat di java omz prustasi
Find all posts by this user
Quote this message in a reply
01-14-2012, 10:52 PM (This post was last modified: 01-14-2012 10:52 PM by ketek.)
Post: #7
ketek Offline
bocah ingusan
*******
Administrators
Posts: 2,180
Joined: Jan 2010
Reputation: 385
RE: Obfuscate source code C (bikin source code susah dibaca)
(01-14-2012 10:41 PM)castro Wrote:  mantap sekali nih omz..
algortima enkripsinya bikin mimisan
btw cuma bisa buat bahasa C aja ya?? galau
ane lagi cari yang beginian buat di java omz prustasi

untuk java nanti klo ada kesempatan ane coba buat tutornya
om bisa coba buka website2 berikut ini
http://www.dmoz.org/Computers/Programmin...fuscators/

thread ini dikhususkan untuk C aja ya.. malu
Find all posts by this user
Quote this message in a reply
01-14-2012, 11:06 PM
Post: #8
CitooZz Offline
./pemburu kimblak
**
Moderators
Posts: 1,301
Joined: Jun 2011
Reputation: 22
RE: Obfuscate source code C (bikin source code susah dibaca)
mantap om,.

nice cerrrr ketawa
Find all posts by this user
Quote this message in a reply
01-14-2012, 11:18 PM
Post: #9
castro Offline
./ Kimcil HunteR \.
Posts: 550
Joined: Feb 2011
Reputation: 27
RE: Obfuscate source code C (bikin source code susah dibaca)
(01-14-2012 10:52 PM)donita Wrote:  
(01-14-2012 10:41 PM)castro Wrote:  mantap sekali nih omz..
algortima enkripsinya bikin mimisan
btw cuma bisa buat bahasa C aja ya?? galau
ane lagi cari yang beginian buat di java omz prustasi

untuk java nanti klo ada kesempatan ane coba buat tutornya
om bisa coba buka website2 berikut ini
http://www.dmoz.org/Computers/Programmin...fuscators/

thread ini dikhususkan untuk C aja ya.. malu

siap omz smangat
mkasih omz link nya,ane ijin belajar dulu di situ cuteboy
Find all posts by this user
Quote this message in a reply
01-15-2012, 01:07 AM
Post: #10
Belatung Kubur Offline
Wahyu Adi Prasetyo
Posts: 751
Joined: Dec 2011
Reputation: 51
RE: Obfuscate source code C (bikin source code susah dibaca)
donitaaaaaaaaaaa... mimisan temenan
Find all posts by this user
Quote this message in a reply
« Next Oldest | Next Newest »
Pages (2): 1 2 Next »
Post Reply 


Topic Tools
Topic Link :
BBCode :
HTML Code :
View a Printable Version Send Thread to a Friend Subscribe to this thread
Submit Google Submit Face book Submit to Digg Submit to Reddit Submit to Furl Submit to Del.icio.us Submit to Jeqq

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  [Ask] C++ bikin botak coolkuya 2 163 12-19-2012 07:59 AM
Last Post: rusdy
  [Ask] Need Help, inefficient c source code cr0security 0 89 10-26-2012 05:00 AM
Last Post: cr0security
Sad [Ask] Bikin output segitiga bintang begini modelnya gimana ya? farhan007 5 643 10-16-2012 10:49 PM
Last Post: Rpm46
  Shell Code Generator wenkhairu 15 4,047 08-11-2012 12:20 AM
Last Post: pistol-air
  Paid Botnet Source print V4rcyion 0 191 06-16-2012 08:49 PM
Last Post: V4rcyion
  "USE CASTING IN YOUR C CODE BITCH" garfield 2 245 05-11-2012 01:41 PM
Last Post: wendyaja
  c quiz - find the bug of this c code ev1lut10n 11 854 03-22-2012 05:02 PM
Last Post: ack_attack
  (ASK) Cara menggunakan Code::Blocks IDE on UBUNTU Black.exe 3 721 03-11-2012 10:48 AM
Last Post: DC_Zulfikar
  [Ask] gimana caranya jadiin source ini exe ya? badwolves1986 17 1,345 02-21-2012 04:43 PM
Last Post: yusufelirhab
Tongue [Tutor] Bikin port scanner linuxhit 6 1,636 02-12-2011 04:01 AM
Last Post: putri sitasari

Users Browsing
1 Guest(s)

  • Contact Us
  • devilzc0de
  • Return to Top
  • Mobile Version
  • RSS Syndication
  • Help
Current time: 05-26-2013, 10:30 AM Powered By MyBB, © 2002-2013 MyBB Group. Theme created by Justin S. | Mixed By Chaer.Newbie | Fixed By Aditya

USING THIS SITE INDICATES THAT YOU HAVE READ AND ACCEPT OUR TERMS. IF YOU DO NOT ACCEPT THESE TERMS, YOU ARE NOT AUTHORIZED TO USE THIS SITE