Rabu, 05 Desember 2012

Membuat anti virus dengan visual basic

membuat antivirus bagi semua orang merupakan suatu hal yang terlihat sulit bagi mereka,apalagi bagi mereka yang sangat awam bahasa pemrograman


disini aku mau memberikan tutorial tentang cara pembuatan antivirus dari dasar dengan kemampuan sebagai berikut :

-> Teknik checksum
antivirus ini tidak menggunakan teknik scan menggunakan CRC32 melainkan menggunakan teknik READ BYTE langsung dari tubuh virus/worm nya

"Mengapa saya menerapkan teknik ini ?
tentu saja karena waktu scan akan lebih cepat daripada menggunakan CRC32,akurat pada saat pendeteksian & menghemat penggunaan string agar ukuran antivirus nya tidak terlalu besar

-> Fitur karantina file yang terdeteksi
"Dengan adanya fitur ini user tidak perlu takut file nya akan terhapus,karena dengan menggunakan fitur ini,file akan dikarantina oleh antivirus ke dalam suatu folder dan file yang terdeteksi tidak akan bisa di jalankan/di eksekusi"

-> Fitur Heuristic
"Heuristic dalam dunia antivirus berarti mendapatkan virus/worm baru"
pada antivirus ini akan diterapkan 2 teknik heuristic yaitu :

1. Heuristic Icon

Hampir rata-rata semua virus lokal menggunakan icon seperti icon Office word,winamp,Icon Folder yang bertujuan agar user awam mengklik file virus tersebut,
dengan teknik ini antivirus dapat melihat mana file virus yang menyamar dengan icon palsu atau file asli yang tidak terinfeksi virus

2. Heuristic VBS
Dengan teknik ini antivirus mampu membaca source dari file VBS yang biasa di pakai virus,
antivirus akan mencocokan source yang ada pada database dengan source yang terdapat pada virus,jika cocok maka akan langsung di anggap virus

Itu sedikit penjelasan tentang antivirus yang akan kita buat sekarang,
yuk langsung saja kita mulai membuat antivirus nya
saya akan berikan source code fullnya pada akhir postingan

-------------------------------------------
Author : Dias Taufik Rahman a.k.a mydisha
Compiller : Microsoft Visual Basic 6.0
Program Type : Antivirus
Source Code : Yes
-------------------------------------------

1.Buka program microsoft visual basic 6.0 -> Standard EXE -> OK
maka akan tampil form baru sesuai dengan gambar di bawah,desain form sesuai keinginan anda

Spoiler: hide
[Image: gambar1.jpg]

Beri nama form tersebut : frmUtama

2.Setelah form selesai di rubah namanya tambahkan component Mscomctl.Ocx dengan cara
Klik Project -> Components -> Microsoft Windows Common Controls 6.0 -> lalu klik OK
Contoh seperti gambar di bawah


Spoiler: hide
[Image: gambar2e.jpg]

3.Setelah component sukses di tambahkan langkah selanjutnya adalah menambah Command Button,Textbox,Listview,Picture Box
disini saya menggunakan desain yang sangat sederhana,desain bisa anda rubah sendiri sesuai kreatifitas anda ^^

- Tambahkan Listview kedalam form dan beri nama lvScan

Spoiler: hide
[Image: gambar3f.jpg]
yang saya lingkari merah adalah listview yang telah di tambahkan ke dalam form.

setelah itu setting listview dengan cara
Klik Listview -> Disebelah kanan bawah ada kotak properties -> Custom
lalu ikuti settingan seperti pada gambar di bawah ini

Spoiler: hide
[Image: gambar4.jpg]

Lalu pada tab Column Headers klik insert column
- Column 1 beri nama : Virus Name
- Column 2 beri nama : Path
- Column 3 beri nama : Checksum Virus
- Column 4 beri nama : Status Virus
lalu klik Ok

Tambahkan picture box buat picture box itu sekecil mungkin dan beri nama sIcon
Setting :
Appearance : Flat
Auto Redraw : True
Border Style : None
Visible : False

Tambahkan Textbox ke dalam form dengan nama txtPath
Setting :
Appearance : Flat
Border Style : None

Tambahkan Command Button dengan nama cmdBrowse di samping Textbox yang telah di buat tadi
Setting :
Caption : ...

Masukan Code ini ke dalam cmdBrowse


Code:
Dim Pathnya As String
Pathnya = ""
Pathnya = BrowseFolder("Pilih folder yang akan di Scan:", Me)
If Pathnya <> "" Then
txtPath.Text = Pathnya
End If
Code di atas berfungsi untuk membuka kotak dialog yang berisi path" yang ada di dalam komputer lalu mencetaknya ke dalam textbox yang bernama txtPath

Tambahkan label dengan nama default
Setting :
Caption : Dir Scanned

Tambahkan label dengan nama lblDirScan
Setting :
Caption : 0

Tambahkan label dengan nama default
Setting :
Caption : Detected

Tambahkan label dengan nama lblFileDet
Setting :
Caption : 0

Tambahkan label dengan nama default
Setting :
Caption : File Scanned

Tambahkan label dengan nama lblFileScan
Setting :
Caption : 0

Tambahkan Textbox dengan nama txtFileScan
Setting :
Multiline : True
Scroll Bar : 2-Vertical

Tambahkan Command Button dengan nama cmdScan
Setting :
Caption : &Scan


Code:
If cmdScan.Caption = "Scan" Then
Pathnya = txtPath.Text
If Mid(Pathnya, 2, 1) <> ":" Or Pathnya = "" Then
MsgBox "Direktori Tidak Ditemukan", vbCritical, "Error"
Exit Sub
Else
lvScan.Enabled = False
cmdEnable False, False, False
clear_log
cmdScan.Caption = "Stop"
StopScan = False
FindFilesEx txtPath.Text, CBool(chkSubDir.Value)
MsgBox "Scan finished !" & vbNewLine & vbNewLine & "Total Dir Scanned = " & lblDirScan.Caption & _
        vbNewLine & "Total File Scanned = " & lblFileScan.Caption & vbNewLine & "Total File Detected = " & lblFileDet.Caption, vbInformation, "Finish"
If lblFileDet.Caption <> "0" Then
cmdEnable True, True, True
Else
cmdEnable False, False, True
End If
lvScan.Enabled = True
cmdScan.Caption = "Scan"
End If
Else
cmdScan.Caption = "Scan"
StopScan = True
End If

fungsi kode di atas adalah untuk memulai scan pada antivirus

Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Delete

Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Quarantine

Tambahkan Command Button dengan nama cmdViewQ
Setting :
Caption : &View Quarantine File

Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Delete

Tambahkan kode ini di dalamnya


Code:
Dim DftrFile As String
DftrFile = GetSelected(lvScan)
If DftrFile = "" Then
MsgBox "No Detected File(s) Selected", vbCritical, ""
Exit Sub
End If
Select Case Index
Case 0
clean = Action(DftrFile, lvScan, "D")
MsgBox clean & " File(s) has been deleted"
Case 1
clean = Action(DftrFile, lvScan, "Q")
MsgBox clean & " File(s) has been quarantine"
End Select
Fungsi di atas adalah fungsi untuk menghapus/mengkarantina file yang terdeteksi

Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Quarantine

Tambahkan Command Button dengan nama cmdViewQ
Setting :
Caption : &View Quarantine File

Lalu masukan code ini ke dalamnya


Code:
frmQuarantine.Show , Me
frmUtama.Enabled = False
Code di atas berfungsi untuk memunculkan form quarantine dan meng enabled form utama

nah selesai untuk memasukan control ke dalam formnya
contoh form yang telah selesai


Spoiler: hide
[Image: gambar5h.jpg]

lalu klik kanan pada form masukan kode di bawah ini


Code:
Private Sub lvScan_ItemCheck(ByVal Item As MSComctlLib.ListItem)
UnSelect lvScan, "Di Karantina"
UnSelect lvScan, "Di Hapus"
End Sub

