Хех... Не было печали, да черти накачали. Обнаружилось паранормальное явление: При ImageBase адресе, большем 00E00000 - инжет выполняется нормально ( один раз выполняет функцию, заданную в CreateRemoteThread) При ImageBase адресе, меньшем 00E00000 - VirtualAllocEx не работает, возвращает 487 код ошибки ( VirtualFreeEx перед этим дает доступ к памяти для этого процесса) При ImageBase адресе, равном 00E00000 - код функции, запускаемой в CreateRemoteThread выполняется дважды. ( совершенно непонятно, почему так происходит). Как решить подобное?
_DEN_ Пишу на C++, логично было это предположить. p.s. #pragma comment(linker, "/BASE:большой_адрес") не предлагать
AntiINetwork Срочно сообщите об этом баге Майкрософт! Это как? Не изобретать велосипед, а взять стандартный код инжекта.
Quantum Стандартный код инжекта основывается на жесткой фиксации большего адреса, при помощи директивы линкеру: #pragma comment(linker, "/BASE:большой_адрес"). Это неуместно, поэтому в коде инжекта вычисляется ImageBase, вычисляется правильно 100%, остольное все, как в стандартном инжекте. Если быть точным снимает резервирование нужного участка памяти в контексте процесса, в который идет инжект.
asd Что-то не видел таких на C/C++, линки плиз. p.s. Инжект работает при большем фиксированном адресе, большой подразумевает больший, чем 0x00E00000.
Код инжекта анлогичен, предложенному cr4sh'eм во втором посте здесь: http://www.wasm.ru/forum/viewtopic.php?id=17765 только ImageBase вычисляется там же, а не задается DEFINE'ом.
AntiINetwork посмотри пост 10 по ссылке которую ты привёл. В конце концов, что мешает подцепиться отладчиком и посмотреть?
AntiINetwork берешь ядро и расщипляешь его. после расщепления pentium core duo откладываешь его ядра в сторону. все, из тебя получился ядерный отладчик а если серъезно, то по-моему имелся ввиду soft ice (поправьте меня, если не прав). а статей по его эксплуатации куча
Не, ну зачем лезть в ядро??? На выполнение VirtualAlloc можно посмотреть в Olly и, за одно, проверить почему страницы заняты и где есть свободные.
Quantum 1. VirtualAllocEx 2. Смотрел, ничего интерсеного не увидел, на что внимание обратить? MSoft Soft-ice, сейчас испробуем.
AntiINetwork Хотите сказать, что заданный адрес в процессе свободен, к процессу имеется полный доступ, а VirtualAllocEx всё равно не хочет его выделять? Вот я только что посмотрел код во 2м посте того топика и могу однозначно сказать, что базовый адрес будет занят Короче, инжектить надо не в базовый адрес, а в другое (свободное!!!) место. Для этого код должен быть PIC'овым или же придётся самостоятельно настраивать релоки. Но всё это уже обговаривалось: и тут, и в том старом топике.