Пожалуйста, обратите внимание, что пользователь заблокирован
С зимы понемногу разбираюсь с перехватом апи. Есть код, который перехватывает мессадбокс в блокноте (вызвать его можно при поиске). На ХР все работает отлично. На висте - сначала блокировал DEP, но по совету Apocalypse, перекомпилировал с другими флагами для секций кода, импорта - заработало. На семерке же ни в какую, при запуске прога вылетает с ошибкой. Т.е. прога тупо запускается и ошибка
Немного погуглив, я понял, что проблема в токенах - т.е. делать write|read process memory чужого процесса в спермерке может лишь админ. Выходит, что бот должен быть запущен только под админом. Но как же работают формграбберы все эти, не пойму. Ведь не все сидят под админами.
В общем, алгоритм такой - я запускаю блокнот (на рабочем столе), от того же юзера на рабочем столе мой ехе - перехват. Он сразу вылетает с ошибкой которая выше. Если на моем ехе нажать правой кнопкой - запустить от админа, то все отрабатывает гуд.
В процесс эксплорере одинаковый уровень интегрити у блокнота и моей проги.
Вопрос - что я делаю не так и как это решить без манифестов? Почему оно вылетает именно на 7? Или никак не решить, ибо все таки нереально читать и писать в память чужого процесса? Кодес вот http://pastebin.com/LV0yCDHn
эта ошибка - это опять же, ACCESS_DENIED (код).Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя модуля с ошибкой: ntdll.dll
Отметка времени модуля с ошибкой: 4ba9b21e
Код исключения: c0000005
Немного погуглив, я понял, что проблема в токенах - т.е. делать write|read process memory чужого процесса в спермерке может лишь админ. Выходит, что бот должен быть запущен только под админом. Но как же работают формграбберы все эти, не пойму. Ведь не все сидят под админами.
В общем, алгоритм такой - я запускаю блокнот (на рабочем столе), от того же юзера на рабочем столе мой ехе - перехват. Он сразу вылетает с ошибкой которая выше. Если на моем ехе нажать правой кнопкой - запустить от админа, то все отрабатывает гуд.
В процесс эксплорере одинаковый уровень интегрити у блокнота и моей проги.
Вопрос - что я делаю не так и как это решить без манифестов? Почему оно вылетает именно на 7? Или никак не решить, ибо все таки нереально читать и писать в память чужого процесса? Кодес вот http://pastebin.com/LV0yCDHn