Private Function cmdEnable(hapus As Boolean, Quarantine As Boolean, openQuarantine As Boolean)
cmdAction(0).Enabled = hapus
cmdAction(1).Enabled = Quarantine
cmdViewQ.Enabled = openQuarantine
End Function

Private Function clear_log()
lblDirScan.Caption = 0
lblFileScan.Caption = 0
lblFileDet.Caption = 0
lvScan.ListItems.Clear
jumlahDir = 0
jumlahFile = 0
jumlahVirus = 0
End Function


lalu di Form_load() masukan kode ini


Code:
On Error Resume Next
MkDir "Quarantine"
BuildDatabase

Lalu buatlah 1 module dengan nama modAPI

Lalu tambahkan code di bawah ini


Code:
Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Public Declare Function PathIsDirectory Lib "shlwapi.dll" Alias "PathIsDirectoryA" (ByVal pszPath As String) As Long
Public Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Public Declare Function MoveFile Lib "kernel32.dll" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long
Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Public Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
Public Declare Function GetSystemDirectory Lib "kernel32.dll" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Declare Function GetWindowsDirectory Lib "kernel32.dll" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Public Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function RealizePalette Lib "gdi32" (ByVal hDC As Long) As Long
Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Public Declare Function VirtualAlloc Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Public Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As Any) As Long
Public Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
Public Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
Public Declare Function SetEndOfFile Lib "kernel32" (ByVal hFile As Long) As Long

Public Const GENERIC_READ = &H80000000
Public Const GENERIC_WRITE = &H40000000
Public Const FILE_SHARE_READ = &H1
Public Const OPEN_EXISTING = 3
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const INVALID_HANDLE_VALUE = -1
Public Const FILE_END = 2
Public Const FILE_BEGIN = 0
Public Const FILE_CURRENT = 1
Public Const LWA_COLORKEY = &H1
Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_LAYERED = &H80000
Public Const MAX_PATH = 260
Public Const SW_SHOWNORMAL = 1

Public Type FileTime
    dwLowDateTime       As Long
    dwHighDateTime      As Long
End Type

Public Type WIN32_FIND_DATA
    dwFileAttributes    As Long
    ftCreationTime      As FileTime
    ftLastAccessTime    As FileTime
    ftLastWriteTime     As FileTime
    nFileSizeHigh       As Long
    nFileSizeLow        As Long
    dwReserved0         As Long
    dwReserved1         As Long
    cFileName           As String * MAX_PATH
    cAlternate          As String * 14
End Type

Type BROWSEINFO
     hOwner As Long
     pidlRoot As Long
     pszDisplayName As String
     lpszTitle As String
     ulFlags As Long
     lpfn As Long
     lParam As Long
     iImage As Long
End Type

'untuk browse folder
Public Function BrowseFolder(ByVal aTitle As String, ByVal aForm As Form) As String
Dim bInfo As BROWSEINFO
Dim rtn&, pidl&, path$, pos%
Dim BrowsePath As String
bInfo.hOwner = aForm.hWnd
bInfo.lpszTitle = aTitle
bInfo.ulFlags = &H1
pidl& = SHBrowseForFolder(bInfo)
path = Space(512)
t = SHGetPathFromIDList(ByVal pidl&, ByVal path)
pos% = InStr(path$, Chr$(0))
BrowseFolder = Left(path$, pos - 1)
If Right$(Browse, 1) = "\" Then
    BrowseFolder = BrowseFolder
    Else
    BrowseFolder = BrowseFolder + "\"
End If
If Right(BrowseFolder, 2) = "\\" Then BrowseFolder = Left(BrowseFolder, Len(BrowseFolder) - 1)
If BrowseFolder = "\" Then BrowseFolder = ""
End Function

