Показать сообщение отдельно

  #8  
Старый 01.04.2009, 11:46
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

А вообще самый быстрый способ - это юзая PEB, найти полные пути до имен загруженных библиотек. Первые либы - это ntdll и kernel32, а они всегда находятся в папке с виндой. И вот просто взять первую букву этого пути, вот и получится буква системного диска. Пример:
Код:
function SysDisk:char;assembler;
asm
 mov eax,FS:[30h] // PEB
 mov eax,[eax+12] //  PPEB_LDR_DATA
 mov eax,[eax+28] // LIST_ENTRY
 mov eax,[eax] // LDR_DATA_TABLE_ENTRY
 mov eax,[eax+24] // FULL_NAME
 mov al,[eax]
end;
 
Ответить с цитированием