Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых) |
eXeL@B —› Программирование —› Поиск сигнатуры на асме |
Посл.ответ | Сообщение |
|
Создано: 05 февраля 2006 12:18 · Поправил: Hellspawn · Личное сообщение · #1 вот собственно написал... наверное не много кривовато =\ ищется сигнатура в буфере... если в исходном образце содержится байт FF (аналогично 55::EC) то ищем дальше... можно ли здесь что нит упростить??? а то мои скромные знания асма больше ничё сделать не позволяют.... %(
----- [nice coder and reverser] |
|
Создано: 05 февраля 2006 12:32 · Личное сообщение · #2 |
|
Создано: 05 февраля 2006 12:33 · Поправил: Hellspawn · Личное сообщение · #3 |
|
Создано: 05 февраля 2006 12:40 · Личное сообщение · #4 |
|
Создано: 05 февраля 2006 12:47 · Личное сообщение · #5 |
|
Создано: 05 февраля 2006 13:07 · Поправил: EGOiST · Личное сообщение · #6 |
|
Создано: 05 февраля 2006 13:12 · Личное сообщение · #7 EGOiST пишет: а у Неокса нельзя случаем исходник надыбать? пе-сниффер его ведь детище да можно наверное, тока зачем? =\ хочется самому разобраться... попробовал я команду REPE CMPSB ... хм странно она определяет конец буфера.. если пошли FF то типа хватит =\ (а в ехе их может быть много) или я не догнал...
----- [nice coder and reverser] |
|
Создано: 05 февраля 2006 14:28 · Личное сообщение · #8 Ногами прошу не пинать: pushad mov edx,offset @endsign - offset @sign dec edx lea esi,@sign lodsb ;получаем 1-ый байт сигнатуры mov edi,memptr mov ebp,memz next_str: push esi mov ecx,ebp repne scasb ;ищем первый байт jne @end ;нет 1-го байта mov ebp,ecx mov first_sym,edi mov ecx,edx next_sym: repe cmpsb ;сравниваем остальную сигнатуру je @end1 cmp byte ptr [esi-1],0ffh ;если наткнулись на ff je next_sym add ebp,ecx sub ebp,edx add ecx,7 cmp ecx,edx jb @end1 ;если совпало 8 или болбше pop esi jmp next_str @end1: mov eax,first_sym dec eax mov c1,eax @end: pop esi popad @sign: DB 55h,066h,077h,0FFh,099h,011h,022h,033h,044h @endsign: |
|
Создано: 06 февраля 2006 21:53 · Поправил: Hellspawn · Личное сообщение · #9 asd пишет: Ногами прошу не пинать: да нет =) не получится =) вообще код ничё... основной принцип я понял repne scasb рулит.. её и буду узать... а терь пара пинков... mov ebp,memz <-- ну зачем в регистр ебп что то пихать??? ведь потом любое обращение к переменной, например: mov first_sym,edi - будет ошибкой... так как переменная - это [ebp-$XX] ... так что вот... а вообще сенкс... поправлю и будет ок... ----- [nice coder and reverser] |
|
Создано: 06 февраля 2006 22:22 · Поправил: asd · Личное сообщение · #10 |
|
Создано: 07 февраля 2006 13:04 · Личное сообщение · #11 asd пишет: если first_sym локальная переменная,то да. всё исправил... не знал просто... и ещё пара моментов... @end1 и @end всё таки нуно в самый конец переместить... а то сигнатура будет выполняться +) и в своём коде я увидел ошибку... с1 будет указывать на конец сигны в файле... (но мне это не важно... главное её наличие) а вообще твой код кулл... терь осталость только добавлять сигны чуть его переделаю, чтоб универсальным был... ----- [nice coder and reverser] |
eXeL@B —› Программирование —› Поиск сигнатуры на асме |