Langsung ke konten utama

Tool - Tool Programming di Linux

Tool - Tool Programming di Linux

Penulis: mywisdom

Penjelasan Jargon
- elf binary: merupakan bentuk program yang bisa dieksekusi di sistem linux.

Nasm (Netwide Assembler)
Merupakan assembler / dissasembler untuk kode-kode bahasa assembly di mesin linux (intel assembly)

Untuk mengkompile gunakan perintah ini:

Code:
nasm -f elf nama_program_anda.asm

Lalu kita linker dengan ld sehinga menjadi suatu elf executable :
Code:
ld nama_program_anda.o -o nama_program_anda


GCC (Gnu C Compiler)
Merupakan kompiler untuk Bahasa C dan Bahasa C++.

Contoh penggunaan:
Code:
gcc nama_program.c -o nama_program

Jadi misal nama file c adalah nama_program.c setelah kita kompile dengan gcc menghasilkan suatu elf executable dengan nama: nama_program

Beberapa contoh opsi-opsi gcc:

Code:
-g
Untuk informasi debugging yang bermanfaat saat proses pencarian bug dengan gdb (gnu debugger).

Code:
-Wall
Untuk menampilkan seluruh pesan kesalahan saat proses kompilasi.

Code:
-static
Opsi kompilasi ini untuk mencegah dependensi

Untuk lebih lengkapnya silahkan cari di google tentang opsi-opsi gcc.


objdump

objdump merupakan salah satu tool yang berguna saat melakukan dissasembly suatu program.
Ok, sebagai eksperimen manfaat dari objdump kita buat suatu program dengan asm intel syntax menggunakan syscall nomor 1 (exit):

Code:
;exit.asm
[SECTION .text]
global _start
_start:
        xor eax, eax
        mov al,1
        xor ebx,ebx
        int 0x80

Simpan dengan nama exit.asm lalu ubah jadi elf binary:
Code:
nasm -f elf exit.asm
ld -o exit exit.o

Misal kita mao mendissasemble dari elf binarynya ke at&t asm sytax:
Code:
objdump -S exit

maka tampilan hasilnya :
Code:
objdump -S exit

exit:     file format elf32-i386

Disassembly of section .text:

08048060 <_start>:
8048060:       31 c0                   xor    %eax,%eax
8048062:       b0 01                   mov    $0x1,%al
8048064:       31 db                   xor    %ebx,%ebx
8048066:       cd 80                   int    $0x80

Di mana kita bisa melihat source codenya dalam mode AT&T syntax (yang kolom paling kanan).

ndisasm

Suatu program untuk membantu kita melakukan dissasemble. Misal kita punya shellcode:
\x31\xc0\x40\x89\xc3\xcd\x80 untuk kita disasseble.

ketikkan:
Code:
echo "\x31\xc0\x40\x89\xc3\xcd\x80">shellcode

Lalu kita disassemble ke mode 32 bit:
Code:
ndisasm -b32 shellcode


wc

WC (word count) sebenarnya hanyalah utilitas dasar di sistem linux tapi juga sering digunakan saat pembuatan program. Fungsinya sesuai dengan namanya untuk menghitung jumlah karakter di suatu file.
misal:
Code:
wc nama_file


GDB
GDB (Gnu Debugger) merupakan suatu program yang berguna untuk menganalisis suatu program terhadap kesalahan atau bug pemrograman.

misal:
Code:
gdb nama_program

Ok untuk lebih jelasnya mari kita praktekkan sedikit penggunaan gdb. Misal kita buat suatu program dengan nama stackbof.c:
Code:
//stackbof.c
#include
#include
fungsi_yang_vulner(char *temp1, char * temp2)
{
char bufer[400];
strcpy(bufer,temp2);
printf(“Isian data: %s %s\n”,temp1,temp2);
}

int main(int argc, char * argv[])
{
fungsi_yang_vulner(argv[1],argv[2]);
printf(“Isian data Anda: %s %s \n”,argv[1],argv[2]);
}

Lalu Kompile dengan gcc:
Code:
gcc -o stackbof stackbof.c

Dari kode program di atas ada kesalahan yang memungkinkan untuk kita eksploitasi, coba perhatikan kode-kode ini:
char buff[1024];
dan
Code:
strcpy(bufer,temp2);

keterangan:
strcpy akan menyalin argumen program ke dua (argv[2]) ke stack buffer tanpa validasi panjang string.

Ok selanjutnya mari kita sengaja manfaatkan kesalahan kode program tadi untuk mengeksploitasi stack dengan mengirimkan inputan melebihi kapasitas buffer, ketikkan ini dari linux shell Anda:

Code:
./stackbof argumen1 `perl -e ‘print “A”x405′`
Hasil dari eksekusi program dengan argumen di atas akan menyebabkan pesan segmentation fault karena buffer yang ukuranya hanya 100 bytes
menerima salinan string dengan kapasitas yang melebihi buffer sehingga terjadilah yang namanya buffer overflow.

Untuk menganalisis kesalahan program kita jalankan gdb:

Code:
gdb -q stackbof

Analisis dengan gdb di mana program dirun dengan argumen ” `perl -e ‘print “A”x1040′`” :

