доброго времени суток... я реализовал алгоритм из статьи Twister'а "Инжект: лезем через окно", тестировал под XP - все работает как часы... но под Вистой появились проблемы... выскакивает Access Violating на первой инструкции внедренного кода... попробывал выставить этому участку памяти права PAGE_EXECUTE_READ, но функция VirtualProtectEx выпадает с ошибкой INVALID_PARAMETER... видимо Виста совсем не предполагает, что данная область памяти может использоваться для исполнения и не дает установить соответствующие права (в XP же этой области не удается установить только права на запись)... как вы думаете, что можно с этой проблемой сделать?
Есть идея позвать Twister'а. Во-первых. Рекомендую взять winuser.pas из более свежих статей, там кое-что пофикшено. Во-вторых. На Висте я тоже тестировал. Все работало, но без СП. Возможно (и скорее всего) в SP1 что-то изменилось. Рекомендую реализовать пункт "Во-первых." и продолжить тестирование уже потом.
дело в том, что я и старого не брал... я не люблю "копипаст", к тому же я не люблю паскаль)))))... я делал на си по изложенному вами алгоритму... причем по алгоритму все нормально, адрес внедренного кода определяется правильно, но внедренному коду не удается установить права на выполнение... может быть... я тестировал на sp1... в таком случае очень жаль, этот метод весьма красив по моему мнению...
Ну ты этому региону памяти атрибуты из юзермода поменять ни как не сможешь, это же всего лишь проекция. Другое дело, что в SP1 могли запретить выполнения кода с этих страниц (или какой-нибудь там DEP включен). Ты можешь прочитать эту память из чужого процесса? И еще. Если ты опирался на сорцы именно из этой статьи, то в СП1 оно и не должно работать, там не зашит адрес g_SharedInfo для этой версии. Погляди более свежий вариант.
вообще да... я чет забыл об этом подумать... да могу... там стоят права только на чтение, а в xp - на чтение и на выполнение... я поэтому и стал попробовать их менять)))
Если мне не изменяет память, то с выключенным DEP'ом можно исполнить все, что можно прочитать. Пусть меня поправят, если ошибся. Если же нет - значит мы нашли камень преткновения.
да, ты чертовски прав)))) кстати заметил парадокс в сознании программистов microsoft, вспоминая основное предназначение DEP... по правилам исключения на DEP не удается поставить всяким левым утилитам вроде calc.exe или notepad.exe, но удается поставить программам, в которые злоумышленникам выгодно проникать: explorer.exe или iexplore.exe... Twister, спасибо за полезные знания! если ты не против, я задам тебе еще несколько вопросов, но уже в лс? топик можно закрывать)