Вхождение UNICODE-строки

Тема в разделе "WASM.BEGINNERS", создана пользователем _sheva740, 24 июн 2009.

  1. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Подскажите как найти вхождение одной UNICODE-строки в другую.
    В мануале читаю:

    Пишу ...
    Код (Text):
    1. .686p
    2. .mmx
    3. .model flat,stdcall
    4. option casemap:none
    5. include \masm32\include\windows.inc
    6. include \masm32\include\kernel32.inc
    7. include \masm32\include\w2k\ntdll.inc
    8. ;include \masm32\include\miglib.inc
    9. include \masm32\include\user32.inc
    10.  
    11. includelib \masm32\lib\kernel32.lib
    12. includelib \masm32\lib\w2k\ntdll.lib
    13. includelib \masm32\lib\user32.lib
    14. ;includelib \masm32\lib\miglib.lib
    15. include \masm32\Macros\Strings.mac
    16. .data
    17.   str_start word 0
    18.   word 'v','i','r','u','s',0
    19.   word 's','p','y','w','a','r','e',0
    20.   word 'm','a','l','w','a','r','e',0
    21.   word 'r','o','o','t','k','i','t',0,0
    22.  
    23. .code
    24. start proc
    25. ;-----------------------------------------------------
    26.     lea esi, str_start
    27. @@: lodsw
    28.     test    ax, ax
    29.     jnz @b
    30.     mov ax, WORD PTR [esi]
    31.     test    ax, ax
    32.     jz  __ldone
    33. ;-----------------------------------------------------
    34.     invoke  wcsstr,esi,$CTW0("77777spyware77");_wcsistr
    35.     .if eax != 0
    36.         invoke MessageBoxW,0,0,0,0
    37.     .endif
    38.     jmp @b
    39. __ldone:
    40.     mov eax,0
    41.     invoke ExitProcess,0
    42. start endp
    43. end start
    В отладчике смотрю ... но факт совпадения в EAX (в заданный известный момент ) не отражается :dntknw:
    Всегда, при любой строке, EAX = 0.

    Где накосячил, подскажите?
    Спасибо.
     
  2. bendme

    bendme New Member

    Публикаций:
    0
    У тебя первый word - символ завершения строки. Всё, что после него функция не рассматривает.
     
  3. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    bendme
    да не
    Код (Text):
    1. ...
    2.   str_start word 0
    3. ...
    4. обработается по ->  
    5.  
    6. @@: lodsw
    7.     test    ax, ax
    8.     jnz @b
    9. ...
    [​IMG]
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    в параметрах.
    посмотри прототип еще раз.
     
  5. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    n0name
    Код (Text):
    1. wcsstr PROTO C :DWORD, :DWORD
    не вижу :dntknw: подскажите пожалуйста.
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    http://msdn.microsoft.com/en-us/library/z9da80kz(VS.80).aspx
     
  7. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    n0name
    ааа, понял .... надо так
    Код (Text):
    1. ;-----------------------------------------------------
    2.     invoke  wcsstr,$CTW0("77777spyware77"),esi
    Спасибо!