VisualBasic 6: CRC32

Тема в разделе "Другие языки", создана пользователем Шумадан, 15 июл 2014.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    Ребята, помогите опознать функцию и правильно её определить.
    Есть код, декомпилированный с апликухи


    ещё листинг в опкодах
     
    Последнее редактирование модератором: 16 июл 2014
    Ctrogan нравится это.
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    где взять взять список оп-кодов с нормальными описаниями? всё что находил - какие-то обрывки с минимум описательной информации
     
  3. Цукер

    Цукер Сам себе призедент

    Moderator
    Регистр.:
    5 мар 2008
    Сообщения:
    414
    Симпатии:
    375
    Вот хороший пример получения правильного CRC32 http://www.vbaccelerator.com/home/VB/Code/Libraries/CRC32/article.asp
    Скинь свое приложение и что тебе надо сделать - под хайд... на днях. Покапаюсь может помогу конкретным советом.
     
    Шумадан нравится это.
  4. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    интересно, как я это пропустил, сам алгоритм очень похож. саму аппликуху навряд ли тебе могу скинуть, да и, в принципе, я привёл листинг в пермой соообщении.

    Код:
    Private crc32Table() As Long
    
    Private Sub Class_initialize()
    
        ' This is the official polynomial used by CRC32 in PKZip.
        ' Often the polynomial is shown reversed (04C11DB7).
        Dim dwPolynomial As Long
        dwPolynomial = &HEDB88320
        Dim i As Integer, j As Integer
    
        ReDim crc32Table(256)
        Dim dwCrc As Long
    
        For i = 0 To 255
            dwCrc = i
            For j = 8 To 1 Step -1
                If (dwCrc And 1) Then
                    dwCrc = ((dwCrc And &HFFFFFFFE) \ 2&) And &H7FFFFFFF
                    dwCrc = dwCrc Xor dwPolynomial
                Else
                    dwCrc = ((dwCrc And &HFFFFFFFE) \ 2&) And &H7FFFFFFF
                End If
            Next j
            crc32Table(i) = dwCrc
        Next i
    
    End Sub
    
    The CRC32 Calculation
    
    Dim crc32Result As Long
    crc32Result = &HFFFFFFFF
        
    Dim i As Integer
    Dim iLookup As Integer
    
    [For Each [Byte] in [Buffer]]
    
          iLookup = (crc32Result And &HFF) Xor [Byte]
          crc32Result = ((crc32Result And &HFFFFFF00) \ &H100) _
              And 16777215 ' nasty shr 8 with vb :/
          crc32Result = crc32Result Xor crc32Table(iLookup)
    
    [Next]
    
    Crc32 = Not (crc32Result)
    
     
    Джуга, Ctrogan и SilverGhost нравится это.
  5. omear

    omear Писатель

    Регистр.:
    8 авг 2014
    Сообщения:
    9
    Симпатии:
    1
    Код:
    The CRC32 Calculation
    
    Dim crc32Result As Long
    crc32Result = &HFFFFFFFF
         
    Dim i As Integer
    Dim iLookup As Integer
    
    [For Each [Byte] in [Buffer]]
    
          iLookup = (crc32Result And &HFF) Xor [Byte]
          crc32Result = ((crc32Result And &HFFFFFF00) \ &H100) _
              And 16777215 ' nasty shr 8 with vb :/
          crc32Result = crc32Result Xor crc32Table(iLookup)
    
    [Next]
    
    Crc32 = Not (crc32Result)
     
    Шумадан нравится это.
  6. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    спасибо, попробую, ещё есть проблема, толи алгоритм всё таки отличается, толи есть ещё онлайн проверка, но пару версий функции всё таки дали не тот результат, что нужно
     
    Джуга и Ctrogan нравится это.
  7. Цукер

    Цукер Сам себе призедент

    Moderator
    Регистр.:
    5 мар 2008
    Сообщения:
    414
    Симпатии:
    375
    А не проще закаментить условие с проверкой црц32 ?
     
  8. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    нет, не проще, там очень много других вкусняжек зашито, пока отложил это дело. напомню, код, который я привёл - декомпилирован с exe (p-code) :crazy:
     
  9. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    опять добрался к этой проге, накидал немного обратных кодов, у кого есть идеи касательно других и реверсингу?


    часть кодов тут


    Альтернативный вопрос: у меня есть большой exe, там есть та функция crc32, как вместо декомпайлинга превратить exe в маленькую dll с той функцией, мне этого будет достаточно
     
    Последнее редактирование: 2 окт 2014
Статус темы:
Закрыта.