DotFix ::: Software protection portal
 *Начало * Ответить * Статистика * Задать вопрос * Поиск * FAQ * *

DotFix Forum / Вопросы программирования и исследования защит / Контрольная сумма EXE, DLL файла
Автор Сообщение
Lumen
Участник


Дата: 7 Июн 2006 22:59


Здравствуйте!

Подскажите, пожалуйста, как на VB посчитать контрольную сумму exe файла (ну или любого PE Executable) с помощью функций из библиотеки imagehlp.dll, как это делает PE Tools. Если можно примерчик киньте, пожалуйста.

Заранее благодарен.

Admin
Администратор


Дата: 8 Июн 2006 18:26


Зачем юзать какую то DLL? Проще создать классмодуль и написать в него:

 
Option Explicit 
 
Private CRCTable(0 To 255) As Long 
 
Public Function CalculateBytes(ByteArray() As Byte) As Long 
Dim Limit As Long 
Dim crc As Long 
Dim Temp1 As Long 
Dim Temp2 As Long 
Dim i As Long 
  Limit = UBound(ByteArray) 
  crc = -1 
  For i = 0 To Limit 
    If crc < 0 Then 
      Temp1 = crc And &H7FFFFFFF 
      Temp1 = Temp1 \ 256 
      Temp1 = (Temp1 Or &H800000) And &HFFFFFF 
    Else 
      Temp1 = (crc \ 256) And &HFFFFFF 
    End If 
    Temp2 = ByteArray(i)   ' get the byte 
    Temp2 = CRCTable((crc Xor Temp2) And &HFF) 
    crc = Temp1 Xor Temp2 
  Next i 
  crc = crc Xor &HFFFFFFFF 
  CalculateBytes = crc 
End Function 
 
Private Sub Class_Initialize() 
Dim i As Integer 
Dim j As Integer 
Dim Limit As Long 
Dim crc As Long 
Dim Temp1 As Long 
  Limit = &HEDB88320 
  For i = 0 To 255 
    crc = i 
    For j = 8 To 1 Step -1 
      If crc < 0 Then 
        Temp1 = crc And &H7FFFFFFF 
        Temp1 = Temp1 \ 2 
        Temp1 = Temp1 Or &H40000000 
      Else 
        Temp1 = crc \ 2 
      End If 
      If crc And 1 Then 
        crc = Temp1 Xor Limit 
      Else 
        crc = Temp1 
      End If 
    Next j 
    CRCTable(i) = crc 
  Next i 
End Sub 


Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL  Email Link  Код 
... Отменить *Что это?


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль