[TUTORIAL]MEMBUAT VIRUS DAN MEMINDAHKAH FILE SELAIN EXTENSI DOC DENGAN MENGGUNAKAN BASH


Assalamu alaikum wr...wb.

Hallo semuanya...
Sekarang kita ketemu lagi untuk belajar linux, kali ini kita tidak akan membahas lagi tentang terminal linux, shell scripting maupun Arimathmatic compararisons, karena saya yakin teman-teman semua sudah pada bisa semua. Sekarang kita akan belajar sesuatu yg lebih keren sedikit dari pada hanya sekedar membuat program untuk menampilkan bilangan prima, tapi kali ini kita akan belajar membuat sebuah virus dan memindahkan file selain extensinya doc dengan menggunakan bash.
            Namun sebelum kita membuat virus dan memindahkan file selain extensi doc kita juga harus terlebih dahulu apa-apa saja yg harus di lakukan sebelum kita membuatnya. Nah kali ini saya juga akan membahas tentang proses  dan daemon, karena ini nanti bakal ada hubungannya dengan program yg akan kita buat.

Proses
Proses adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah proses dibuat melalui system call create-process yang membentuk proses turunan ( child process) yang dilakukan oleh proses induk ( parent process). Proses turunan tersebut juga mampu membuat proses baru sehingga semua proses ini pada akhirnya membentuk pohon proses.
Pengelolaan Proses
Proses perlu dikelola karena dalam sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O. Sistem operasi juga bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan managemen proses seperti:
• Pembuatan dan penghapusan proses pengguna dan sistem proses.
• Menunda atau melanjutkan proses.
• Menyediakan mekanisme untuk proses sinkronisasi.
• Menyediakan mekanisme untuk proses komunikasi.
• Menyediakan mekanisme untuk penanganan deadlock.
Daemon
Daemon adalah sebuah proses yang bekerja pada background karena proses ini tidak memiliki terminal pengontrol. Daemon adalah sebuah proses yang didesain supaya proses tersebut tidak mendapatkan intervensi dari user. Daemon biasanya bekerja dalam jangka waktu yang sangat lama dan bertugas menerima request dan menjalankan responsnya. Adapun hal-hal yang membedakan daemon dengan proses lainnya adalah: daemon tidak memiliki parent proses ID, daemon tidak memiliki pengontrol baik itu STDOUT, STDIN, maupun STDERR, dan daemon berjalan dalam previlege super user.

Cara Membuat Daemon
            Sebelum kita membuat daemon kita harus terlebih dahulu apa-apa saja proses yg di perlukan untuk membuat daemon tersebut. Ada 6 proses untuk membuat daemon yaitu sebagai berikut :
1.      Fork parent process dan penghentian parent proses
2.      Mengubah mode file menggunakan UMASK(0)
3.      Membuat Unique sesion ID (SID)
4.      Mengubah directory kerja
5.      Menutup standar I/O desriptor
6.      Membuat loop utama(inti kerja dari daemon)

Fork Parent Proses Dan Pengehentian Parent Proses

            Yang pertama kali kita harus lakukan adalah melakukan forking gunanya itu nanti untuk membuat proses yang baru kemudian mematikan parent prosesnya. Proses induk yang mati nanti akan membuat sytem mengira kalau proses telah selesai sehingga akan kembali ke terminal user. Dari langkah tersebut kita akan mendapatkan sebuah proses anak yang melanjutkan program setelah induknya mati, sehingga kita mendapatkan sebuah proses yang hampir bekerja pada backround.

pid_t,pid;
pid=fork();
if(pid<0)
{
            exit(EXIT_FAILURE);
}
if(pid<0)
{
            exit(EXIT_SUCCESS);
}

Jika pembuatan prosesnya berhasil maka parent prosesnya akan langsung di matikan. Selanjutnya kita mengubah mode file menggunakan umask agar  mendapatkan akses penuh dari file yang di buat daemon.

Mengubah Mode File Menggunakan UMASK(0)
            Untuk menuliskan beberapa file (termasuk logs) yang dibuat oleh daemon, mode file harus di ubah terlebih dahulu untuk memastikan bahwa file tersebut dapat ditulis dan dibaca secara benar. Pengubahan mode file menggunakan implementasi umask(). Umask(0) berfungsi untuk mendapatkan akses penuh dari file yang di buat daemon. Syntaxnya sbb:

