Как замапить секцию из чужого процесса в свой ?
В обратном порядке это работает очень просто, что бы замапить свою память в чужой процесс создаем секцию через NtCreateSection, затем два раза вызываем NtMapViewOfSection, первый для хендла своего процесса, а второй для того куда будем мапить, при этом адреса указываем как 0, это означает что память будет выделена в случайном месте по усмотрению системы, потом можем писать в замапленый кусок в своем процессе и автоматически эти изменения применяются к замапленому куску в чужом процессе
Только вот это работает, если создавать новую секцию и таким образом мы можем писать в чужой процесс по вновь выделенным адресам, но не писать\читать из уже созданных секций
Я предполагаю, что нужно через NtQueryProcessInformation с параметром ProcessHandleInformation перечислить все хендлы в процессе, отсеять те, которые по типу объекта соответствуют "секции", затем дублировать хендлы к себе в процесс, открывать секции и получать из них информацию о адресах, находить нужный диапазон и используя хендл подходящей секции делать NtMapViewOfSection в свой процесс, что бы прочитать данные по нужному адресу
Кто что думает по этому поводу ?
В обратном порядке это работает очень просто, что бы замапить свою память в чужой процесс создаем секцию через NtCreateSection, затем два раза вызываем NtMapViewOfSection, первый для хендла своего процесса, а второй для того куда будем мапить, при этом адреса указываем как 0, это означает что память будет выделена в случайном месте по усмотрению системы, потом можем писать в замапленый кусок в своем процессе и автоматически эти изменения применяются к замапленому куску в чужом процессе
Только вот это работает, если создавать новую секцию и таким образом мы можем писать в чужой процесс по вновь выделенным адресам, но не писать\читать из уже созданных секций
Я предполагаю, что нужно через NtQueryProcessInformation с параметром ProcessHandleInformation перечислить все хендлы в процессе, отсеять те, которые по типу объекта соответствуют "секции", затем дублировать хендлы к себе в процесс, открывать секции и получать из них информацию о адресах, находить нужный диапазон и используя хендл подходящей секции делать NtMapViewOfSection в свой процесс, что бы прочитать данные по нужному адресу
Кто что думает по этому поводу ?