LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

по ссылке - дан патч, который накладыватеся на open source «дерево исходников»

И что, это не поможет найти фрагмент проверки на симлинк в бинарнике?

Идем в исходники: https://www.virtualbox.org/browser/vbox/trunk/src/VBox/HostDrivers/Support/SU...

Видим там:

static int 
supR3HardenedVerifyFsObject(PCSUPR3HARDENEDFSOBJSTATE pFsObjState, bool fDir, bool fRelaxed,
                            const char *pszPath, PRTERRINFO pErrInfo)

...

if (S_ISLNK(pFsObjState->Stat.st_mode))
    return supR3HardenedSetError3(VERR_SUPLIB_SYMLINKS_ARE_NOT_PERMITTED, pErrInfo,
        "Symlinks are not permitted: '", pszPath, "'");

Смотрим в бинарник /VirtualBox, видим там:

.0804A966: 81E100F00000                   and          ecx,00000F000 ;'  Ё '
.0804A96C: 81F900400000                   cmp          ecx,000004000 ;'  @ '
.0804A972: 743D                           jz          .00804A9B1 --↓3
.0804A974: 81F900800000                   cmp          ecx,000008000 ;'  А '
.0804A97A: 7435                           jz          .00804A9B1 --↓3

; if (S_ISLNK(pFsObjState->Stat.st_mode))
.0804A97C: 81F900A00000                   cmp          ecx,00000A000 ;'  а '
.0804A982: 0F8488000000                   jz          .00804AA10 --↓4

Достатошно?

Исходная версия bormant, :

по ссылке - дан патч, который накладыватеся на open source «дерево исходников»

И что, это не поможет найти фрагмент проверки на симлинк в бинарнике?

Идем в исходники: https://www.virtualbox.org/browser/vbox/trunk/src/VBox/HostDrivers/Support/SU...

Видим там:

if (S_ISLNK(pFsObjState->Stat.st_mode))
    return supR3HardenedSetError3(VERR_SUPLIB_SYMLINKS_ARE_NOT_PERMITTED, pErrInfo,
        "Symlinks are not permitted: '", pszPath, "'");

Смотрим в бинарник /VirtualBox, видим там:

.0804A966: 81E100F00000                   and          ecx,00000F000 ;'  Ё '
.0804A96C: 81F900400000                   cmp          ecx,000004000 ;'  @ '
.0804A972: 743D                           jz          .00804A9B1 --↓3
.0804A974: 81F900800000                   cmp          ecx,000008000 ;'  А '
.0804A97A: 7435                           jz          .00804A9B1 --↓3

; if (S_ISLNK(pFsObjState->Stat.st_mode))
.0804A97C: 81F900A00000                   cmp          ecx,00000A000 ;'  а '
.0804A982: 0F8488000000                   jz          .00804AA10 --↓4

Достатошно?