Size: a a a

Ассемблер

2021 August 29

E

Entusiast in Ассемблер
Думаю, что будет. Не думал о таком. Но на деле может быть всё сложнее
источник

d

disba1ancer in Ассемблер
вместо add может быть и lea
источник

E

Entusiast in Ассемблер
В случае с остановкой флагов - не может быть, а должен быть
Судя по таблице - stos = 3, mov+add/lea = 2
Но, опять же, на деле может быть всё сложнее. Промахи в кэше в том числе
источник

d

disba1ancer in Ассемблер
мне кажется промахи дадут одинаковое затормаживание я просто интересуюсь чтобы правильно спроектировать алгоритм подравнивания, ведь в memset может попасть не выровненный указатель и такой размер что и конец не будет выровнен
источник

E

Entusiast in Ассемблер
Можно проверять на выравнивние. В некоторых функциях WinAPI есть такие проверки. Много раз наступал на грабли - функция выполнилась, ошибки нет, а нифига не сработало
Ну это рассчитано на Си-компиляторы, конечно. Они же сами выравнивают, поэтому Microsoft думает, что сделали правильно (Ну хотя это и есть "правильно", если бы ещё добавили ошибку об этом, а так - да, нужно не забывать выравнивать)
источник

d

disba1ancer in Ассемблер
если посмотришь на мой асм то увидишь что в начале я заполняю пространство в начале до выровненной границы и аналогично для конца, а потом оставшееся заполняю по 4 выровненными записями
источник

E

Entusiast in Ассемблер
Платная? Или это я неправильно вопрос прочитал, но за что там платить?

Функция DeviceIoControl - одна
Перехвати её один раз в kernel32,  и перехватишь все вызовы
источник

C

Cofeefee in Ассемблер
правильно прочитал. консультацию хочу с примером кода
источник

E

Entusiast in Ассемблер
Через час напишу. За бесплатно.

Тебе же нужно по шаблону хукнуть, или для каждой DLL с каждым вызовом - разный шаблон?
источник

C

Cofeefee in Ассемблер
А вызовы из других программ как фильтровать? Есть какое-то время между вызовом CreateFileA (открытием драйвера) и вызовом DeviceIoControl. В этот период может прилететь ещё один CreateFileA
источник

C

Cofeefee in Ассемблер
По шаблону
источник

C

Cofeefee in Ассемблер
DLL-ки, которые к DeviceIoControl - разные, но из под одного процесса вызываются. Моя хукающая DLL в том же процессе вызывается
источник

d

disba1ancer in Ассемблер
может тебе проще таблицу импорта переписать?
источник

C

Cofeefee in Ассемблер
Тогда придётся ещё и LoadLibrary перехватывать и править таблицу импортов, когда другие DLL подгружаются. Утяжеляет конструкцию
источник

C

Cofeefee in Ассемблер
Хочется красивого решения
источник

C

Cofeefee in Ассемблер
Поэтому и платная задача,т.к труд должен быть вознаграждён
источник

И

Игорь in Ассемблер
Подскажите что за BOOL как это инициализировать как байт?
источник

E

Entusiast in Ассемблер
dd
0 = FALSE
1 = TRUE
источник

ST

Saenro T in Ассемблер
Разве?
источник

d

disba1ancer in Ассемблер
Это сишный int, 4 байта скорее всего
источник