Зачем нужен SetEndOfFile?

Тема в разделе "WASM.BEGINNERS", создана пользователем _faq_, 31 июл 2008.

  1. _faq_

    _faq_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2008
    Сообщения:
    46
    Здравствуйте! В некоторых исходниках вирей, которые заражают файл расширением последней секции, используется файловый мэппинг. А после MapViewOfFile/UnmapViewOfFile идут SetFilePointer & SetEndOfFile. Объясните, зачем это нужно? Вроде бы, там урезать ничего не надо.
     
  2. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Это зависит от кривизны рук программиста

    CreateFileMapping в качестве одного из параметров принимает размер файла. Если заданный размер файла больше реального, то мэппируемый файл автоматически будет расширен до необходимого размера.

    Как правило, в CreateFileMapping загоняют выровненый (размер файла + размер вируса)

    Однако

    Если заражение провалилось, - размер файла нужно вернуть на место.
    Вот для этого и служит SetEndOfFile
     
  3. _faq_

    _faq_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2008
    Сообщения:
    46
    Ага, я все понял. То есть можно либо ремэппинг длЯ отката размера, либо через SetEndOfFile. Спасибо большое:)