Задача в общих чертах такая: Имеется процедура (адрес) в дизассемблере. Процедура имеет аргументы, приезжающие, естественно, в регистрах либо стеке [ebp+n]/[esp+n]. Расположение интересующего аргумента (назовем его ArgX) также задается. Необходимо через k шагов (инструкций) определить, был ли аргумент ArgX скопирован в какой-либо другой регистр, либо в память, были ли над ним произведены какие-то действия (прибавлено или отнято число, разыменование указателя и т.п.). Что-то подобное делал в незапамятные времена CDragon на C API, в идеале хотелось бы обойтись питоном. Если задача лучше решается не эмулятором, а каким-нибудь smt-солвером, тоже жду советов, подсказок. Заранее спасибо.
ormoulu, Я пытался это реализовать, только не скриптом а напрямую: https://wasm.in/threads/avanguard-the-win32-anti-intrusion-library.33212/page-3#post-408852 https://wasm.in/threads/control-flow-guard.33503/#post-413723 Затея гиблая, точнее в некотором блоке можно отследить пересылку данных, описать зависимости от исходного регистра. Но при первом системном вызове всё пойдёт в NP.