Я имел дело с чем-то вроде этого несколько лет назад.Если я правильно помню, то, что я в итоге делал, это создание приостановленной задачи, затем GetThreadContext
, установите его флаг прерывания, SetThreadContext
, возобновите поток (который выполняет одну инструкцию), затем используйте EnumProcessModules
.
Конечно, могут быть и другие способы справиться с этим, но, по крайней мере, если память служит, это то, что я придумал в то время, и я, кажется, вспомнил, как она работала.