Ответ 1
С первого взгляда я скажу "нет, этого будет недостаточно".
Причины:
-
CreateRemoteThread
Атаки - это прямые вызовы win32, без управляемых кодовых трасс, которые могли бы отключить детектор, подобный этому -
Я думаю, что можно было бы создать еще один
AppDomain
в вложенной dll, тем самым полностью обходя эту проверку. Тогда можно было бы выполнить код из этогоAppDomain
, потенциально (я должен был бы подумать, что через), вернувшись в "основной"AppDomain
черезAppDomain.DoCallback
-
Process.Kill
- это ужасный способ отбросить ваше приложение, хотя это не способный к прикосновению способ сделать это - то есть любой прикрепленный не смог бы его предотвратить (он использует Win32TerminateProcess
под капотом)
Мне пришлось бы вытащить у меня проводку "Инжектор", чтобы проверить эти утверждения, потому что, если я помню, где, черт возьми, я поместил этот код...
Независимо от любого из них - вы абсолютно хотите обмануть ад из этой сборки, особенно если вы планируете хранить чувствительные биты внутри (на самом деле я бы возражал против хранения ЛЮБОЙ чувствительной информацию внутри сборки, если вы можете помочь) - ваш метод предотвращения абсолютно НЕ остановит любые дизассемблеры, такие как Reflector, ILSpy, dotPeek и т.д.