Есть ли способ подделать запись реестра в C #? - PullRequest
1 голос
/ 10 марта 2011

Я пытаюсь выполнить файл .exe из моего кода C #.Файл .exe требует наличия ключа в реестре.Теперь у меня есть два варианта: 1. Либо я могу добавить ключ, выполнить файл, а затем удалить то, что я добавил из реестра.2. ИЛИ Если возможно, я могу подделать ключ в реестре, чтобы .exe мог выполняться, и мне не нужно изменять реестр.

Может кто-нибудь сказать мне, если # 2 возможно?Если нет, то есть ли другой лучший способ справиться с этой ситуацией (perhapds отменить изменения, которые я сделал из реестра)?или я должен придерживаться # 1?

Пожалуйста, объясните мне это.

Спасибо

Ответы [ 4 ]

2 голосов
/ 10 марта 2011

Для этого есть функция , но она влияет только на процесс, который ее вызывает.Таким образом, вам придется использовать DLL инъекции.C # (или любой другой тип управляемого кода) не будет моим выбором для достижения этой цели.

2 голосов
/ 10 марта 2011

Перехват чтения реестра не для слабонервных и почти наверняка потребует на несколько порядков больше работы, чем вариант 1.

1 голос
/ 10 марта 2011

Если вы должны перехватить чтение, тогда начните разработку драйвера на C / C ++, который вызывает CmRegisterCallback для перехвата общесистемных вызовов и отфильтровывания тех, которые вам нужны. Но я думаю, вы серьезно пожалеете , даже запуская проект ... просто перейдите к варианту 1.

0 голосов
/ 10 марта 2011

Технически возможно перехватывать вызовы в реестр, используя что-то вроде обхода . Однако код перехвата не может быть написан на C # и должен быть на C ++ (или C, я полагаю). Не говоря уже о том, что делать это надежным образом - это будет лот работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...