File Mapping

Тема в разделе "WASM.NT.KERNEL", создана пользователем haxorart, 24 июн 2010.

  1. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    Здравствуйте. Ранще, когда мне нужно было парсит РЕ я использовал ZwOpenFile\ZwReadFile +пересчет из RVA в оффсеты. Попробовал за грузить через ZwCreateFile/ZwCreateSection/ZwMapViewOfSection но возникают какие-то ошибки:
    1)Если пытаться загрузить ntdll, то в ZwMapViewOfSection возникает ошибка STATUS_IMAGE_NOT_AT_BASE. Как я понял она возникает из-за реалоков. Как можно обойти эту ситуацию.
    2)Если загружаю другую библиотеку(kernel32) всё вроде бы проходит без ошибок,в параметр ViewSize почему-то постоянно возвращается значение 1000(hex). Соответственно при парсинге, когда я выхожу за пределы этого значения ловлю BSOD. Получается что при маппинге таком загружается 1 секция; можно ли загрузить весь файл целиком или это у меня ошибка?
    Код (Text):
    1. if (ZwCreateFile(&File, GENERIC_READ, &oa, &io, 0, FILE_ATTRIBUTE_NORMAL, 0, FILE_OPEN, 0, 0, 0)== STATUS_SUCCESS)  {
    2.    
    3.         if (ZwCreateSection(&Section, SECTION_ALL_ACCESS, 0, NULL, PAGE_READWRITE, /*SEC_COMMIT*/0x1000000, File) == STATUS_SUCCESS){
    4.                    
    5.             temp = ZwMapViewOfSection(Section, ZwCurrentProcess(), &ret, 0, 0, NULL, &ViewSize, ViewShare, 0, PAGE_READWRITE);
    6.            
    7.             if (temp != STATUS_SUCCESS){
    8.                 [...]
    9.             }
    10.         }
    11.         ZwClose(Section);
    12.         ZwClose(File);
    13.     }
    14.  
    15.     return ret;
    16. }
     
  2. Bazhan

    Bazhan Андрей

    Публикаций:
    0
    Регистрация:
    8 янв 2008
    Сообщения:
    71
    Адрес:
    Украина
    инициализируй ViewSize = 0;
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Это не код ошибки, это даже не код предупреждения. Это информационный код - секция проецируется, просто винда подсказывает - этот образ загружен не по его родному адресу.