*Начало * Ответить * Статистика * Задать вопрос * Поиск * 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 |