Code:
# gdb -q stackbof
Using host libthread_db library “/lib/libthread_db.so.1″.
(gdb) run argumen1 `perl -e ‘print “A”x400′`
Starting program: /root/sploits/eksperimen/ezine/stackbof argumen1 `perl -e ‘print “A”x400′`
Isian data: argumen1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ​ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ​ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ​ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ​ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ​
Isian data Anda: argumen1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ​ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ​ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ​ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ​ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ​

Program received signal SIGSEGV, Segmentation fault.
0×08048423 in main ()
(gdb)

terlihat terjadi kesalahan program karena tidak adanya pengecekan panjang string yang masuk ke stack.


GAS

GAS merupakan assembler untuk Assembly dengan sintaks AT&T.

Code:
as nama_program.s -o nama_program.o
ld nama_program.o -o nama_program

Ok sekian dan terima kasih akan saya lanjutkan lain waktu.
Special thanks:
kiddies, gunslinger, flyv666, v3n0m, marc0, aurel666, cakill, cyber mutaqqin chaer newbie, dan masih banyak lagi.
Thanks and greets;
All jasakom crews & members
All devilzc0de crews & members
All jatimcrew crews & members
All yogyacarderlink crews & members

mywisdom
Co-Pas: http://devilzc0de.org

Komentar

Postingan populer dari blog ini

Cara Membuat Mainan Baling-Baling/ Kitiran Lebah Dari Bambu

Bahan-bahan untuk membuat kincir lebah adalah sebagai berikut :

a. bambu diserut dengan lebar kira-kira 1 cm
b. bambu diserut hingga lentur (seperti rangka layang-layang)
c. bambu diserut bulat (diameter sedotan) dengan panjang kira-kira 15 cm
d. bambu diserut bulat pendek seperti batang korek api
e. karton penyangga bagian dalam bungkus rokok
f. benang
g. karet gelang
h. 2 potongan kaleng yang dibengkokkan
i. potongan sedotan secukupnya
selain bahan di atas siapkan pula peralatan seperti gunting, cutter, lem kertas, lem kayu, serta spidol.
sebelum membuatnya, kita harus mempersiapkan bahan-bahannya terlebih dahulu, sebagai berikut :
A. Ambil bambu serut yang besar (bambu a)kemudian patahkan (tidak putus) seperti gambar di bawah ini

setelah dibengkokkan, maka dibuat lubang yang berhadapan seperti dalam gambar di atas.
B. bambu c di belah penampangnya. Ujung yang satu dibelah dua sampai dua per tiga bagian bambu, dan ujung lainnya dibelah empat.

masukkan potongan kaleng be…

Cara Membuat Mainan Mobil Etek-Etek Dari Bambu

Bahan-Bahannya :
Bambu belahsandal bekas, dibuat menjadi 4 buah roda2 unit bambu bulat (diameter 1 cm; panjang 2 cm), bisa pula menggunakan bekas spidol gambarkayu/banbu  panjang (kira-kira 1 meter)1 kaleng bekas susu utuh (kaleng besar : susu kental manis)1/4 bagian kaleng susu kecil merk Bearbrand2 lembaran kaleng tebal (bisa dari kaleng susu kental manis) berukuran 1 cm x 2 cm, dan dibengkokkan/ditekuk 90 derajat. karet gelang secukupnyaCara Membuat :
Bambu belah di potong-potong menjadi gambar berikut

potongan bambu belah sedangkan bahan yang disiapkan menjadi seperti ini

bahan lain yang disiapkan rangkai semua bahan sebagai berikut :
a.  ambil 2 potong bambu no. 1, dan 1 potong bambu no. 2, rangkai seperti gambar, dan diikat dengan karet.

bambu no. 1 & 2 b.  tambahkan bambu no. 3 pada sisi rangkaian di atas

tambah bambu no.3 c.  ikat bambu no.4 pada kira-kira sepertiga bagian paling atas rangkaian.  dan ikatkan dua bambu bulat seperti pada gambar di bawah ini

tambah bambu no. 4 dan b…

Bocah-Bocah Yang Mendadak Terkenal di TV Karena Jago IT Ternyata "Berbohong"?

1. Pembuat salingsapa.com (Muhammad Yahya Harlan)

Source Salingsapa.com Ralat karena pernyataan Yan Harlan (ayah Muhammad Yahya Harlan)
“Memang itu dari CMS tertentu, tapi kita beli lisensinya. Dan dalam aturannya, kalau kita beli lisensinya kita diberi kebebasan untuk mencantumkan atau tidak,” pada Minggu malam 13 Februari 2011
Dalam aturan lisensi di JCow, saat ditelusuri detikINET, memang disebutkan bahwa kata-kata ‘powered by JCow‘ boleh dihilangkan bagi mereka yang membeli lisensi piranti lunak ini.
Yan juga menambahkan, dengan dibelinya lisensi tersebut maka pembeli bebas mengkreasikan source tersebut.
sumber : http://www.detikinet.com/read/2011/02/14/114531/1570726/398/hak-cipta-salingsapa-jadi-bahan-kontroversi/?i991102105
Maka tulisan saya di bawah ini jgn digubris, terimakasih
Pertama saya salut dengan bocah ini, namun setelah saya lakukan view source terhadap web jejaring social miliknya itu, ternyata menggunakan engine jcow.net
Pantas terasa aneh,  seorang bocah ingusan…