поиск строки в .exe

Тема в разделе "WASM.BEGINNERS", создана пользователем HPC, 5 июл 2011.

  1. HPC

    HPC New Member

    Публикаций:
    0
    Регистрация:
    30 мар 2011
    Сообщения:
    37
    Всем привет.
    Люди подскажите как в exe-шнике найти строку,например такую: 31 00 21 45
    как проще решить данную задачу?

    вот например открываю фаил,ставлю точку на начало файла а как дальше ? как найти ?

    Подскажите кто знает.

    Код (Text):
    1. format PE GUI 4.0
    2. entry start
    3. include 'win32a.inc'
    4.  
    5. start:
    6.  
    7.   invoke CreateFile,pFile,GENERIC_READ+GENERIC_WRITE,FILE_SHARE_READ+FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
    8.  
    9.     test eax,eax
    10.     je   exit
    11.  
    12.     mov esi,eax
    13.  
    14.   invoke SetFilePointer,esi,[RAWOFFSET],0,0,0
    15.  
    16.   ... .. .. . . ..
    17.  
    18.   .. .. . .. . .. . . .
    19.  
    20.  
    21.    push 0
    22.    push tytl
    23.    push rBytes                 ;результат поиска
    24.    push 0
    25.    call [MessageBoxA]
    26.  
    27.  
    28.  
    29. exit:
    30.   invoke ExitProcess,0
    31.  
    32.  tytl      db 'Win',0
    33.  pFile     db 'notepad.exe',0
    34.  RAWOFFSET dd 0000000h
    35.  rBytes   dd 0
    36.  
    37.  
    38.  
    39.  
    40.    section '.idata' import data readable writeable
    41.  library kernel32,'KERNEL32.DLL',\
    42.           user32,'USER32.DLL'
    43.  
    44.   include 'api/kernel32.inc'
    45.   include 'api/user32.inc'
     
  2. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    В смысле последовательность цифр? Или '31 00 21 45'?
     
  3. HPC

    HPC New Member

    Публикаций:
    0
    Регистрация:
    30 мар 2011
    Сообщения:
    37
    Вот как например в редакторе WinHex,
    есть кнопочка Find Hex Values тыкаем её ,вбиваем '31 00 21 45'
    и он находит в проге кусок кода(если есть конечно такой код)
     
  4. dinoweb

    dinoweb Дмитрий

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    129
    Адрес:
    Россия. Красноярск
    Тогда это поиск не строки '31 00 21 45', а данных
    db 0x31, 0x00, 0x21, 0x45

    А в чём сложность то? Самое простое - загружай файл целиком в буфер, и ищи.
    http://algolist.manual.ru/search/index.php
     
  5. klzlk

    klzlk New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2011
    Сообщения:
    449
    Замапить модуль и найти в памяти. Мапится через секции.