Неполучается прикрутить MD5 (MASM)

Тема в разделе "WASM.BEGINNERS", создана пользователем ATX, 6 авг 2008.

  1. ATX

    ATX New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    145
    Всем привет!

    Моя аппа должна юзать хэш-функцию MD5, с WASM-a скачал чудную колекцию алгоритмов по этой теме.
    Но трабла, не получается скомпилить код.
    MASM ругется на такое выражение - mov eax,[esi+0*4]
    Ошибка - error A2022: instruction operands must be the same size

    Хотя код написан для MASM, плиз помогите прикрутить...

    Код здесь - http://www.wasm.ru/baixado.php?mode=src&id=279
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    ATX
    Ну сделай mov eax,DWORD PTR[esi+0*4]
    Хотя нафик 0*4.
     
  3. ATX

    ATX New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    145
    По этому поводу ничего не скажу, так в исходниках.
    Вот я тока не пойму как они предпологали их компилить на MASM-е :)
     
  4. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    ATX
    Мб защита, просто с 0 и впрям не ясность... хотя мб особенность процов, хотя наврятли..
     
  5. ATX

    ATX New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    145
    Есть еще непонятки, как юзать эту ф-цию )))
    Здесь определены 3 процедуры, как и в каком порядке юзать - непонятно...
    MD5Init proto
    MD5Update proto :lol: WORD,:lol: WORD
    MD5Final proto
     
  6. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    SPA
    Какая защита, какая особенность? Шутить изволите? Эстетичнее так исходник выглядит и нагляднее. И вполне вероятно, что автору лень было это все набирать руками, и он написал маленькую программку, которая всю основную процедуру нахождения MD5 сгенерировала.
    ATX
    Именно в этом и использовать. MD5Init задаёт стандартные начальные значения дайджеста. MD5Update проводит основные вычисления по всему или почти всему хэшируемому сообщению. MD5Final, наконец, дописывает в конец единичный бит, нули и размер хэшируемого сообщения. После MD5Final в MD5Digest будет четыре двойных слова хэша.
     
  7. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    А как захешировать целый файл?
     
  8. ATX

    ATX New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    145
    l_inc

    Спасибо!

    MD5Init, MD5Update ... - все это очень позновательно, но как практически использовать эти ф-ции.
    У меня задача очень простая, нужно получить хэш MD5 блока данных, путем обращения к N ф-ции.
    Я не силен в крипто-алгоритмах и не очень понимаю принцип их действия(((
     
  9. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    call MD5Init
    invoke MD5Update, offset _data_, 56 ; _data_ = указатель на блок данных, 56 - длина
    MD5Final

    теперь в EAX указатель на 16 байтовый хешь.
     
  10. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    2FED
    MD5Init в Вашей третьей строке - это что? Еще один вызов MD5Init? Круто. Но указатель в eax тогда будет не на хэш, а на стартовые значения. Кроме того, после MD5Update необходимо вызвать MD5Final, который досчитает хэш. И вот только тогда в eax будет указатель на хэш.
    P.S.
    ATX
    Собственно, в этом посте я перефразировал то, что написал в шестом посте. Учитывая указания 2FED, можно получить инструкцию по применению этого исходника. :) А всё остальное зависит от того, к чему и как Вы хотите его прикрутить. Можно скомпилировать в obj и линковать вместе со своими объектными файлами, можно просто вставить в свой исходник.
     
  11. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    l_inc ой, нето скопипастил, конечноже имелось ввиду MD5Final