Версия 2. Убрал лишние статические переменные класса. Предполагается что функция splice использует ldasm (ее код не приводится). основной код /*...
переведи) живут в мск, а пишут не по русски %)
Rel p dd hook_code это глобальная переменная, одна для всех потоков xchg eax, [p] обеспечивает атомарный доступ, этому коду пофиг на потоки %)
mov eax, [original_func_ptr] xchg eax, [p] jmp eax hook_code: ...... p dd hook_code при первом прохождении в eax будет адрес...
Кто-нибудь юзал в vmware фичу record\replay?
разумеется при этом kernel32 будет грузиться)
я на С++ писал файл не импортирующий kenrel32 :) убираешь из списка линкера kernel32.lib, пишеш свои реализации для функций kernel32 - и оно...
[IMG] какбэ
gas проблема не в фасме, а в твоем коде fasm\EXAMPLES\HELLO\hello.asm скомпили
гхм... вот что бывает если одновременно писать пару абзацев текста %)
garsi софтайсом уже никто не пользуется. будут использовать ollydbg с плагином который ее на уровне ядра, например (phantom) свой GetProcAddress...
J0E в этом случае генерируется менее оптимальный код - создается дополнительная переменная-флаг для проверки того, были ли статические переменные...
о_О где взял? тоже хочу редактирование) ===== самом деле, как не извращайся, если один из потоков остановлен на инструкции в пределах 5 байт от...
не.. я похоже не так понял) действительно надо энумить потоки
действительно. значит надо по-очереди забивать инструкции int3 если 1я инструкция 5 байт, то все хорошо, ее 1й байт меняем на int3 если 1я...
Clerk разумеется лучше использовать автоматический анализ и копирование инструкций на точке входа с помощью ldasm Но вместо остановки потоков не...
Сплайсинг функции с известным rva, инструкции в начале функции сохраняются вручную. Библиотечный код (hook.h) /* Записывает jmp hook_fn по адресу...
garsi импортируйте все функции динамически, тогда таблицы импорта не будет вообще. (разумеется нужен свой GetProcAddress) от отладчиков, которые...
очередная версия. вместо того чтобы делать по макросу для каждой функций, требует писать 'hcall' в начале строки поддерживает 1 уровень...
Clerk спасибо
Имена участников (разделяйте запятой).