Быстрый поиск
Введите фрагмент названия статьи для поиска
Skype: No Fucking Advert 1.0
28.11.2013 | Категория: Мои программы | Автор: ManHunter
Скриншот программы Skype: No Fucking Advert
Не знаю как вас, а меня рекламные баннеры просто бесят. И если в браузере можно добавить в фильтр ссылки на них, а в большинстве стационарных программ подкорректировать ресурсы или применить какой-нибудь иной патч, то в Skype так просто от баннеров не избавиться. Поскольку на работе частенько приходится пользоваться Skype, после появления в списке контактов очередного рекламного баннера мое терпение лопнуло. В результате появилась программа Skype: No Fucking Advert, которая удаляет рекламу из списка контактов Skype и предотвращает ее повторное появление.
Читать статью целиком »
Просмотров: 11827 | Комментариев: 42
Добавление пунктов в системное меню окна
05.11.2013 | Категория: Образ мышления: Assembler | Автор: ManHunter
Некоторые программы добавляют свои пункты меню в стандартное системное меню, которое появляется при клике на иконку окна. Как это делается? Очень просто. При инициализации окна или при наступлении каких-либо определенных условий выполняется примерно следующий код:Code (Assembler) : Убрать нумерацию
- ; Получить хэндл системного меню окна
- invoke GetSystemMenu,[hwnddlg],0
- mov ebx,eax
- ; Добавить в меню полосу разделителя
- invoke InsertMenu,ebx,2,MF_BYPOSITION,0,0
- ; Идентификаторы сообщений при выборе пунктов меню
- IDM_MENU1 = 101
- IDM_MENU2 = 102
- ; Добавить свои пункты меню
- invoke InsertMenu,ebx,3,MF_BYCOMMAND,IDM_MENU1,szMenu1
- invoke InsertMenu,ebx,4,MF_BYCOMMAND,IDM_MENU2,szMenu2
- ...
- ...
- szMenu1 db 'About',0
- szMenu2 db 'Exit',0
Читать статью целиком »
Просмотров: 6086 | Комментариев: 5
Как узнать состояние лотка CD-ROM
26.09.2013 | Категория: Образ мышления: Assembler | Автор: ManHunter
В комментариях к моей статье про управление лотком CD-ROM был задан правильный вопрос про то, как узнать состояние лотка CD-ROM, открыт он или закрыт. Обычно все программы, управляющие лотками CD-ROM, хранили эту информацию на основании своих последних действий. То есть, если программа открыла лоток привода, то в своем внутреннем массиве данных она ставит признак "открыто" и наоборот. Причем этот статус вполне мог не соответствовать реальному положению дел, если после этого лоток был закрыт или открыт вручную. Долгое время других способов определения статуса лотка CD-ROM не было. Но программист Александр (Rouse_) Багель в одной из своих разработок предложил хитрый способ определять реальное состояние лотка CD-ROM. Он заключается в том, чтобы отправить команду SCSIOP_MECHANISM_STATUS в запросе IOCTL_SCSI_PASS_THROUGH через функцию DeviceIoControl. Исходный пример был написан на Delphi, мне осталось его только перевести на Ассемблер.Для начала определим все необходимые структуры и константы, которых по умолчанию нет в FASM.
Code (Assembler) : Убрать нумерацию
- SCSI_IOCTL_DATA_IN = 1
- SCSIOP_MECHANISM_STATUS = 0BDh
- IOCTL_SCSI_PASS_THROUGH = 4D004h
- struct SCSI_PASS_THROUGH_DIRECT
- Length dw ?
- ScsiStatus db ?
- PathId db ?
- TargetId db ?
- Lun db ?
- CdbLength db ?
- SenseInfoLength db ?
- DataIn dd ?
- DataTransferLength dd ?
- TimeOutValue dd ?
- DataBuffer dd ?
- SenseInfoOffset dd ?
- Cdb rb 16
- ends
- struct SCSI_PASS_THROUGH_DIRECT_BUFFER
- Header SCSI_PASS_THROUGH_DIRECT
- SenseBuffer rb 20h
- DataBuffer rb 0C0h
- ends
Читать статью целиком »
Просмотров: 5861 | Комментариев: 5
Перехват буфера обмена на Ассемблере
24.08.2013 | Категория: Образ мышления: Assembler | Автор: ManHunter
Перехват буфера обмена на Ассемблере
Сегодня разберем интересную тему - перехват буфера обмена. Применений этому перехвату можно найти много: менеджеры буфера обмена, хранящие последние несколько скопированных текстов; программы, выполняющие заданные действия, если в буфере обмена появилось кодовое слово; кейлоггеры, перехватывающие пароли и тексты пользователя; одно время были популярны трояны, подменяющие в буфере обмена номера электронных кошельков на свои собственные. Область применения любой технологии, как обычно, ограничивается только вашей фантазией. Но это все лирика, пора переходить к программированию.
Читать статью целиком »
Просмотров: 7321 | Комментариев: 5
Extreme Reboot & Shutdown 1.1
06.05.2013 | Категория: Мои программы | Автор: ManHunter
Скриншот программы Extreme Reboot & Shutdown
Комплект небольших программ, предназначенных для принудительного выключения и перезагрузки компьютера, гибернации и перевода системы в спящий режим. Программы extreme_off.exe и force_off.exe схожи по функционалу, разница только в используемых функциях. Мгновенно выключают компьютер без сохранения данных, никаких предупреждений не выдается. Программы extreme_reboot.exe и force_reboot.exe - программный аналог кнопки Reset. Никаких предупреждений не выдается, все процессы завершаются мгновенно и без сохранения данных, компьютер перезагружается. Используйте эти программы осторожно, не стоит злоупотреблять некорректным завершением работы системы! Программы safe_off.exe и safe_reboot.exe корректно завершают работу системы, а затем, соответственно, выключают или перезагружают компьютер. Аналог обычного "Пуск" - "Завершение работы". Программа hibernate.exe переводит систему в режим гибернации, а sleep.exe - в спящий режим. Все эти программы можно запускать из пакетных файлов или из заданий планировщиков.
Читать статью целиком »
Просмотров: 15141 | Комментариев: 28