home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / Simple_Mac2110964282008.psc / class / clsHeuristic.cls < prev    next >
Text File  |  2007-04-26  |  5KB  |  154 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "clsHeuristic"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. 'Saya menggunakan modul heuristic dari Peradnya Anti Virus
  15. 'Mohon ijin nya ya APTX demi pengembangan SMP yang lebih baik
  16.  
  17.  
  18.  
  19. Dim i As Integer
  20. Dim j As Integer
  21. Public IconCompare As Boolean
  22. Public TipeHeuristic As String
  23. Public Akurat As Integer
  24. Public Function CekHeuristic(Alamatfile As String, Formku As Form) As Boolean
  25.     On Error GoTo keluar
  26.     Dim tmp As String
  27.     If Right(Alamatfile, 3) = "exe" And IconCompare = True Then
  28.         If CekIcon(Alamatfile, Formku.Picture1, Formku.Picture2, Akurat) = True Then CekHeuristic = True
  29.     Else
  30.  
  31.     Open Alamatfile For Input As 1
  32.         Do While Not EOF(1)
  33.             Input #1, tmp
  34.             Select Case Right(Alamatfile, 3)
  35.                 Case "vbs": If CekVBS(tmp) = True Then CekHeuristic = True
  36.                 Case "bat": If CekBat(tmp) = True Then CekHeuristic = True
  37.                 Case "inf": If CekInf(tmp) = True Then CekHeuristic = True
  38.             End Select
  39.         Loop
  40.     Close #1
  41.    End If
  42.     Exit Function
  43. keluar:
  44.     CekHeuristic = False
  45. End Function
  46. Private Function CekVBS(baris As String) As Boolean
  47.     Dim bhy(15) As String
  48.     bhy(0) = "scripting.filesystemobject"
  49.     bhy(1) = "wscript.shell"
  50.     bhy(2) = "wscript.scriptfullname"
  51.     bhy(3) = "createobject"
  52.     bhy(4) = "regsetvalue"
  53.     bhy(5) = "copyfile"
  54.     bhy(6) = "exitwindowsex"
  55.     bhy(7) = "persistmoniker=file:"
  56.     bhy(8) = "runit"
  57.     bhy(9) = "attachments.add"
  58.     bhy(10) = "outlook.application"
  59.     bhy(11) = "-f -r -t 0"
  60.     bhy(12) = "HKEY_CLASSES_ROOT\tukul.ndeso\shell\open\command\"
  61.     bhy(13) = "flashdrive"
  62.     baris = LCase(baris)
  63.     j = 0
  64.     For i = 0 To 10
  65.         j = InStr(1, baris, bhy(i), vbTextCompare)
  66.         If j <> 0 Then
  67.             CekVBS = True
  68.             TipeHeuristic = "Heuristic.Susp.Vbs (" & i & ")"
  69.             Exit Function
  70.         End If
  71.     Next
  72.     CekVBS = False
  73. End Function
  74.  
  75. 'Untuk script Bat (file bat)
  76. Private Function CekBat(baris As String) As Boolean
  77.     Dim bhy(11) As String
  78.     bhy(0) = "format "
  79.     bhy(1) = "reg "
  80.     bhy(2) = "%0"
  81.     bhy(3) = "attrib "
  82.     bhy(4) = "run"
  83.     bhy(5) = "hidden"
  84.     bhy(6) = "disable"
  85.     bhy(7) = "startup"
  86.     bhy(8) = "NoFolderOptions"
  87.     bhy(9) = "HideFileExt"
  88.     bhy(10) = "tskill "
  89.     
  90.     baris = LCase(baris)
  91.     j = 0
  92.     For i = 0 To 10
  93.         j = InStr(1, baris, bhy(i), vbTextCompare)
  94.         If j <> 0 Then
  95.             CekBat = True
  96.             TipeHeuristic = "Heuristic.Susp.Bat (" & i & ")"
  97.             Exit Function
  98.         End If
  99.     Next
  100.     CekBat = False
  101. End Function
  102. Private Function CekInf(baris As String) As Boolean
  103.     Dim bhy(3) As String
  104.     bhy(0) = "wscript"
  105.     bhy(1) = ".vbs"
  106.     bhy(2) = ".bat"
  107.     bhy(3) = ".com"
  108.     bhy(3) = ".scr"
  109.     
  110.     baris = LCase(baris)
  111.     j = 0
  112.     For i = 0 To 4
  113.         j = InStr(1, baris, bhy(i), vbTextCompare)
  114.         If j <> 0 Then
  115.             CekInf = True
  116.             TipeHeuristic = "Heuristic.Susp.Inf (" & i & ")"
  117.             Exit Function
  118.         End If
  119.     Next
  120.     CekInf = False
  121. End Function
  122. Private Sub PaP(p1 As PictureBox, p2 As PictureBox, W As Long, H As Long, c As Long, DDD As Byte)
  123.     Dim X, Y, a, AP, DD1, DD2
  124.     For X = 0 To W - 15 Step c  ' Wah baca koordinat (x,y) pixel nih...
  125.         For Y = 0 To H - 15 Step c
  126.             If p2.Point(X, Y) = p1.Point(X, Y) Then AP = AP + 1 ' Wah ketemu yang sama , tambah satu ah...
  127.             a = a + 1  ' Pokoknya Tambah Satu (untuk total pixel)...
  128.         Next
  129.     Next
  130.     DDD = (AP * 100) \ a 'Mencari Persentase ....
  131. End Sub
  132. Private Function CekIcon(PathFile As String, Picture1 As PictureBox, Picture2 As PictureBox, Akuratyuk As Integer) As Boolean
  133.    
  134.     CekIcon = False
  135.     Picture1.Cls
  136.     Picture2.Picture = frmMain.Image1(12).Picture
  137.     GetLargeIcon PathFile, Picture1
  138.     
  139.     Dim i As Integer
  140.     Dim re As Byte
  141.     For i = 0 To 11 'Banyak Array
  142.         Picture2.Cls
  143.         Picture2.Picture = frmMain.Image1(i).Picture
  144.         PaP Picture1, Picture2, Picture1.Width, Picture1.Height, 15, re
  145.         'Utama.Text2(i) = re
  146.         If re >= Akuratyuk Then
  147.             'Factor = re
  148.             TipeHeuristic = "Heuristic.Susp.Icon (" & i & ") [Acc = " & re & " %]"
  149.             CekIcon = True
  150.             Exit For
  151.         End If
  152.     Next
  153. End Function
  154.