Сейчас на форуме: Rio, ==DJ==[ZLO], Dart Raiden, Alf (+6 невидимых)

 eXeL@B —› Основной форум —› Вопрос по ASM поиск последованности байт
Посл.ответ Сообщение

Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 27 сентября 2004 03:00
· Личное сообщение · #1

Подскажите как организовать в асме поиск последованности байт типа таких "750433с0eb02", что бы я знал по какому адресу расположенно "75", если можно пример, зарание благодарен



Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 27 сентября 2004 03:21
· Личное сообщение · #2

берешь HIEV открываеншь им файл жмешь Ентер 2 раза' , потом F7 и потом Tab вот теперь пиши свою строку для поиска.



Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 27 сентября 2004 06:22
· Личное сообщение · #3

Я помойму спросил в асме, а не HIEV, это совсем разные вещи



Ранг: 0.0 (гость)
Активность: 0.020
Статус: Участник

Создано: 27 сентября 2004 06:22
· Личное сообщение · #4

WaNDeR
В Олли Search for -> All sequences, потом:
jz CONST
xor EAX,EAX
jmp CONST



Ранг: 0.0 (гость)
Активность: 0.020
Статус: Участник

Создано: 27 сентября 2004 06:23
· Личное сообщение · #5

WaNDeR пишет:
Я помойму спросил в асме, а не HIEV, это совсем разные вещи

В смысле "В Асме"?



Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 27 сентября 2004 06:28
· Личное сообщение · #6

XaErO
Мммм...мне это ниочем не говорит



Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 27 сентября 2004 06:29
· Личное сообщение · #7

XaErO
в смысле как на ассамблере написать поиск последовательных байт в файле, че не понятно...



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 27 сентября 2004 06:39
· Личное сообщение · #8

www.wasm.ru/forum/ там жмёшь Поиск и наслаждаешься результатом ;)



Ранг: 0.0 (гость)
Активность: 0.020
Статус: Участник

Создано: 27 сентября 2004 06:47
· Личное сообщение · #9

WaNDeR пишет:
че не понятно

Ну если двум людям непонятно, тогда значит вопрос не так сформулирован!
Так бы и говорил, что из программы! А так васм в руки!



Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 27 сентября 2004 07:08
· Личное сообщение · #10

Мда...



Ранг: 1.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 27 сентября 2004 07:41
· Личное сообщение · #11


Как-как... (ворчливо). Так же , как и на C..
Сначала надо написать процедуру сравнения двух
массивов заданных размеров. И это практически 80%
всей работы.
Процедуре, очевидно должны передаваться:
1. образец поиска
2. его размер
3. откудова ищем.
если файл - имя файла, если память - адрес памяти.
4. если речь идет о памяти, очевидно нужно задать еще
конечный адрес (или размер) чтобы остановить алгорим.
Для файла этот вопрос очевиден..




Ранг: 18.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 27 сентября 2004 10:34
· Личное сообщение · #12

В Masm32, уже реализованы функции :
BinSearch,BMBinSearch и еще парочку...
смотри masm32.inc и BM.asm например




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 27 сентября 2004 10:37
· Личное сообщение · #13

WaNDeR пишет:
последованности

Мдя. А я думал это поледовательность называется.

А вообще интересный вопрос. Может у кого правда исходничек на асме завалялся?



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 27 сентября 2004 13:12
· Личное сообщение · #14

> А вообще интересный вопрос.

Ничего интересного ;)
А исходников полно на форуме wasm'а =)



Ранг: 1.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 28 сентября 2004 02:40
· Личное сообщение · #15


Исходники ? По этому вопросу ? - стыд то какой.
"Обучаю скоростному ASM программированию" :
1. Пишем все на с (например, Борланд)
2. Компилируем с ключом "-S" - получаем ассемблерный текст.
3. Взглядом ламера (переходящим во взгляд продвинутого
ламера) смотрим на текст.asm и правим, рихтуем, курочим..
4. Далее Tasm, Tlink..




Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 28 сентября 2004 03:13 · Поправил: S_T_A_S_
· Личное сообщение · #16

tum пишет:
Так же , как и на C..


Зачем же.. можно и по другому.
Например, использовать sse (хотя и не самый лучший способ)

; esi указывает на файл в памяти

movq mm0, [pattern]
movq mm1, [mask6]

search:
movq mm2, qword[esi]
inc esi
pand mm2,mm1
pcmpeqd mm2,mm0
packssdw mm2,mm2
movd eax, mm2
inc eax
jnz search

; здесь esi = (адрес байта 75h) + 1
; если "750433с0eb02" есть в файле

pattern dq 02ebс0330475h
mask6 dq 0FFFFFFFFFFFFh


ЗЫ
А если последовательности нет, то выход из цикла через SEH


 eXeL@B —› Основной форум —› Вопрос по ASM поиск последованности байт
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати