Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
По умолчанию, при штатной установке, этот загрузчик помещается в отдельный скрытый раздел, расположенный в начале HDD, с размером, достаточным для размещения самого bootmgr а так же файлов его конфигурации.
Системы с EFI + GPT изначально требуют наличия такого раздела, имеющего тип 0xef00 и отформатированного в FAT32.
The file system supported by the Extensible Firmware Interface is based on the FAT file system. EFI defines a specific version of FAT that is explicitly documented and testable.
signed int __usercall VhdiVerifyVhdFooter@<eax>(vhd_footer_t *footer@<esi>)
{
signed int retval; // edi@1
uint32_t v2; // edi@2
int v3; // eax@2
int v4; // eax@6
int v5; // eax@10
retval = 0xC03A0003;
if ( RtlCompareMemory(footer, "conectix", 8u) == 8 )
{
v2 = footer->disk_type;
footer->disk_type = 0;
v3 = BlUtlCheckSum(footer, 512);
footer->disk_type = v2;
if ( v3 == v2 )
{
if ( HIWORD(footer->file_format_version) == 1 )
{
v4 = *(_DWORD *)&footer->disk_geometry.heads;
if ( v4 == 2 || v4 == 3 || v4 == 4 )
{
v5 = *(_DWORD *)&footer->creator_host_os[0];
if ( v5 != 'k2iW' && v5 )
{
retval = 0xC00000BB;
}
else if ( footer->current_size & 0x1FF || footer->original_size & 0x1FF )
{
retval = 0xC03A0012;
}
else
{
retval = 0;
}
}
else
{
retval = 0xC03A0004;
}
}
else
{
retval = 0xC03A0005;
}
}
else
{
retval = 0xC03A0002;
}
}
return retval;
}
Изучаем Bootmgr. Часть 1 — инструментарий и основные принципы отладки начальных этапов загрузки ОС Windows