Public Function StripNulls(ByVal OriginalStr As String) As String
    If (InStr(OriginalStr, Chr$(0)) > 0) Then
        OriginalStr = Left$(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
    End If
    StripNulls = OriginalStr
End Function

'fungsi untuk menentukan file script atau bukan
Public Function IsScript(Filename As String) As Boolean
IsScript = False
ext = Split("|vbs|vbe", "|")
For i = 1 To UBound(ext)
If LCase(Right(Filename, 3)) = LCase(ext(i)) Then IsScript = True
Next
End Function

Code di atas adalah Fungsi API yang di butuhkan untuk antivirus

Buat 1 module dengan nama modChecksum
masukan code di bawah ini


Code:
Public Function GetChecksum(FilePath As String) As String
Dim CheckSum(1 To 2) As String
CheckSum(1) = CalcBinary(FilePath, 499, 4500)
CheckSum(2) = CalcBinary(FilePath, 499, 4000)
GetChecksum = CheckSum(1) & CheckSum(2)
End Function
Public Function CalcBinary(ByVal lpFileName As String, ByVal lpByteCount As Long, Optional ByVal StartByte As Long = 0) As String
On Error GoTo err
Dim Bin() As Byte
Dim ByteSum As Long
Dim i As Long
ReDim Bin(lpByteCount) As Byte
Open lpFileName For Binary As #1
    If StartByte = 0 Then
        Get #1, , Bin
    Else
        Get #1, StartByte, Bin
    End If
Close #1
For i = 0 To lpByteCount
    ByteSum = ByteSum + Bin(i) ^ 2
Next i
CalcBinary = Hex$(ByteSum)
Exit Function
err:
CalcBinary = "00"
End Function

potongan code di atas di gunakan untuk meng kalkulasi checksum

buat 1 module lagi dengan nama modDatabase
lalu tambahkan code di bawah ini


Code:
Public VirusDB(5), IconDB(48), Bahaya(5) As String
Public Sub BuildDatabase()
Call Checksum_DB
Call IconCompare_DB
Call Script_DB
End Sub
Private Sub Checksum_DB()
VirusDB(1) = "Alman.A|8911D290F723"
VirusDB(2) = "Malingsi.A|A6292EA60230"
VirusDB(3) = "Conficker.A|9EC112ABB2F3"
VirusDB(4) = "N4B3.A|B5CCD36CDB98"
VirusDB(5) = "N4B3.B|A1FE6D6DBE07"
End Sub
Public Sub IconCompare_DB()
On Error Resume Next
IconDB(1) = "20938B2"
IconDB(2) = "19F4ED6"
IconDB(3) = "133BE0B"
IconDB(4) = "18EDEAE"
IconDB(5) = "1EF89C2"
IconDB(6) = "1C915FF"
IconDB(7) = "24563C4"
IconDB(8) = "1B2DB74"
IconDB(9) = "208EA72"
IconDB(10) = "22A064D"
IconDB(11) = "19B64EE"
IconDB(12) = "1D4B7E1"
IconDB(13) = "2087762"
IconDB(14) = "29C7258"
IconDB(15) = "1B18705"
IconDB(16) = "1B5FCAB"
IconDB(17) = "126D4CF"
IconDB(18) = "1C58E5C"
IconDB(19) = "15D7730"
IconDB(20) = "1FB82B7"
IconDB(21) = "112763E"
IconDB(22) = "2165AF9"
IconDB(23) = "25F46BE"
IconDB(24) = "206556B"
IconDB(25) = "22A8D69"
IconDB(26) = "19237F8"
IconDB(27) = "15022B4"
IconDB(28) = "1D8B4EB"
IconDB(29) = "1DBC1EA"
IconDB(30) = "2333F5D"
IconDB(31) = "1F37C2F"
IconDB(32) = "1C9CCA4"
IconDB(33) = "1DFDFB4"
IconDB(34) = "1C1283E"
IconDB(35) = "1F6598C"
IconDB(36) = "27F4C1A"
IconDB(37) = "22F92E0"
IconDB(38) = "191DBDC"
IconDB(39) = "27BFE4A"
IconDB(40) = "20E0907"
IconDB(46) = "2FA4C88"
IconDB(47) = "25AA630"
IconDB(48) = "1DE28E2"
End Sub
Public Sub Script_DB()
On Error Resume Next
    Bahaya(1) = "Scripting.FileSystemObject|Wscript.ScriptFullName|WScript.Shell|.regwrite|.copy"
    Bahaya(2) = "Wscript.ScriptFullName|createobject|strreverse|.regwrite"
    Bahaya(3) = "createobject|Wscript.ScriptFullName|.regwrite|[autorun]"
    Bahaya(4) = "createobject|Wscript.ScriptFullName|specialfolder|.regwrite"
    Bahaya(5) = "chr(asc(mid(|createobject|Wscript.ScriptFullName|.GetFolder|.RegWrite"
End Sub

potongan code di atas adalah database pada antivirusnya

buat lagi 1 buah module dengan nama modQuar
masukan code yang ada di bawah ini


Code:
Option Explicit
Public Function EncodeFile(SourceFile As String, DestFile As String)
    Dim ByteArray() As Byte, Filenr As Integer
    Filenr = FreeFile
    Open SourceFile For Binary As #Filenr
        ReDim ByteArray(0 To LOF(Filenr) - 1)
        Get #Filenr, , ByteArray()
    Close #Filenr
    Call Coder(ByteArray())
    If (PathFileExists(DestFile)) <> 0 Then DeleteFile DestFile
    Open DestFile For Binary As #Filenr
        Put #Filenr, , ByteArray()
    Close #Filenr
End Function
Public Function DecodeFile(SourceFile As String, DestFile As String)
    Dim ByteArray() As Byte, Filenr As Integer
    Filenr = FreeFile
    Open SourceFile For Binary As #Filenr
        ReDim ByteArray(0 To LOF(Filenr) - 1)
        Get #Filenr, , ByteArray()
    Close #Filenr
    Call DeCoder(ByteArray())
    If (PathFileExists(DestFile)) <> 0 Then DeleteFile DestFile
    Open DestFile For Binary As #Filenr
        Put #Filenr, , ByteArray()
    Close #Filenr
End Function
Private Sub Coder(ByteArray() As Byte)
    Dim x As Long
    Dim Value As Integer
    Value = 0
    For x = 0 To UBound(ByteArray)
        Value = Value + ByteArray(x)
        If Value > 255 Then Value = Value - 256
        ByteArray(x) = Value
    Next
End Sub
Private Sub DeCoder(ByteArray() As Byte)
    Dim x As Long
    Dim Value As Integer
    Dim newValue As Integer
    newValue = 0
    For x = 0 To UBound(ByteArray)
        Value = newValue
        newValue = ByteArray(x)
        Value = ByteArray(x) - Value
        If Value < 0 Then Value = Value + 256
        ByteArray(x) = Value
    Next
End Sub

Code di atas adalah code untuk enkripsi/dekripsi pada virus yang akan di karantina

Buat lagi 1 module dengan nama modHeuristic
lalu masukan code di bawah ini


Code:
Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, ByRef phiconLarge As Long, ByRef phiconSmall As Long, ByVal nIcons As Long) As Long
Private Declare Function DestroyIcon Lib "user32.dll" (ByVal hIcon As Long) As Long
Private Declare Function DrawIconEx Lib "user32" (ByVal hDC As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Boolean
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExefileName As String, ByVal nIconIndex As Long) As Long
Private Const DI_MASK = &H1
Private Const DI_IMAGE = &H2
Private Const DI_NORMAL = &H3
Private Const DI_COMPAT = &H4
Private Const DI_DEFAULTSIZE = &H8
Private Const SHGFI_DISPLAYNAME = &H200
Private Const SHGFI_EXETYPE = &H2000
Private Const SHGFI_SYSICONINDEX = &H4000
Private Const SHGFI_LARGEICON = &H0
Private Const SHGFI_SMALLICON = &H1
Private Const ILD_TRANSPARENT = &H1
Private Const SHGFI_SHELLICONSIZE = &H4
Private Const SHGFI_TYPENAME = &H400
Private Const BASIC_SHGFI_FLAGS = SHGFI_TYPENAME Or SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX Or SHGFI_DISPLAYNAME Or SHGFI_EXETYPE
Private SIconInfo As SHFILEINFO
Private SectionHeaders() As IMAGE_SECTION_HEADER
Dim i As Integer
Dim j As Integer
Public Function CekHeuristic(Filename As String)
CekHeuristic = ""
On Error GoTo hError
Dim hFile As Long, bRW As Long
Dim DOSheader As IMAGE_DOS_HEADER
Dim NTHeaders As IMAGE_NT_HEADERS
Dim Filedata As String
DOS_HEADER_INFO = ""
NT_HEADERS_INFO = ""
hFile = CreateFile(Filename, ByVal (GENERIC_READ Or GENERIC_WRITE), FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, ByVal 0)
ReadFile hFile, DOSheader, Len(DOSheader), bRW, ByVal 0&
SetFilePointer hFile, DOSheader.e_lfanew, 0, 0
ReadFile hFile, NTHeaders, Len(NTHeaders), bRW, ByVal 0&
If NTHeaders.Signature <> IMAGE_NT_SIGNATURE Then
If IsScript(Filename) = True Then
Open Filename For Binary As #1
Filedata = Space$(LOF(1))
Get #1, , Filedata
Close #1
CekHeuristic = CekHeur(Filedata)
End If
Exit Function
End If
CekHeuristic = CekIconBinary(Filename)
hError:
End Function
Private Function CekHeur(Data As String)
Dim hsl, asl As Integer
strasli = LCase(Replace(Data, vbNewLine, "$"))
For i = 1 To UBound(Bahaya)
hsl = 0
strData = Split(Bahaya(i), "|")
asl = 0
For k = 0 To UBound(strData)
xxx = LCase(strData(k))
If InStr(strasli, xxx) > 0 Then hsl = hsl + 1
asl = asl + 1
Next
If hsl = asl Then
CekHeur = "Malicious-Script"
Exit Function
End If
Next
CekHeur = ""
End Function
Private Function CekIconBinary(PathFile As String)
Dim q As Integer
Dim IconIDNow As String
        CekIconBinary = ""
    IconIDNow = CalcIcon(PathFile)
    If IconIDNow = "" Then Exit Function
        For q = 1 To UBound(IconDB)
            If IconDB(q) = IconIDNow Then
                CekIconBinary = "Malicious-Icon"
                Exit Function
            End If
        Next q
End Function
Private Function CalcBinary(ByVal lpFileName As String, ByVal lpByteCount As Long, Optional ByVal StartByte As Long = 0) As String
Dim Bin() As Byte
Dim ByteSum As Long
Dim i As Long
ReDim Bin(lpByteCount) As Byte
Open lpFileName For Binary As #1
    If StartByte = 0 Then
        Get #1, , Bin
    Else
        Get #1, StartByte, Bin
    End If
Close #1
For i = 0 To lpByteCount
    ByteSum = ByteSum + Bin(i) ^ 2
Next i
CalcBinary = Hex$(ByteSum)
End Function
Private Function CalcIcon(ByVal lpFileName As String) As String
Dim PicPath As String
Dim ByteSum As String
Dim IconExist As Long
Dim hIcon As Long
IconExist = ExtractIconEx(lpFileName, 0, ByVal 0&, hIcon, 1)
If IconExist <= 0 Then
    IconExist = ExtractIconEx(lpFileName, 0, hIcon, ByVal 0&, 1)
    If IconExist <= 0 Then Exit Function
End If
frmUtama.sIcon.BackColor = vbWhite
DrawIconEx frmUtama.sIcon.hDC, 0, 0, hIcon, 0, 0, 0, 0, DI_NORMAL
DestroyIcon hIcon
PicPath = Environ$("windir") & "\tmp.tmp"
SavePicture frmUtama.sIcon.Image, PicPath
ByteSum = CalcBinary(PicPath, FileLen(PicPath))
DeleteFile PicPath
CalcIcon = ByteSum
End Function

Fungsi di atas adalah fungsi untuk mengecek suatu file dengan metode heuristic icon + heuristic untuk virus VBS