umask(0)

Membuat Unique sesion ID (SID)
            Proses anak atau sering disebut dengan child proses harus memiliki unik SID dari kernel untuk dapat beroperasi. Sebaliknya, child proses menjadi Orphan proses pada system. Tipe pid_t yang di deklarasikan pada bagian sebelumnya, juga di gunakan untuk membuat SID baru untuk proses anak. Pembuatan SID baru menggunakan implementasi setsid(). Fungsi setsid() memiliki return tipe yang sama seperti fork().

sid=setsid();
if(sid<0)
{
            exit(EXIT_SUCCESS);
}

Mengubah directory kerja
            Setelah mengubah unique SID kita juga harus mengubah direktory kerja yang aktif gunanya itu untuk menuju kesuatu tempat yang telah pasti akan selalu ada. Pengubahan tempat direktori kerja dapat dilakukan dengan implementasi fungsi chdir().

if((chdir(“/”)<0)
{
exit(EXIT_FAILURE);
}

Menutup standar I/O descriptor
Kemudian setelah semua proses di lakukan , kita juga harus melakukan proses yang satu ini yaitu menutup standar I/O descriptornya (STDIN, STDOUT, STDERR). Karena daemon tidak perlu menggunakan kendali terminal, file descriptor dapat berulang dan berpotensi memiliki bahaya dalam hal keamanan. Untuk mengatasi hal tersebut maka digunakan implemtasi fungsi close().

close(STDIN_FILENO)             
close(STDOUT_FILENO)
close(STDERR_FILENO)

Membuat loop utama(inti kerja dari daemon)
            Nah ini merupakan proses yang sangat penting dalam membuat daemon, yaitu membuat inti kerja dari daemon (loop utama). Karen daemon berkerja dalam jangka waktu tertentu ,sehingga di perlukan sebuah looping. Misalnya daemonnya akan berkerja setiap 10 detik sekali maka kita harus mendeklarasikannya dengan cara sebagai berikut.

while(1)
{
sleep(10);        //daemonnya akan bekerja setiap 10 detik
}
exit(EXIT_SUCCESS);

sekarang kita semua sudah tahu proses-proses yang dibutuhkan untuk membuat daemon, untuk implementasi daemonnya itu kita harus menggabungkan semua proses yang diatas agar menjadi sebuah daemon;

#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<errno.h>
#include<unistd.h>
#include<syslog.h>
#include<string.h>
int main(void)
{
pid_t,pid;
pid=fork();
if(pid<0)
{
                        exit(EXIT_FAILURE);
}
if(pid>0)
{
                        exit(EXIT_SUCCESS);
}
umask(0);
sid=setsid();
if(sid<0)
{
                        exit(EXIT_FAILURE);
}
if((chdir(“/”)<0)
{
exit(EXIT_FAILURE);
}
close(STDIN_FILENO)             
close(STDOUT_FILENO)
close(STDERR_FILENO)
while(1)
{
sleep(10);       
}
exit(EXIT_SUCCESS);
}

          Nah sekarang kita sudah tahu semua bagaimana cara membuat daemon dan apa-apa saja proses yg dibutuhkan untuk membuat daemon itu. Karena daemon itu bekerja pada background dan prosesnya ini tidak memiliki terminal pengontrol maka kita bisa mengembangkan daemon itu menjadi sebuah virus sederhana hanya cukup dengan mengganti proses loopingnya.

Membuat Virus
Nah sekarang kita sudah tahu semua bagaimana cara membuat daemon dan apa-apa saja proses yg dibutuhkan untuk membuat daemon itu. Karena daemon itu bekerja pada background dan prosesnya ini tidak memiliki terminal pengontrol maka kita bisa mengembangkan daemon itu menjadi sebuah virus sederhana hanya cukup dengan mengganti proses loopingnya.
Sekarang kita akan belajar bagaimana caranya membuat sebuah virus. Disini saya akan membuat sebuah virus ,dimana virus tersebut terdiri dari file aplikasi virus dan daftar quotes dalam sebuah file bernama virus.txt. Jika virus ini ada dalam komputer anda, maka akan muncul pop-up dari semua isi file virus.txt yang terpisah dengan tanda delimiter koma (,) satu persatu setiap 10 detik sekali.

Langkah-langkah yang harus kita lakukan adalah  sebagai berikut :
1.       Pastikan di laptop teman-teman sudah terinstall linux, disini saya menggunakan ubuntu.
2.  Setelah itu teman-teman membuka linuxnya dan membuka GEDIT atau bisa juga dengan menggunakan perintah nano di terminal.
3.      Setelah itu teman-teman menuliskan scriptnya seperti di bawah ini

#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<errno.h>
#include<unistd.h>
#include<syslog.h>
#include<string.h>
int main(void)
{
pid_t,pid;
pid=fork();
if(pid<0)
{
                        exit(EXIT_FAILURE);
}
if(pid>0)
{
                        exit(EXIT_SUCCESS);
}
umask(0);
sid=setsid();
if(sid<0)
{
                        exit(EXIT_FAILURE);
}
//if((chdir(“/”)<0)
//{
//exit(EXIT_FAILURE);
//}
//close(STDIN_FILENO)             
//close(STDOUT_FILENO)
//close(STDERR_FILENO)
  while(1)
 {
            FILE * load=fopen(“/home/rahmat/Modul2/virus.txt”,”r”);
            char huruf;
            char sting[100];
            int i;
            for(i=0; i<100; i++) string[i]=’\0’;
            int count=0;
while(!feof(load))
            {
                        fscanf(load, “%c”, &huruf);
                        if(huruf==’,’)
                        {
                                    sleep(10)
                                    char temp[]=”zenity –warning –text=’ ”;
                                    strcat(temp,string);
                                    strcat(temp,” ‘ ”);
                                    system(tempt);
                                    count=0;
                                    for(i=0; i<100; i++) string[i]=’\0’;
                        }
                        else
                        {
                                    String[count]=ptr;
                                    Count++;
                        }
}
}
exit(EXIT_SUCCESS);
}

4.  Kemudian save pogram teman-teman di direktori yang teman-teman2 inginkan. Disini saya menyimpan di direktori Modul2
5.   Lalu buka terminal dan ketikkan password teman2 jika misalnya teman2 loginnya sepagai root atau superuser.
6. Kemudian langsung menuju kedirektori tempat teman2 menyimpan file yg tdi dengan menggunakan perintah cd . misalkan cd  /home/rahmat/Modul2/


7.   Setelah itu , kini saat nya kita untuk menjalankan pogramnya , yaitu dengan cara gcc namafilemu.c –o ubahnamafilemu.o . gcc itu di gunakan untuk mengexecute file.c agar bisa di jalankan di linux.  Disini saya mengganti nama filenya dengan gcc dae1.c -o virus.o


8.    Kemudian execute program dengan mengetik ./namafilemu.o lalu tekan enter, dan akan muncul tampilan seperti dibawah ini. 


9.     Nah program virus mu telah berhasil, sekarang satu hal lagi yang sangat penting dan gak boleh kamu lupa lakukan yaitu membunuh virusmu atau menghentikannya dengan cara kill [PID] virusmu atau  langsung pkill[namafilemu.o].  Tetapi pertama yg harus kamu lakukan adalah dengan menekan ps aux diterminal ps aux itu gunanya untuk melihat dan menampilkan kegiatan user kelayar. Nah baru setelah kegiatan usernya ditampilkan kamu bisa langsung mengkill virusnya.



Penjelasannya :

while(1)
{
            //untuk membuka dan membaca file virus yang ada di direktori Modul2
            FILE * load=fopen(“/home/rahmat/Modul2/virus.txt”,”r”);
            //mendeklarasikan variabel huruf  yg bertipe karakter
            char huruf;
                        char sting[100];
            int i;
            //proses looping untuk mengosongkan isi stringnya
            for(i=0; i<100; i++) string[i]=’\0’;
            int count=0;
            //selama dia tidak end of file maka terus di baca isi dari file virus.txt
while(!feof(load))
            {
                        //mengambil isi dari file virus.txt setiap per karakter
                        fscanf(load, “%c”, &huruf);
                        //kondisi jika hurufnya sudah sampai di koma
                        if(huruf==’,’)
                        {
                                    //virusnya akan berjalan setiap 10 detik
                                    sleep(10)
                                    //untuk menampilkan isi dari virusnya ke layar
                                    char temp[]=”zenity –warning –text=’ ”;
                                    //mengambil isi string kemudian di tempelkan di temp
                                    strcat(temp,string);
            //mengambil tanda ‘ kemudian di tempelkan di temp
 agar fungsi zenitynya bisa di jalankan
                                    strcat(temp,” ‘ ”);
                                    //menjalankan fungsi zenity yg di temp
                                    system(tempt);
                                    count=0;
                                                //proses looping untuk mengosongkan isi stringnya
                                    for(i=0; i<100; i++) string[i]=’\0’;
                        }
                        else
                        {
                                    String[count]=ptr;
                                    Count++;
                        }
}
}
exit(EXIT_SUCCESS);

Kini teman-teman telah berhasil membuat sebuah virus yang berjalan setiap 10 detik sekali. Selanjutnya kita akan belajar bagaimana caranya jika didalam suatu folder misalnya nama folder itu word dan terdapat banyak jenis file yang extensi berbeda misalnya extensinya .jp , .png, .txt ,. cdr, .doc dan lain2 di dalamnya . Namun kita hanya ingin di folder word itu terdapat file yang berektensi .doc saja. sedangkang yg selain extensi .doc di pindahkan ke folder yag lain misalnya nama foldernya campuran. 

Memidahkan File Selain Extensi .Doc Dengan Menggunakan Bash

Langkah-langkahnya juga sama dengan dengan caranya membuat virus diatas namun yg membedakannya hanya saja di looping daemonnya saja. Langkah-langkahnya adalah sebagai berikut :
1.      Buka GEDIT atau dengan mengetikkan nano di terminal.
2.      Lalu tuliskan scriptnya standar daemonnya seperti diatas, hanya saja kali ini di proses looping nya yg berbeda yaitu sebagai berikut.

#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<errno.h>
#include<unistd.h>
#include<syslog.h>
#include<string.h>
int main(void)
{
pid_t,pid;
pid=fork();
if(pid<0)
{
                        exit(EXIT_FAILURE);
}
if(pid>0)
{
                        exit(EXIT_SUCCESS);
}
umask(0);
sid=setsid();
if(sid<0)
{
                        exit(EXIT_FAILURE);
}
if((chdir(“/home/rahmat/Modul2”)<0)
{
exit(EXIT_FAILURE);
}
close(STDIN_FILENO)             
close(STDOUT_FILENO)
close(STDERR_FILENO)
while(1)
{
            //pindah kedirektori word
            system(“cd /home/rahmat/Modul2/word”);
            //setelah itu mencari nama file selain ektensi doc di direktori word lalu di pindahkan                             kedirektorinya campuran
system(“find . –type f ! –name ‘*.doc’ –exec mv {} /home/rahmat/Modul2/campuran ‘;’”);
}
exit(EXIT_SUCCESS);
}

3.      Kemudian save script program kamu dan execute program kamu dengan cara yang sama di atas yaitu dengan cara menekan gcc namafilemu.c –o ubahnamafilemu.o di terminal, disini saya menganti nama filenya dengan gcc daemon3.c –o pindah.o
4.      Lalu jalankan filenya tdi dengan menuliskan  ./pindah.o di terminal lalu tekan enter.
5.      Sekarang programnya sedang berjalan dan sudah selesai. Sekarang cek direktori tujuan kamu tadi apakah sudah berpindah apa belum.
6.    Setelah itu bunuh atau hentikan proses daemonnya  dengan cara ketik ps aux di terminal. Lalu tulis kill pid daemonnya, misalnya kill 2022 atau bisa langsung dengan pkill namadaemonmu.

Gimana teman-teman kira-kira sudah paham belum apa itu proses , daemon, cara mengexecute file.c di linux cara memindahkan file selain extensi .doc dan cara membuat virus sederhana.

Terima kasih  sudah mau mampir. semoga dapat membantu. tunggu update an berikutnya…. :)
wassalamualaikum wr.wb
Artikel Selanjutnya Artikel Sebelumnya
Belum Ada Komentar :
Tambahkan Komentar
Comment url