Ничего приличного в голову не приходит... Нужно найти строку произвольной длинны (пробелов нет) в памяти, размер данных известен. Т.Е. .data datas dd 0 ;;; указатель на данные func_name db "SetWindowText", 0 ;;; искомая строка dwFsize dd 0 ;;; размер данных Когда найдём - выйти из цикла. Не нашли - тоже выйти. У меня одна ерунда получается...
самый простой вариант: rep cmpsb может это поможет Код (Text): strpos proc ptrMain:DWORD, ptrSearched:DWORD push esi push edi mov esi,ptrMain invoke strlen,ptrSearched mov edx,eax @@: mov eax,esi mov ecx,edx mov edi,ptrSearched repz cmpsb jz @GotIt mov esi,eax lodsb test al,al jnz @B xor eax,eax @GotIt: pop edi pop esi ret strpos endp
Avoidik Все-таки лучше не вешать все на cmpsb. Обычно ищут первый символ искомой подстроки (repne scаsb) и если нашли, то проверяют остаток (repne cmpsb). Получается ненамного сложнее, но значительно быстрее (в среднем