Форум   Статьи   Новости   Файлы   Bugtraq   Сниффер   Друзья   О Клубе
  , 23:18   #1
Постоянный
 
Регистрация: 05.02.2012
Сообщений: 567

Репутация: 54 / 1
По умолчанию Поиск логических дисков на ПК

Подскажите как осуществить поиск логических дисков, а точнее букв разделов жесткого диска. Пример нужно на asm. Но чтобы в Delphi вставить можно было. Заранее спасибо.
 
Пользователь вне форума    
Наши Спонсоры
  , 06:38   #2
Продвинутый
 
Аватар для BlackH
 
Локация: underworld
Регистрация: 05.12.2011
Сообщений: 1,609

Репутация: 167 / 3
По умолчанию

GetLogicalDrives(void)

Кусок фасма(переписать,думаю будет не сложно):

Assembler highlight
     
      push    1h                 ; SEM_FAILCRITICALERRORS
      call    [SetErrorMode]     ; установка error mode 
                                 ; что бы в случае обращения к недоступному диску 
                                 ; не вывалилось сообщение
      
      call    [GetLogicalDrives] ; получаем список дисков существующих в системе
      mov     ecx,25             ; проверяем начиная с Z:\

 .find_drives:
      mov     ebx,1                      ; выясняем присутствует  
      shl     ebx,cl                     ; диск в системе
      and     ebx,eax                    ; или нет
      je      .no_disk

      add     cl,65                      ; если да,то добавим
      mov     byte [buf],cl              ; букву диска в буффер
      sub     cl,65

      mov     dword [buf+1],':\'         ; сформируем строку вида БУКВА_ДИСКА:\ 
      mov     byte [buf+4],0             ; например С:\

      push    eax                        ; сохраняем в стеке
      push    ecx                        ; нужные регистры
      
      ... ... ...
      тут что-то делаем
      ... ... ...

      pop     ecx                        ; восстанавливаем 
      pop     eax                        ; регистры

 .no_disk:                               ; Если диска нет то,
      dec     ecx                        ; проверяем следующий
      jge     .find_drives               ; пока ecx>0  

      push    0                          ; Выход 
      call    [ExitProcess]              ; из программы
                       

... ... ...
buf     rb 500h    ; буфер для имени директории.
... ... ...

ммм,какая тут шикарная подсветка асма
__________________
Вангую..

Последний раз редактировалось BlackH; 06.05.2015 в 06:41.
Пользователь вне форума    
 

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как один хакер рулил внешней и внутренней политикой России.. tvorec2141 Оффтоп 12 19.10.2014 15:54
У "Яндекса" появился новый сервис - поиск простых людей CyberComrade Новости и High-Tech 2 23.02.2012 18:38
Сравнение жестких дисков sibrik Фрикинг, железо и электроника 0 20.07.2010 13:24
Секреты google Kvatra Новичкам 7 22.04.2010 11:26
Простая поисковая система Mafan Perl 0 11.11.2009 02:28



Часовой пояс GMT +2
Powered by vBulletin® 3.x.x Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Copyright © 2008 - 2013 «HPC» Реклама на сайте Правила Форума Пользовательское соглашение Работа на сайте
При копировании материалов ставьте ссылку на источник
Все материалы представлены только в ознакомительных целях, администрация за их использование ответственности не несет.