Buat 1 module dengan nama modIconCompare
lalu masukan code di bawah ini


Code:
Option Explicit
Private Const SHGFI_DISPLAYNAME = &H200, SHGFI_EXETYPE = &H2000, SHGFI_SYSICONINDEX = &H4000, SHGFI_LARGEICON = &H0, SHGFI_SMALLICON = &H1, SHGFI_SHELLICONSIZE = &H4, SHGFI_TYPENAME = &H400, ILD_TRANSPARENT = &H1, BASIC_SHGFI_FLAGS = SHGFI_TYPENAME Or SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX Or SHGFI_DISPLAYNAME Or SHGFI_EXETYPE
Public Type SHFILEINFO
    hIcon As Long: iIcon As Long: dwAttributes As Long: szDisplayName As String * MAX_PATH: szTypeName As String * 80
End Type
Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbSizeFileInfo As Long, ByVal uFlags As Long) As Long
Private Declare Function ImageList_Draw Lib "comctl32.dll" (ByVal himl As Long, ByVal i As Long, ByVal hdcDest As Long, ByVal x As Long, ByVal y As Long, ByVal flags As Long) As Long
Private shinfo As SHFILEINFO, sshinfo As SHFILEINFO
Private Declare Function DrawIconEx Lib "user32.dll" (ByVal hDC As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
Private SIconInfo As SHFILEINFO

Public Enum IconRetrieve
    ricnLarge = 32
    ricnSmall = 16
End Enum

Public Sub RetrieveIcon(fName As String, DC As PictureBox, icnSize As IconRetrieve)
    Dim hImgSmall, hImgLarge As Long
    Debug.Print fName
    Select Case icnSize
    Case ricnSmall
        hImgSmall = SHGetFileInfo(fName$, 0&, shinfo, Len(shinfo), BASIC_SHGFI_FLAGS Or SHGFI_SMALLICON)
        Call ImageList_Draw(hImgSmall, shinfo.iIcon, DC.hDC, 0, 0, ILD_TRANSPARENT)
    Case ricnLarge
        hImgLarge& = SHGetFileInfo(fName$, 0&, shinfo, Len(shinfo), BASIC_SHGFI_FLAGS Or SHGFI_LARGEICON)
        Call ImageList_Draw(hImgLarge, shinfo.iIcon, DC.hDC, 0, 0, ILD_TRANSPARENT)
    End Select
End Sub
Public Function ExtractIcon(Filename As String, AddtoImageList As ImageList, PictureBox As PictureBox, PixelsXY As IconRetrieve, iKey As String) As Long
    Dim SmallIcon As Long
    Dim NewImage As ListImage
    Dim IconIndex As Integer
    On Error GoTo Load_New_Icon
    If iKey <> "Application" And iKey <> "Shortcut" Then
        ExtractIcon = AddtoImageList.ListImages(iKey).Index
        Exit Function
    End If
Load_New_Icon:
    On Error GoTo Reset_Key
    RetrieveIcon Filename, PictureBox, PixelsXY
    IconIndex = AddtoImageList.ListImages.Count + 1
    Set NewImage = AddtoImageList.ListImages.Add(IconIndex, iKey, PictureBox.Image)
    ExtractIcon = IconIndex
    Exit Function
Reset_Key:
    iKey = ""
    Resume
End Function
Public Sub GetLargeIcon(icPath$, pDisp As PictureBox)
Dim hImgLrg&: hImgLrg = SHGetFileInfo(icPath$, 0&, SIconInfo, Len(SIconInfo), BASIC_SHGFI_FLAGS Or SHGFI_LARGEICON)
ImageList_Draw hImgLrg, SIconInfo.iIcon, pDisp.hDC, 0, 0, ILD_TRANSPARENT
End Sub

kode di atas di butuhkan untuk metode heuristic icon pada antivirus

Buat 1 module dengan nama modLV
lalu masukan code di bawah ini


Code:
Public Function GetSelected(TheLV As ListView)
Dim Sel As String
For i = 1 To TheLV.ListItems.Count
If TheLV.ListItems.Item(i).Checked = True Then
Sel = Sel & "|" & TheLV.ListItems.Item(i).SubItems(1)
End If
Next
GetSelected = Sel
End Function

Public Function SelectedAll(TheLV As ListView)
For i = 1 To TheLV.ListItems.Count
TheLV.ListItems.Item(i).Checked = True
Next
End Function

Public Function SelectedNone(TheLV As ListView)
For i = 1 To TheLV.ListItems.Count
TheLV.ListItems.Item(i).Checked = False
Next
End Function

Public Function GetIndex(TheLV As ListView, Data As String) As Integer
For i = 1 To TheLV.ListItems.Count
If TheLV.ListItems.Item(i).SubItems(1) = Data Then
GetIndex = i
End If
Next
End Function

Public Function UnSelect(TheLV As ListView, Data As String)
For i = 1 To TheLV.ListItems.Count
If TheLV.ListItems.Item(i).SubItems(3) = Data Then
TheLV.ListItems.Item(i).Checked = False
End If
Next
End Function

Public Function AddDetect(TheLV As ListView, FilePath As String, VirData As String)
With TheLV
If Left(VirData, 9) <> "Malicious" Then
Set lvItm = .ListItems.Add(, , Split(VirData, "|")(0), , frmUtama.ImgSmall.ListImages(1).Index)
lvItm.SubItems(1) = FilePath
lvItm.SubItems(2) = Split(VirData, "|")(1)
lvItm.SubItems(3) = "Virus File"
Else
Set lvItm = .ListItems.Add(, , VirData, , frmUtama.ImgSmall.ListImages(1).Index)
lvItm.SubItems(1) = FilePath
lvItm.SubItems(2) = GetChecksum(FilePath)
lvItm.SubItems(3) = "Virus File"
End If
End With
End Function

Code di atas berguna untuk dengatur Listview pada saat virus terdeteksi

Buat 1 module dengan nama modPE
lalu masukan code di bawah ini


Code:
Public Type IMAGE_DOS_HEADER
    e_magic As Integer
    e_cblp As Integer
    e_cp As Integer
    e_crlc As Integer
    e_cparhdr As Integer
    e_minalloc As Integer
    e_maxalloc As Integer
    e_ss As Integer
    e_sp As Integer
    e_csum As Integer
    e_ip As Integer
    e_cs As Integer
    e_lfarlc As Integer
    e_ovno As Integer
    e_res(1 To 4) As Integer
    e_oemid As Integer
    e_oeminfo As Integer
    e_res2(1 To 10)    As Integer
    e_lfanew As Long
End Type

Public Type IMAGE_SECTION_HEADER
    nameSec As String * 6
    PhisicalAddress As Integer
  
    VirtualSize As Long
    VirtualAddress As Long
    SizeOfRawData As Long
    PointerToRawData As Long
    PointerToRelocations As Long
    PointerToLinenumbers As Long
    NumberOfRelocations As Integer
    NumberOfLinenumbers As Integer
    Characteristics As Long
  
End Type

Public Type IMAGE_DATA_DIRECTORY
    VirtualAddress As Long
    size As Long
End Type

Public Type IMAGE_OPTIONAL_HEADER
    Magic As Integer
    MajorLinkerVersion As Byte
    MinorLinkerVersion As Byte
    SizeOfCode As Long
    SizeOfInitializedData As Long
    SizeOfUninitializedData As Long
    AddressOfEntryPoint As Long
    BaseOfCode As Long
    BaseOfData As Long
    ImageBase As Long
    SectionAlignment As Long
    FileAlignment As Long
    MajorOperatingSystemVersion As Integer
    MinorOperatingSystemVersion As Integer
    MajorImageVersion As Integer
    MinorImageVersion As Integer
    MajorSubsystemVersion As Integer
    MinorSubsystemVersion As Integer
    Win32VersionValue As Long
    SizeOfImage As Long
    SizeOfHeaders As Long
    CheckSum As Long
    Subsystem As Integer
    DllCharacteristics As Integer
    SizeOfStackReserve As Long
    SizeOfStackCommit As Long
    SizeOfHeapReserve As Long
    SizeOfHeapCommit As Long
    LoaderFlags As Long
    NumberOfRvaAndSizes As Long
    DataDirectory(0 To 15) As IMAGE_DATA_DIRECTORY
End Type

Public Type IMAGE_FILE_HEADER
    Machine As Integer
    NumberOfSections As Integer
    TimeDateStamp As Long
    PointerToSymbolTable As Long
    NumberOfSymbols As Long
    SizeOfOptionalHeader As Integer
    Characteristics As Integer
End Type

Public Type IMAGE_NT_HEADERS
    Signature As Long
    FileHeader As IMAGE_FILE_HEADER
    OptionalHeader As IMAGE_OPTIONAL_HEADER
End Type

Public Type IMAGE_EXPORT_DIRECTORY
    Characteristics As Long
    TimeDateStamp As Long
    MajorVersion As Integer
    MinorVersion As Integer
    Name As Long
    Base As Long
    NumberOfFunctions As Long
    NumberOfNames As Long
    AddressOfFunctions As Long
    AddressOfNames As Long
    AddressOfNameOrdinals As Long
End Type

Public Type IMAGE_IMPORT_DESCRIPTOR
    OriginalFirstThunk As Long
    TimeDateStamp As Long
    ForwarderChain As Long
    Name As Long
    FirstThunk As Long
End Type

Public Type IMAGE_IMPORT_BY_NAME
    Hint As Integer
    Name As String * 255
End Type

Public Const IMAGE_SIZEOF_SECTION_HEADER = 40
Public Const IMAGE_DOS_SIGNATURE = &H5A4D
Public Const IMAGE_NT_SIGNATURE = &H4550
Public Const IMAGE_ORDINAL_FLAG = &H80000000

Public Enum SECTION_CHARACTERISTICS
    IMAGE_SCN_LNK_NRELOC_OVFL = &H1000000   'Section contains extended relocations.
    IMAGE_SCN_MEM_DISCARDABLE = &H2000000   'Section can be discarded.
    IMAGE_SCN_MEM_NOT_CACHED = &H4000000    'Section is not cachable.
    IMAGE_SCN_MEM_NOT_PAGED = &H8000000     'Section is not pageable.
    IMAGE_SCN_MEM_SHARED = &H10000000       'Section is shareable.
    IMAGE_SCN_MEM_EXECUTE = &H20000000      'Section is executable.
    IMAGE_SCN_MEM_READ = &H40000000         'Section is readable.
    IMAGE_SCN_MEM_WRITE = &H80000000        'Section is writeable.
End Enum

Public Enum IMAGE_DIRECTORY
    IMAGE_DIRECTORY_ENTRY_EXPORT = 0           ' Export Directory
    IMAGE_DIRECTORY_ENTRY_IMPORT = 1           ' Import Directory
    IMAGE_DIRECTORY_ENTRY_RESOURCE = 2         ' Resource Directory
    IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3        ' Exception Directory
    IMAGE_DIRECTORY_ENTRY_SECURITY = 4         ' Security Directory
    IMAGE_DIRECTORY_ENTRY_BASERELOC = 5        ' Base Relocation Table
    IMAGE_DIRECTORY_ENTRY_DEBUG = 6            ' Debug Directory
    IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7     ' Architecture Specific Data
    IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8        ' RVA of GP
    IMAGE_DIRECTORY_ENTRY_TLS = 9              ' TLS Directory
    IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10     ' Load Configuration Directory
    IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11    ' Bound Import Directory in headers
    IMAGE_DIRECTORY_ENTRY_IAT = 12             ' Import Address Table
    IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13    ' Delay Load Import Descriptors
    IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14  ' COM Runtime descriptor
End Enum

code di atas berfungsi untuk pengecekan PE HEADER

buat 1 module dengan nama modScanning
lalu tambahkan code di bawah ini


Code:
Public jumlahDir As Long, jumlahFile As Long, jumlahVirus As Long
Public StopScan As Boolean

Public Function CekVirus(FilePath As String) As String
CekVirus = ""
For i = 1 To UBound(VirusDB)
If GetChecksum(FilePath) = Split(VirusDB(i), "|")(1) Then
CekVirus = VirusDB(i)
Exit Function
End If
Next
If FileLen(FilePath) / 1024 <= 512 Then
CekVirus = CekHeuristic(FilePath)
End If
End Function

Public Sub FindFilesEx(ByVal lpFolderName As String, ByVal SubDirs As Boolean)
    Dim i As Long
    Dim hSearch As Long, WFD As WIN32_FIND_DATA
    Dim Result As Long, CurItem As String
    Dim tempDir() As String, dirCount As Long
    Dim RealPath As String, GetViri As String
  
    GetViri = ""
    dirCount = -1
  
    ScanInfo = "Scan File"
  
    If Right$(lpFolderName, 1) = "\" Then
        RealPath = lpFolderName
    Else
        RealPath = lpFolderName & "\"
    End If
  
    hSearch = FindFirstFile(RealPath & "*", WFD)
    If Not hSearch = INVALID_HANDLE_VALUE Then
        Result = True
        Do While Result
            DoEvents
            If StopScan = True Then Exit Do
            CurItem = StripNulls(WFD.cFileName)
            If Not CurItem = "." And Not CurItem = ".." Then
                If PathIsDirectory(RealPath & CurItem) <> 0 Then
                    jumlahDir = jumlahDir + 1
                    frmUtama.lblDirScan.Caption = jumlahDir
                    If SubDirs = True Then
                        dirCount = dirCount + 1
                        ReDim Preserve tempDir(dirCount) As String
                        tempDir(dirCount) = RealPath & CurItem
                    End If
                Else
                    jumlahFile = jumlahFile + 1
                    frmUtama.lblFileScan.Caption = jumlahFile
                    frmUtama.txtFileScan.Text = RealPath & CurItem
                    frmUtama.txtFileScan.SelStart = Len(frmUtama.txtFileScan.Text)
                    If WFD.nFileSizeLow > 5120 Or WFD.nFileSizeHigh > 5120 Then
                        GetViri = CekVirus(RealPath & CurItem)
                        If GetViri <> "" Then
                        AddDetect frmUtama.lvScan, RealPath & CurItem, GetViri
                        jumlahVirus = jumlahVirus + 1
                        frmUtama.lblFileDet.Caption = jumlahVirus
                        End If
                    End If
                End If
            End If
            Result = FindNextFile(hSearch, WFD)
        Loop
        FindClose hSearch
      
        If SubDirs = True Then
            If dirCount <> -1 Then
                For i = 0 To dirCount
                    FindFilesEx tempDir(i), True
                Next i
            End If
        End If
    End If
End Sub

Code di atas adalah code untuk scan file & folder pada antivirus

buat 1 module dengan nama modEtc
masukan code di bawah ini


Code:
Public Function Action(Data As String, TheLV As ListView, Mode As String)
Dim Filedata() As String
Dim fName, tmp, Status As String
Dim y As Integer
Filedata = Split(Data, "|")
For i = 1 To UBound(Filedata)
a = a + 1
If Mode = "Q" Then
fName = GetFileName(Filehttp://www.blogger.com/blogger.g?blogID=8091121918413486599#editor/target=post;postID=2445333163908239092data(i))
EncodeFile Filedata(i), AppPath & "Quarantine\" & Left$(fName, Len(fName) - Len(GetExt(Filedata(i)))) & ".avq"
AddQList TheLV, Filedata(i), Left$(fName, Len(fName) - Len(GetExt(Filedata(i)))) & ".avq"
DeleteFile Filedata(i)
Status = "Di Karantina"
ElseIf Mode = "D" Then
DeleteFile Filedata(i)
Status = "Di Hapus"
End If
y = GetIndex(TheLV, Filedata(i))
With TheLV.ListItems.Item(y)
.SubItems(3) = Status
.Checked = False
.SmallIcon = frmUtama.ImgSmall.ListImages(2).Index
End With
Next
Action = a
End Function

Public Function AddQList(TheLV As ListView, FilePath As String, Source As String)
Dim Dat As String
Dat = AppPath & "Quarantine\HN.dat"
If PathFileExists(Dat) <> 0 Then
Open Dat For Input As #1
Input #1, isi
Close #1
DeleteFile Dat
Else
isi = ""
End If
namavir = TheLV.ListItems(GetIndex(TheLV, FilePath))
If InStrRev(isi, Source, , vbTextCompare) = 0 Then
Open Dat For Output As #2
Print #2, isi & "|" & namavir & "?" & FilePath & "?" & Source
Close #2
Else
Open Dat For Output As #3
Print #3, isi
Close #3
End If
End Function

Public Function GetFileName(PathFile As String) As String
Dim i As Long
Dim DirString As Long
    For i = 1 To Len(PathFile)
        If Mid$(PathFile, i, 1) = "\" Then DirString = i
    Next i
    GetFileName = Right$(PathFile, Len(PathFile) - DirString)
End Function

Public Function GetExt(ByVal lpFileName As String)
Dim sTemp As String
Dim i As Long
sTemp = GetFileName(lpFileName)
    If InStr(lpFileName, ".") Then
        For i = 0 To Len(sTemp) - 1
            If Mid$(sTemp, Len(sTemp) - i, 1) = "." Then
                GetExt = Mid$(sTemp, Len(sTemp) - i, i)
                Exit Function
            End If
        Next i
    End If
End Function

Cara Instal windows XP

Cara instal windows xp

Bagi pemilik dan pengguna komputer atau laptop, memiliki kemampuan atau pengetahuan cara mengatasi masalah komputer itu sangat penting karena jika tidak, ada kemungkinan kamu akan pulang pergi ke tukang servis komputer untuk memperbaiki masalah komputer atau laptop kamu. SAlah satu masalah pada komputer atau laptop yang cukup menjengkelkan adalah rusaknya sistem operasi (misalnya windows xp) yang disebabkan oleh virus yang sampai menyebabkan komputer atau laptop anda tidak bisa melakukan booting sistem operasinya. Sehingga mau tidak mau sistem operasi komputer atau laptop kamu harus diinstal ulang. Jika kamu punya waktu luang yang banyak atau tidak terburu-buru menggunakan komputer, bisa saja kamu meminta bantuan kepada teknisi komputer untuk melakukan instal ulang pada komputer kamu, namun jika waktunya sangat mendesak, misalnya saja tengah malam komputer kamu rusak, padahal besok pagi komputer itu harus digunakan, bagaimana coba?
Buat kamu yang ingin tahu dan mengerti bagaimana cara instal sistem operasi komputer, di bawah ini saya sajikan panduan yang saya anggap sangat lengkap tentang cara instal windows xp di komputer atau laptop kamu. Pada panduan ini yang saya bahas tentang windows xp,

syarat agar bisa melakukan instalasi windows xp

1. Untuk bisa melakukan instalasi windows xp kamu harus memiliki CD master windows xp terlebih dahulu, cara termudah dan murah untuk mendapatkan CD ini adalah dengan meminta teman kamu yang memiliki CD master windows XP untuk mengkopikannya, insyaAlloh dengan modal CD blank seharga, dan senyum manis kamu bisa mendapatkan CD master windows XP. Sedangkan cara tersulit dan mahal, silakan mencari ke toko komputer yang menjual CD master windows xp yang original, namun sepertinya kamu akan kesulitan mendapatkan XP yang original, karena setahu saya suport dan produksi windows xp sudah dihentikan. Namun di forum jual beli seperti kaskus masih ada yang bisa menyediakan windows xp original.
2. Setelah memiliki CD master windows XP, kamu harus mengerti setting bios agar komputer booting dari CD, bagi yang belum mengerti cara setting bios, saya telah membuat panduan lengkapnya silahkan baca panduan Cara Setting Konfigurasi bios agar booting dari CD/DVD ROM klik di sini untuk membacanya 3. Setelah memiliki CD master windows XP dan sudah mengerti cara setting bios agar booting dari CD, masukkan CD master Windows XP kamu ke CD / DVD ROM, kemudian tunggu beberapa saat. Komputer akan melakukan booting dari CD Master Windows XP kamu, sehingga akan tampil layar biru seperti gambar di bawah ini. Perlu diingat bahwa pada komputer tertentu setelah CD masukkan akan meminta anda untuk menekan tombol keyboard sembarang, sebagai konfirmasi bahwa anda meminta komputer untuk booting dari. Biasanya tertulis press any kay. Tunggu sampai muncul halaman instruksi installasi windows xp
gambar jendela setup instalasi windows xp
4. Halaman instruksi installasi windows xp seperti gambar di bawah ini. Seperti yang terulis di poin pertama, tekan tombol ENTER pada keyboard kamu untuk memulai proses instalasi gambar jendela setup tahap konfirmasi instalasi windows xp
5. Setelah kamu tekan ENTER, akan muncul halaman syarat ketentuan layanan seperti di bawah ini. silahkan tekan tombol F8 pada keyboard untuk melanjutkan ke lankah selanjutya. gambar jendela setup license agreement

Instal Windows Xp Pada Hardisk Masih Baru

6A. Perhatikan gambar di bawah ini, halaman di bawah ini akan muncul jika hardisk kamu masih baru atau belum terpartisi. Agar lebih mudah dan tidak membingunkan silahkan lanjutkan dengan menekan tombol ENTER di keyboard, partisi akan dibuat secara otomatis gambar jendela setup membuat partisi hardisk
7A. Jika hard disk kamu sudah ada partisinya, akan muncul halaman seperti gambar di bawah ini. partisi tempat instalasi windows xp diletakkan di Drive C, jadi pilih pada drive C kemudian tekan enter. gambar jendela setup menentukan partisi instalasi windows
8A. Langkah selanjutnya adalah pilihan format, jika di drive C tidak ada data penting, lebih baik pilih format saja, untuk format disarankan pilih format NTFS, jika hardisk masih bagus pilih yang Quick mode, jika hardisk sudah lama piliha format yang biasa tanpa quick mode. gambar jendela setup format partisi hardisk

Install Windows Xp pada Hardisk lama dan sudah terpartisi

6B. Jika hard disk yang digunakan adalah bukan hard disk baru, atau mungkin telah ada windoswnya, halaman yang tampil akan tampak seperti gambar di bawah ini. jika ingin melakukan perbaikan file windows saja tekan tombol R, untuk repair. dan jika menginstal ulang windows silahakan tekan tombol ESC. pada contoh di bawah ini yang saya pilih adalah tombol ESC untuk instal ulang. gambar jendela setup windows lama
7B. SAma seperti di langkah 7A, pilih pada partisi C, kemudian tekan enter gambar jendela setup menentukan partisi instalasi windows
8B. untuk pemilihan formatnya sama seperti di langkah 8A, namun di sini ada satu pilihan tambahan di bagian akhir, yaitu Leave the current file system yang maksudnya memberikan pilihan bagi kamu yang tidak ingin memformat. pilihan ini berguna jika di drive C ada data penting yang tidak ingin terformat (terhapus), misalnya data di folder My Document yang masih ada di Drive C. Jika sudah dipilih silahkan tekan tombol Enter.
gambar jendela setup format partisi hardisk
9. langkah selanjutnya tunggu proses formating bagi yang melakukan format, gambar jendela setup proses format hardisk
10. Setelah formating selesai, akan dilanjutkan proses pengkopian file sistem operasi ke drive C, tunggu dengan sabar ya. gambar jendela setup proses copy data
11. Setelah proses pengkopian selesai, komputer akan melakukan restart otomatis dalam 13 detik. gambar jendela setup restart komputer
12. setelah restart, komputer atau laptop akan hidup lagi, untuk melakukan proses intalasi selanjutnya, ditandai dengan muncul halaman starting seperti gambar di bawah ini. gambar starting windows xp
13. Kemudian proses installasi windows xp akan ditampilkan seperti gambar di bawah ini, tunggu sampai ada instruksi selanjutnya. gambar jendela setup tahap installasi windows
14. pada langkah selanjutnya kamu diminta memasukkan wilayah negara dan pilihan bahasa, pada langkah installasi ini mouse kamu telah bisa digerakkan, silahkan klik pada tombol Customize. gambar jendela setup menentukan regional dan bahasa
15. Kemudian pilih kawasan BANKONG, HANOI, JAKARTA. Setelah itu klik pada tombol NEXT, dan NEXT lagi gambar jendela setup setting waktu dan wilayah
16. Pada halaman selanjutnya, masukan CD key windows xp yang kamu dapatkan bersama CD master windows XP kamu. kemudian tekan NEXT
gambar jendela setup meminta produk key windows xp
17. Kemudian masukkan nama mu, dan nama organisasi kamu, untuk kolom ini terserah kamu pengisiannya mau diisi apa. jika sudah klik tombol NEXT
gambar jendela setup meminta nama dan organisasi 18. Lalu komputer name, masukkan sesuai dengan selera, nama komputer ini untuk identitas komputer di jaringan komputer. silahkan tulis tanpa ada spasi. untuk passwordnya kosongkan saja, kemudian tekan NEXT untuk melanjutkan gambar jendela setup menentukan nama komputer
19. Untuk pilihan network setting pilih yang Typical settings saja, lanjutkan dengan klik tombol NEXT gambar jendela setup menentukan setting jaringan komputer
20. Halaman ini abaikan saja, klik tombol NEXT lagi. gambar jendela setup menentukan grup jaringan komputer
21. Sekarang tinggal tunggu prosesnya sampai selesai. gambar jendela setup menunggu tahap final
selesai proses installasi selesai, halaman aman berubah menjadi seperti gambar di bawah ini, gambar starting windows xp yang pertama
Jika muncul jendela seperti ini, klik tombol OK saja. gambar penyesuaian layar
lalu akan muncul lagi jendela seperti gambari bawah ini, tekan OK saja gambar konfirmasi penyesuaian layar
lalu tunggu sebentar, proses installasi windows XP telah selesai. Selanjutnya kamu bisa menginstal aplikasi pendukung aktifitas komputasi seperti microsoft office, winamp, adobe photoshop, dan lain-lain
gambar windows xp berhasil terinstal   memang panduan cara instal windows xp di komputer atau laptop ini cukup puanjang sekali, tapi saya harap dengan begitu kamu yang membacanya bisa mempraktekkan langkah-langkah di atas dengan baik, dan berhasil melakukan instalasi windows xp di komputer atau laptop kamu sendiri. selamat mencoba, semoga berhasil ya. amin

Instal Windows xp pada laptop dengan hardisk Sata

Perlu diketahui bahwa pada laptop keluaran terbaru umumnya telah mendukung Hardisk kabel SATA. Sedangkan windows XP belum mendukung Hardisk Sata. Sehingga Windows xp tidak bisa diinstal pada laptop dengan HDD Sata. lalu solusinya gimana agar bisa menginstal windows xp pada laptop dengan HDD sata. Caranya sederhana, yaitu kamu hanya perlu menonaktifkan mode HDD Sata melalui BIOS. KEtika Mode Sata dinonaktifkan, secara otomatis windows XP akan mengenali Hardisk sebagai Hardisk ATA. bagi kamu yang belum mengerti caranya, silahkan baca panduan cara mengganti Mode Hardisk SATA ke ATA Melalui Bios

Selasa, 04 Desember 2012

Cara Mempercepat Kinerja Komputer dan Load PC
Cara mempercepat kinerja komputer - Komputer yang pada awalnya cukup cepat karena di isi dengan speks yang bagus kadang tidak selamanya tahan lama. Ini disebakan karena seiring berjalannya waktu, pemakaian komputer akan otomatis memakan resource yang akan memperlambat komputer itu sendiri. Belum lagi perkembangan software yang sangat cepat sehingga kadang hardware komputer kurang kuat untuk menjalankannya.

Nah, untuk mempercepat kinerja komputer anda, dibawah ini akan saya sharing tips pemula dan sederhana untuk mempercepat komputer dengan cara yang cukup simple untuk di aplikasikan.

1. Sesuaikan penggunaan software dengan spesifikasi komputer anda. Ada beberapa software seperti Game dan software rendering 3D yang membutuhkan spesifikasi tertentu untuk menjalankannya. Memaksa menjalankan semua software yang berat dapat mempengaruhi kinerja PC secara permanen. Untuk menjalankan software yang berat sebaiknya upgrade dahulu komponen PC yang sesuai.

2. Mempercepat startup dengan mematikan program yang tidak perlu.
Masuk ke Start=>Run=>Ketikkan msconfig=>Pada tab Startup, Kosongkan cecklist program yang tidak perlu=>Restart

3. Jangan mamakai widget desktop yang tidak perlu seperti jam, atau yang lainnya serta memakai tema-tema komputer yang dapat memberatkan konerja komponen terutama RAM dan CPU komputer.

4. Matikan visual effect
Klik kanan My Computer=>Pilih Properties=>Advance=>Visual effects=>Cecklist yang tidak perlu

5. Atur virtual memory, lebih besar lebih baik.
Caranya, Klik kanan My Computer=>Advance=>Klik Change pada pilihan virtual memory.

6. Gunakan thema windows classic jika perlu, karena thema windows classic sangat ringan.

7. Lakukan defragment secara berkala.
Start=> Program=>Accesories=>System Tools=>Disk defragment, kemudian ikuti langkah selanjutnya.

8. Gunakan tools atau software pihak ketiga seperti CCleaner atau Tune Up Utilities sebagai alternatif.

Nah, sekian dulu tips sederhana tentang bagaimana cara mempercepat kinerja komputer dari saya. Untuk menambah pengetahuan kamu, silahkan baca juga cara mempercepat koneksi internet di blog ini.

Senin, 03 Desember 2012

Cara Membuat website gratis dengan weebly

Cara membuat website - Untuk anda yang ingin mengenal dunia publishing dan membuat portal web sendiri namun belum mengetahui dasar-dasarnya, maka ada baiknya jika anda mencoba layanan pembuatan website gratis yang ada di weebly.com.

Weebly adalah sebuah perusahaan yang bergerak dibidang jasa pembuatan website dengan CMS mandiri. Mereka menyediakan layanan untuk pembuatan website secara gratis dan berbayar jika anda ingin fitur yang lebih. Namun, jika anda baru memulai, hendaknya mencoba yang gratisan dulu untuk mencoba apakah jenis website ini cocok dengan keinginan anda.


Cara membuat website di weebly

Berikut ini adalah tutorial singkat cara membuat website di weebly. 

Masuk ke situs weebly.com, setelah itu lakukan sign-up dengan mengisi nama, email dan password yang anda sukai.


Kemudian ketikkan nama situs dan pilih kategori. Lalu klik “Continue”.

Kemudian pilih alamat web. pada contoh di bawah menggunakan contoh subdomain. Anda juga bisa gunakan domain anda sendiri jika anda sudah punya. Klik continue.

Pada tahap ini pembuatan dasar web sudah jadi, dan hasilnya seperti gambar dibawah.

Nah, langkah berikutnya untuk membuat web adalah memasukkan elemen-elemen web yang anda butuhkan. Misalnya kita masukkan di sini elemen paragraph with picture. Tarik elemen tersebut ke tengah halaman website.

Kemudian klik elemen yang sudah dimasukkan tersebut. Dan mulailah untuk mengisi landing page tersebut dengan beberapa teks (misal kalimat welcome).

Kemudian anda juga bisa tambahkan gambar sesuai kebutuhan anda.


Setelah dirasa cukup, anda bisa melihat hasilnya dengan mengklik tombol publish.



Nah, sangat mudah bukan? saya kira pembuatan website di weebly ini tidak kalah mudahnya dengan membuat akun facebook anda.

Untuk mengoptimalkan konten website, seperti
cara membuat blog di weebly ada baiknya kalau anda melihat lebih jauh cara optimasi weebly di blog tutorial weebly.

Minggu, 02 Desember 2012

Cara Membuat blog di Blogger

Cara membuat blog - Blog merupakan salah satu jenis portal internet yang dinamis dan konten atau isinya yang terus menerus diperbaharui berdasarkan urutan waktu. Pada dasarnya fungsi blog hanya digunakan sebagai jurnal atau catatan pribadi yang di publikasikan secara online. Namun seiring berjalannya waktu fungsi blog banyak berubah ke arah yang lebih jauh seperti situs berita, portal tutorial, dll.

Jika anda ingin memulai belajar
cara membuat blog, anda bisa menggunakan platform blog gratisan di blogger. Berikut ini adalah step by step cara membuat blog di blogger/blogspot.

Cara membuat blog di blogger 

Sebelum memulai, anda diharuskan untuk membuat akun GMAIL. Silahkan lihat Cara membuat email di gmail terlebuh dahulu.

Setelah email jadi, ikuti langkah langkah dibawah ini :

  1. Silahkan kunjungi situs http://www.blogger.com
  2. Setelah halaman pendaftaran terbuka, alihkan perhatian ke sebelah kanan bawah, ubah bahasa ke Indonesia agar lebih mudah difahami.
    pilih bahasa
  3. Silahkan langsung masuk/login dengan menggunakan username/nama pengguna serta password/sandi gmail anda ( akun email anda bisa untuk login ke blogger).

    login gmail

  4. Isilah formulir yang ada :
    1. Nama tampilan : isi dengan nama yang ingin tampil pada profile blog anda.
    2. Jenis Kelamin : pilih sesuai dengan jenis kelamin anda, misal : pria.
    3. Penerimaan Persyaratan : Beri tada ceklis sebagai tanda anda setuju dengan peraturan yangtelah di tetapkan oleh pihak blogger. Saran: sebaiknya anda membaca terlebih dahulu persyaratan yang ada agar anda tahu dan mengerti apa yang boleh dan tidak diperbolehkan ketika menggunakan layanan blogger.
    4. Klik tanda panah bertuliskan “Lanjutkan”.

      lanjutkan membuat blog
  5. Klik tombol “Blog Baru”.

    buat blog baru

  6. Isilah formulir :
    1. Judul : Isi dengan judul blog yang di inginkan, misal : Coretan sang penghayal
    2. Alamat : isi dengan alamat blog yang di inginkan. Ingat! Alamat ini tidak dapat di edit kembali setelah dibuat, apabila anda ingin serius, maka pilihlah nama yang benar-benar anda inginkan.
    3. Template : pilih template (tampilan blog) yang disukai (ini dapat ganti kembali).
    4. Lanjutkan dengan klik tombol “Buat blog!”.

      buat blog

    5. Sampai disini blog anda telah berhasil di buat.
  7. Untuk menghindari spam filter, sebaiknya anda langsung posting sembarang saja. Klik tulisan “Mulai mengeposkan”.

    mulai posting

  8. Isi judul serta artikel. Akhiri dengan klik tombol “Publikasikan”.

    publikasikan

  9. Silahkan lihat blog anda dengan klik tombol “Lihat Blog”
  10. Selesai.

Sabtu, 01 Desember 2012

Java Script

JavaScript

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Langsung ke: navigasi, cari
JavaScript
Javascript.svg
Ekstensi berkas .js
Jenis MIME application/javascript, text/javascript[1]
Uniform Type Identifier com.netscape.javascript -​ sumber [2]
Dikembangkan oleh Netscape Communications Corporation, Mozilla Foundation
Rilis terbaru 1.9.3 / 2010
Jenis format Bahasa skrip
Situs web Mozilla Developer Center
JavaScript adalah bahasa skrip yang populer di internet dan dapat bekerja di sebagian besar penjelajah web populer seperti Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode JavaScript dapat disisipkan dalam halaman web menggunakan tag SCRIPT.[3]

Daftar isi

Sejarah

JavaScript pertama kali dikembangkan oleh Brendan Eich dari Netscape dibawah nama Mocha, yang nantinya namanya diganti menjadi LiveScript, dan akhirnya menjadi JavaScript.[4] [5]
Navigator sebelumnya telah mendukung Java untuk lebih bisa dimanfaatkan para programmer yang non-Java.[6] Maka dikembangkanlah bahasa pemrograman bernama LiveScript untuk mengakomodasi hal tersebut.[6] Bahasa pemrograman inilah yang akhirnya berkembang dan diberi nama JavaScript, walaupun tidak ada hubungan bahasa antara Java dengan JavaScript.[6]
JavaScript bisa digunakan untuk banyak tujuan, misalnya untuk membuat efek rollover baik di gambar maupun teks, dan yang penting juga adalah untuk membuat AJAX.[6] JavaScript adalah bahasa yang digunakan untuk AJAX.[6]

Penulisan JavaScript

Kode JavaScript biasanya dituliskan dalam bentuk fungsi yang ditaruh di tag <head> yang dibuka dengan tag <script type="teks/javascript">.[7]
<script type="teks/javascript">
        alert("Halo Dunia!");
</script>
Kode JavaScript juga bisa diletakkan di file tersendiri yang berekstensi .js (singkatan dari JavaScript).[7] Untuk memanggil kode JavaScript yang terdapat di file sendiri, di bagian awal <head> harus ditentukan dahulu nama file .js yang dimaksud menggunakan contoh kode seperti berikut:[7]
<script type="teks/javascript" src="alamat.js">
</script>

Script pada bagian head

Script ini akan dieksekusi ketika dipanggil (biasanya berbentuk function) atau dipanggil berdasarkan trigger pada event tertentu.[7] Peletakkan script di head akan menjamin skript di-load terlebih dahulu sebelum digunakan (dipanggil).[7]
<html>
<head>
<script type="teks/javascript">
...
</script>
</head>
</html>

Script pada Body

Script ini dieksekusi ketika halaman di-load sampai di bagian <body>.[7] Ketika menempatkan script pada bagian <body> berarti antara isi dan JavaScript dijadikan satu bagian.[7]
<html>
<head>
</head>
<body>
<script type="teks/javascript">
...
</script>
</body>
</html>
Jumlah JavaScript di <head> dan <body> yang ditempatkan pada dokumen tidak terbatas.[7]

External JavaScript

Terkadang ada yang menginginkan menjalankan JavaScript yang sama dalam beberapa kali pada halaman yang berbeda, tetapi tidak mau disibukkan jika harus menulis ulang script yang diinginkan di setiap halaman.[7] Maka JavaScript dapat ditulis di file secara eksternal.[7] Jadi, antara dokumen HTML dan JavaScript dipisahkan, kemudian berkas tersebut dipanggil dari dokument HTML.[7] Berkas JavaScript tersebut disimpan dengan ekstensi .js.[7]
JavaScript : js/xxx.js document.write("pesan ini tampil ketika halaman diload");
Untuk menggunakan eksternal JavaScript (.js) dipakai atribut "src" pada tag <script> pada halaman HTML-nya.[7]
<html>
<head>
</head>
<body>
<script src="xxx.js">
</script>
<p>Script di atas berada di berkas "xx.js" (eksternal) </p>
</body>
</html>

Adaptasi JavaScript pada Wikipedia

Biasanya JavaScript digunakan sebagai peralatan (tool/gadget) pada halaman pengguna. Fungsinya bermacam-macam, misalnya peralatan guna menambah kategori dengan lebih mudah, contohnya dapat dilihat pada : HotCat. Lain dari pada itu dapat di simak lebih lanjut di :