![]() |
eXeL@B —› Вопросы новичков —› Различие у ZwAllocateVirtualMemory на 7 и хп. |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 13 января 2017 23:37 · Поправил: mazaxaker · Личное сообщение · #1 Пробую выделить память по нулевым адресам, на хп выделяет, а на 7 возвращает 0xC00000F0=STATUS_INVALID_PARAMETER_2 Пробую так: Code:
Почему-то если адрес меньше 10000 (подсмотрел в virtualalloc), то на 7 отказывает в памяти там. Отключил DEP, думал он тут мешает, но и с отключенным не выдает так память. Как бы узнать, почему на 7 отказывает по нулевому адресу выдать память, пробовал windbg, но он почему-то проскакивает sysenter. Кстати исходников нету этих ntdll ?) ![]() |
|
Создано: 14 января 2017 01:17 · Личное сообщение · #2 |
|
Создано: 14 января 2017 01:31 · Личное сообщение · #3 |
|
Создано: 14 января 2017 01:42 · Личное сообщение · #4 mazaxaker Вы думаете что мс разрабы так глупы что дадут вашему сплойту механизм отключения защиты ![]() > что у эксплоитов этих фишка именно выделять в null page себе память ? Нет вы поняли не правильно. Аллокация в нулях нужна была дл LPE, которые использовали не инициализированные указетели, через них передавалось управление по нулевому смещению. Это выпилено. > переделал прогу, чтобы она выделяла память по произвольному адресу Хелловорды из ядра и прочий изврат из за отсутствия знаний - это ваша проблема, а не аллокация в нулях. ----- vx ![]() |
|
Создано: 14 января 2017 01:54 · Личное сообщение · #5 |
|
Создано: 14 января 2017 02:37 · Личное сообщение · #6 |
|
Создано: 14 января 2017 04:58 · Поправил: mazaxaker · Личное сообщение · #7 difexacaw, а не подскажешь как через ядровый отладчик syser добраться до кода в ядре этой функции ZwAllocateVirtualMemory, а то там когда попадаю в ядро, там ведь сначала идет поиск этой функции, а хочется попасть сразу уже в ее код, как бы сделать, чтобы долго не трасировать ядро. Кстати у меня часто мышь обездвиживается в syser на хп, не знаешь как это пофиксить, приходится его много раз перезапускать, а то клавиатура работает, трассировать могу, а мышью ничего не могу сделать. Windbg вроде удобнее, но он почему-то не попадает в ядро, просто как по f8 проходит sysenter, как бы его настроить, он хотя бы без глюков таких с мышью. ![]() |
|
Создано: 14 января 2017 13:12 · Личное сообщение · #8 |
|
Создано: 14 января 2017 16:32 · Личное сообщение · #9 |
|
Создано: 14 января 2017 16:35 · Поправил: DenCoder · Личное сообщение · #10 |
|
Создано: 14 января 2017 17:13 · Личное сообщение · #11 |
|
Создано: 14 января 2017 20:02 · Личное сообщение · #12 |
|
Создано: 14 января 2017 20:22 · Личное сообщение · #13 DenCoder пишет: символы нужны Добавил так SRV*С:\Symbols*http://msdl.microsoft.com/download/symbols По этой инструкции http://www.oszone.net/27732/WinDBG-Install-Configure Но все равно проскакивает sysenter. Добавлено спустя 7 минут Кстати на скринах вижу часто в windbg внизу стоит kd>, а у меня просто 000>. Я так понимаю нужно, чтобы kd там в командой строке стояло, не знаете как kd там в windbg чтобы включилось ? ![]() |
|
Создано: 14 января 2017 21:32 · Поправил: plutos · Личное сообщение · #14 mazaxaker пишет: Кстати на скринах вижу часто в windbg внизу стоит kd>, а у меня просто 000>. Я так понимаю нужно, чтобы kd там в командой строке стояло, не знаете как kd там в windbg чтобы включилось ? In user mode: 0:000> - the processor and thread numbers. In this example the current processor number is 0, and the current thread number is 00. So we are looking at the stack trace for thread 00 (which happens to be running on processor 0). In kernel mode: After breaking into kernel: 0:kd> - first CPU on target machine, kd - kernel debugger. А вообще настоятельно советую почитать мануалы по теме. Windbg штука хитрая и за каждой мелочью на форум не набегаешься. Если вы планируете серьезно использовать его в будущем, то не пожалейте времени и постарайтесь разобраться. Очень облегчит жизнь. ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 14 января 2017 21:48 · Личное сообщение · #15 plutos, гуглю, но с материалами по нему туго, пока вот просто хочу попасть на функцию NtCreateFileA в ядре. Вот в режим кернел зашел в локалке, там появилось kd> и стали работать команды вроде x*nt!Nt*File, удалось глянуть код ее, но вот как теперь сам экзешник подцепить, в режиме kd> не доступен пункт открыть экзешник, бряки в kd> тоже не дает ставить, пишет not supported. Подскажи что не так делаю. ![]() |
|
Создано: 14 января 2017 22:54 · Поправил: plutos · Личное сообщение · #16 mazaxaker пишет: вот как теперь сам экзешник подцепить, в режиме kd> не доступен пункт открыть экзешник Похоже, что вы не понимаете самых основ и будете задавать вопросы до посинения. Мой совет: разберитесь с основами. RTFM! mazaxaker пишет: гуглю, но с материалами по нему туго не смеши... ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 14 января 2017 23:05 · Личное сообщение · #17 |
|
Создано: 14 января 2017 23:36 · Поправил: plutos · Личное сообщение · #18 mazaxaker пишет: А можешь подкинуть материалов хороших. Да в самом DebiggingToolsForWindows есть туториал "kernel_debugging_tutorial.doc", я бы с него и начал, а потом https://msdn.microsoft.com/en-us/library/windows/hardware/dn745911(v=vs.85).aspx и тд. и тп. Материалов море, нужно только поискать. Еще вопрос можно ли обойтись без удаленной отладки в вин хп ? VMware + WRK ? ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 15 января 2017 00:34 · Поправил: mazaxaker · Личное сообщение · #19 |
|
Создано: 15 января 2017 01:22 · Личное сообщение · #20 |
|
Создано: 15 января 2017 01:38 · Личное сообщение · #21 |
|
Создано: 15 января 2017 01:48 · Личное сообщение · #22 |
|
Создано: 15 января 2017 01:59 · Поправил: difexacaw · Личное сообщение · #23 mazaxaker > не подскажешь как через ядровый отладчик syser добраться до кода Раньше я часто юзал виндбг/сиську но это было давно - сейчас мне обычно ничего отлаживать не нужно, цель исследуется аналитически, а не отладкой, дизасм. Последний раз я юзал виндбг очень давно, для дебага своего руткита, но это был крайний случай, там техника интегрировалась в шедулер памяти в самое его дно и для отладки юзался виндебаг. Обычно это крайний случай что бы его заюзать. Это очень мощный инструмент с фундаментальным багом - что бы его заюзать нужно месяца вкуривать кривейшую командную систему при кривой реализации его. ----- vx ![]() |
|
Создано: 15 января 2017 02:05 · Поправил: mazaxaker · Личное сообщение · #24 difexacaw пишет: что бы его заюзать нужно месяца вкуривать кривейшую командну систему при кривой реализации его. Это да, но я хоть разобрался как выдергивать из него код nt функций из ядра. Еще бы не плохо это в иде посмотреть с ее графами и прочими удобствами. Добавлено спустя 9 минут Все-таки я ее вкурил, получилось наконец по pipe соединиться с виртуалкой как тут https://xakep.ru/2009/06/23/48628/ Теперь все идет как в статье plutos ![]() Добавлено спустя 30 минут neshta, я сейчас опытным путем заметил, что эта прога crashme и помогает подцепиться по pipe. Когда я просто писал windbg -b -k com:pipe,port=\.\pipe\com_1 в своей host машине, чтобы подцепить vmware win xp машину, то он просто висел с надписью wait to reconnect. Как только нажал в той проге break int 3, то сразу подхватывает. Не понял только это баг, что он не цепляет систему, пока ее эта прога не заморозит. ![]() |
|
Создано: 15 января 2017 03:22 · Поправил: difexacaw · Личное сообщение · #25 |
|
Создано: 15 января 2017 03:26 · Личное сообщение · #26 difexacaw пишет: Опишите лучше проблему вашу. Мне собственно было интересно посмотреть как работает ZwAllocateVirtualMemory, чтобы понять почему она не выделяла память в null page на семерке. Поэтому и захотел глянуть ее реализацию. difexacaw пишет: дебаг загрузчика ос Так я ось и не дебажу. Я переключал windbg в контекст моего процесса и уже на него конкретно ставил бряки, чтобы все остальное не срабатывало) ![]() |
|
Создано: 15 января 2017 03:38 · Личное сообщение · #27 mazaxaker Так а зачем для этого отлаживать ? Посмотрите дизасмом, найдёте проверку из нескольких инструкций среди множества валидаций, зачем и что дальше не ясно. Я не помню точно, но вроде как аллокация в нулях была доступна только csrss. Но всё равно туда вы не впрыснитесь, это защищённый процесс. ----- vx ![]() |
|
Создано: 15 января 2017 04:52 · Поправил: mazaxaker · Личное сообщение · #28 difexacaw пишет: Но всё равно туда вы не впрыснитесь, это защищённый процесс. Да, это понятно, он с правами системы. difexacaw пишет: Так а зачем для этого отлаживать ? А вот кстати возникла такая идея, чтобы это отлаживать в ollydbg. Они ведь хранятся все в ntkrnlpa.exe, ща в ида отдизасмил их. Вот идея, можно напрямую вызвать, то есть так: Code:
То есть подгрузить ядро к себе и вызвать прям оттуда, а не из ntdll.dll как обычно. Типа такой финт, чтобы в ollydbg со всеми удобствами или даже в ида с графами отлаживать. ![]() |
|
Создано: 15 января 2017 07:09 · Личное сообщение · #29 |
|
Создано: 15 января 2017 16:52 · Личное сообщение · #30 |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Различие у ZwAllocateVirtualMemory на 7 и хп. |