Indonesian Back|Track Team
[C] GNU/Linux exec() Functions Family - Printable Version

+- Indonesian Back|Track Team (https://www.indonesianbacktrack.or.id/forum)
+-- Forum: General Zone (https://www.indonesianbacktrack.or.id/forum/forum-172.html)
+--- Forum: Programming (https://www.indonesianbacktrack.or.id/forum/forum-95.html)
+---- Forum: C, C++, C# (https://www.indonesianbacktrack.or.id/forum/forum-203.html)
+---- Thread: [C] GNU/Linux exec() Functions Family (/thread-4900.html)

Pages: 1 2


[C] GNU/Linux exec() Functions Family - T3rminate1 - 08-13-2013

Selamat malam warga IBT, selamat hari raya Idul Fitri 1434 H, mohon maaf lahir batin sebelumnya.
Oke langsung saja, kali ini ane mau ngebahas keluarga dari fungsi exec() yang terdapat pada bahasa C di lingkungan GNU/Linux.

Sekilas tentang exec
1. Fungsi exec ini ketika di invoke atau dipanggil maka ia akan me-replace process dengan program baru yang dieksekusi oleh fungsi ini.

2. Terdapat pada file unistd.h
3. Hanya akan mengembalikan sebuah nilai (return value) jika terdapat kesalahan dalam proses pengeksekusian oleh fungsi ini. Dalam hal ini, return value nya adalah -1

Deklarasi fungsi
Code:
#include <unistd.h>

extern char **environ;

int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg,..., char * const envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execvpe(const char *file, char *const argv[], char *const envp[]);
int execve(const char *filename, char *const argv[], char *const envp[]);

Varian dari fungsi exec

1. Fungsi yang memiliki huruf p
Code:
execvp
execlp

kedua fungsi ini mencari file executable pada tiap path yang terdapat didalam environment variable PATH.
Namun, apabila terdapat karakter slash "/" pada argumen pertama, maka PATH akan diabaikan.

2. Fungsi yang memiliki huruf v
Code:
execvp
execv
execve

Fungsi - fungsi ini menerima argumen untuk program yang akan dieksekusi sebagai NULL-terminated array pointer ke string. Dan element terakhir dari array ini harus NULL

3. Fungsi yang memiliki huruf l
Code:
execl
execle
execlp

Fungsi - fungsi ini menerima argumen untuk program yang akan dijalankan menggunakan mekanisme varargs dari bahasa C.
Misalnya: arg0,arg1,arg2,arg3,argn...

4. Fungsi yang memiliki huruf e di akhir nama
Code:
execve
execvpe
execle

Fungsi - fungsi ini menerima argument terakhir sebagai environment variable, argument ini bertipe array dari pointer ke string. Dan tiap string harus berbentuk seperti ini -> "VARIABLE=value". Dan element terakhir dari array ini harus NULL


Contoh penggunaan
Code:
#include <stdio.h>
#include <unistd.h>

int main()
{
    /* Variabel untuk menampung argument untuk program yang akan dijalankan
       index pertama berisi nama program yang akan dieksekusi */
    char* args[] = {"ls","-l","/",NULL};
    
    /* Eksekusi! */
    execvp("ls",args);
    
    fprintf(stderr, "Error ketika mengeksekusi program\n");
}

Sekian dari saya, mohon maaf kalo banyak kesalahan, saya juga masih belajar.
Kritikan, saran, masukan akan sangat membantu proses belajar saya.
Jangan lupa koreksi kalau ada kesalahan. Thanks
Wassalam !

Referensi:
http://man7.org/linux/man-pages/man3/exec.3.html
http://man7.org/linux/man-pages/man2/execve.2.html


RE: [C] GNU/Linux exec() Functions Family - alkaaf - 08-13-2013

nice om. tapi yang sering dipake di shellcoding tuh "execve" Big Grin wkwkwk. tp gpp kok. Big Grin


RE: [C] GNU/Linux exec() Functions Family - T3rminate1 - 08-14-2013

(08-13-2013, 10:50 PM)alkaaf Wrote: nice om. tapi yang sering dipake di shellcoding tuh "execve" Big Grin wkwkwk. tp gpp kok. Big Grin

Woh, ane baru tau om. Belum pernah belajar shellcoding... >.<

Code ane diatas juga ada yang salah, ane ga ngeliat tombol edit dimanapun, jadi ga bisa ane revisi secara langsung.....


RE: [C] GNU/Linux exec() Functions Family - alkaaf - 08-14-2013

hehe lapor aja ke momod om. ntar di benerin


RE: [C] GNU/Linux exec() Functions Family - ekawithoutyou - 08-14-2013

pm ane om biar ane benerin mana yg mau dibenerin Big Grin


RE: [C] GNU/Linux exec() Functions Family - T3rminate1 - 08-14-2013

(08-14-2013, 11:48 AM)ekawithoutyou Wrote: pm ane om biar ane benerin mana yg mau dibenerin Big Grin

Nahh, om eka penyelamat... Tunggu om, ane pm sekarang...

(08-14-2013, 06:59 AM)alkaaf Wrote: hehe lapor aja ke momod om. ntar di benerin

Iyaa siap om, tuh udah ada om eka. haha thanks Big Grin


RE: [C] GNU/Linux exec() Functions Family - ekawithoutyou - 08-14-2013

Apakah Sudah betul Big Grin kalo masih salah PM lagi yak


RE: [C] GNU/Linux exec() Functions Family - T3rminate1 - 08-14-2013

(08-14-2013, 12:15 PM)ekawithoutyou Wrote: Apakah Sudah betul Big Grin kalo masih salah PM lagi yak

Sejauh ini sudah betul om, terima kasih banyak Big Grin


RE: [C] GNU/Linux exec() Functions Family - ekawithoutyou - 08-14-2013

(08-14-2013, 12:17 PM)T3rminate1 Wrote:
(08-14-2013, 12:15 PM)ekawithoutyou Wrote: Apakah Sudah betul Big Grin kalo masih salah PM lagi yak

Sejauh ini sudah betul om, terima kasih banyak Big Grin

Ok om Sep Wink


RE: [C] GNU/Linux exec() Functions Family - mywisdom - 08-16-2013

bagus bro, anu ni bukanya yang buat bikin exploit ya mas bro