Blog. Just Blog

Constant Helper 1.2

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Мои программы | Автор: ManHunter
Скриншот программы Constant Helper
Скриншот программы Constant Helper

Еще одна небольшая программа-помощник для программистов. Показывает значения различных констант из заголовочных файлов Windows. Просто введите название константы и, если она есть в базе программы (более 220.000 значений), вы мгновенно получите ее значение. Как обычно написана для личных нужд, потому что мне реально надоело шерстить интернет на предмет различных значений, которые не описаны в базовых инклудах FASM. Если пригодится кому-нибудь еще, то я буду только рад. Данные спарсены из JEDI API Library, MASM32 SDK, Windows SDK, различных заголовочных файлов и других источников. Файл базы данных представляет собой обычный ini-файл, так что можете добавлять туда любые нужные вам значения или вообще заменить его на свой собственный.

Constant Helper 1.2Constant Helper 1.2

Constant.Helper.1.2-PCL.zip (1,834,149 bytes)


Поделиться ссылкой ВКонтакте
Просмотров: 2424 | Комментариев: 63

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
Искатель (16.11.2023 в 22:40):
Благодарочка!

Кстати, увидел тут интересный проект: http://fasmlib.x86asm.net

Возможно, будет желение сделать о нём заметку.
ManHunter (15.11.2023 в 00:21):
Добавил. Архив обновлен.
Искатель (14.11.2023 в 21:55):
Супер :)
ManHunter (14.11.2023 в 21:47):
Искатель, да я понял. Добавлю, спасибо
Искатель (14.11.2023 в 21:46):
Если что, то я не просто так написал, а после того, как не смог найти нужных мне IOCTL и нашёл их вот здесь: https://github.com/tpn/winsdk-...d/ntddvdeo.h
Искатель (13.11.2023 в 19:50):
Ещё в копилочку: https://github.com/tpn/winsdk-...ster/Include
ManHunter (09.05.2023 в 23:17):
Поправил обработчик критических ошибок. Архив обновлен.
ManHunter (31.01.2023 в 00:49):
Версия 1.2. Добавлен поиск по документации ReactOS, добавлено большое количество констант, мелкие изменения и улучшения.
ManHunter (21.10.2022 в 13:21):
Цитатаимелось в виду создать подраздел для хелперов.:)

Херней заниматься. Нет и не будет.
dElk (21.10.2022 в 13:19):
Hotkey Helper 1.3, GUID Helper 1.4, UnWrapper Helper 1.1 Понятно, что они все в разделе "Мои программы", имелось в виду создать подраздел для хелперов.:)
ManHunter (21.10.2022 в 12:21):
Хотя бы один пример "разбросанных" "хелперов" - в студию.
dElk (21.10.2022 в 12:10):
Очень нужная вещь. Спасибо за работу. По сайту много "хэлперов" разбросано по разным разделам. Если бы их всех в один раздел собрать, было-бы прекрасно.
Petya (15.06.2022 в 12:11):
Цитатав природе не существует компактного распаковщика для deflate

Есть tinf от уже обсуждавшегося Joergen Ibsen. По его заявлению, 2кб кода в бинарнике. Можно даже попытаться собрать её в .o, велеть fasm'у "format COFF" и слинковать воедино.
ManHunter (14.05.2022 в 13:56):
Схоронил. Еще соточка констант добавилась, спасибо.
Петренко (14.05.2022 в 11:45):
Петренко (10.05.2022 в 15:11):
О, теперь всё понятно! Благодарю за ответ! :)

Вот уж не думал, что в природе не существует компактного распаковщика для deflate... :(
ManHunter (10.05.2022 в 13:59):
Ок, еще раз. Для распаковки всех этих г-зипов требуется таскать сотни килобайт всяких сторонних dll. Для aplib код распаковки укладывается в несколько десятков байт Ассемблера.
Петренко (10.05.2022 в 13:56):
Ну, это понятно) Я просто не понял, чем обусловлен выбор именно Aplib. Чем оно лучше обычного Deflate/Gzip/Zlib, который, как оказалось, жмёт лучше, быстрее и качественнее? К тому же, его можно в любой момент извлечь любым архиватором, изменить и упаковать заново. Я просто не понял, в чём фишка...

Кстати, а за программу отдельная и пребольшущая благодарность! Помню времена, когда приходилось лопатить сеть в поисках "перевода" какого-нибудь DOWNLOAD_100_GIGABYTES_TO_FIND_OUT_WHAT_DOES_IT_MEAN, а тут готовый словарь-переводчик с майкрософтовского на человеческий)))
ManHunter (10.05.2022 в 12:25):
Экономия места на диске. И вопрос тут не в том, что сильнее сожмет, а в том, что программа сможет распаковать своими силами. Aplib для этого больше всего подходит.
Петренко (10.05.2022 в 12:15):
Цитатапоявилась возможность работать с упакованной базой, для этого утилита упаковки-распаковки и bat-файлы: https://www.upload.ee/files/12...3.6.zip.html

Я так и не понял, в чём фишка этой "апультры"... Скачал последнюю версию (1.4.6), сжал ей базу, получилось 1,16 МБ. При этом сжатие происходило ощутимо небыстро, а памяти кушало целых 646 МБ. Потом пожал базу в GZip при помощи 7-Zip и получилось 1,10 МБ, причём раз в 10 быстрее, а потребление памяти составило 10 МБ. Может, я чего-то не понял?
morgot (21.10.2021 в 15:59):
ManHunter, спасибо. Они полезны , например вот для RtlAdjustPrivilege - как раз тот редкий случай, когда код натив апи короче винапи.
ManHunter (20.10.2021 в 23:41):
Мне текстовые константы не нужны, а числовые с радостью добавлю, не проблема. Архив обновлен.
morgot (20.10.2021 в 21:58):
ManHunter, если не секрет, почему не нужны константы привилегий? Я вот себе (локально) добавил список , т.к. иной раз надо (масм не умеет в текстовые, лучше число) , и надо искать по всему инету. https://gist.github.com/zer0ca...5c2fcc2e7e8b
ManHunter (05.09.2021 в 13:24):
Плюс несколько тысяч свежих констант из https://www.vergiliusproject.com , архив обновлен.
ManHunter (26.04.2021 в 16:14):
Небольшая доработка. При зажатой клавише Shift клик на кнопке [Copy] копирует не значение константы, а конструкцию вида "CONST = value". Архив обновлен.
ManHunter (09.04.2021 в 17:59):
Напарсил еще тыщонку констант из разных источников, архив обновлен.
ManHunter (14.02.2021 в 11:21):
А чего сразу не в тиктоке с инстаграммом? Зашквариваться, так уж по полной.
Sergey (14.02.2021 в 10:43):
С такой активностью пора реализовать канал на ютубе!!!
Успехов!!!
ManHunter (12.02.2021 в 18:53):
Версия 1.1. Добавлен фильтр-поиск (кнопка или Enter, от 3-х символов), добавлен поиск на MSDN, сохраняется позиция окна и последняя константа, окно сделано "магнитным". Данные в программу можно передавать перетаскиванием строки в окно, через командную строку, вставкой из буфера обмена (клик на "Name", клик колесом на поле ввода). При вводе учитывается локаль, кириллица автоматом подменяется на латинницу. База данных увеличена на ~10к констант, появилась возможность работать с упакованной базой, для этого утилита упаковки-распаковки и bat-файлы: https://www.upload.ee/files/12...3.6.zip.html
Множество различных "подкапотных" доработок и улучшений.
ManHunter (03.12.2020 в 14:29):
Саша, запомни: наркотики - это плохо!
Sasha (03.12.2020 в 14:07):
Если не секрет, в программе использовали конечный автомат? И если использовали то с таблицей переходов ?
ManHunter (30.11.2020 в 17:11):
Текстовые константы мне тут нафиг не уперлись.
Petya (30.11.2020 в 17:09):
1. Не, это не труЪ. И сжатие хуже, и вирусы ругаются, и непополняемо...
2. Кажется, потеряны константы семейства SE_DEBUG_NAME и SeDebugPrivilege.
ManHunter (21.11.2020 в 21:51):
Petya, Fred, еще один вариант с компрессией. Упаковал с помощью Enigma Virtual Box вместе с базой в единый exe: https://www.sendspace.com/file/uegrcd
password "123", а то некоторые антивирусы на энигму очень злятся.
Если базу заменять или редактировать не планируется, то вполне себе решение.
Fred (16.11.2020 в 22:43):
Seems suitable.
Petya (16.11.2020 в 19:01):
ManHunter, user, Павел, Наколдовал чего-то. См. ниже.
Fred, See this.
https://www.upload.ee/files/12...ini.zip.html
ManHunter (13.11.2020 в 20:44):
Павел, так я и посоветовал увеличить свой... диск :)
Павел (13.11.2020 в 20:11):
ManHunter
>> человек пишет, что на флешку не помещается
Имхо, если 4 мегабайта уже критично, то пора менять флешку.
user (13.11.2020 в 10:51):
Достоинство подобных инструментов именно в читаемой и дополняемой базе данных.

Всякое "волшебство" в этом случае неуместно.
ManHunter (13.11.2020 в 08:00):
user, ну видел же, человек пишет, что на флешку не помещается. А завтра в релиз отправится очередной хелпер, там базы получились тоже на 3 с лишним мегабайта.
user (13.11.2020 в 00:49):
Что за пагубные идеи с "компрессией"?
Это начлена такое надо?
Fred (11.11.2020 в 17:45):
I'm using flash drive with other stuff.
ManHunter (11.11.2020 в 17:41):
Fred, enlarge your... HDD ;)
Fred (11.11.2020 в 17:33):
What about datafile compression (maybe zlib)?
ManHunter (10.11.2020 в 16:59):
Наковырял еще немного констант из ненумерованных enum'ов, архив обновлен.
user (09.11.2020 в 11:43):
Там могут быть многоуровневые вычисления, интересует же окончательное число.
ManHunter (09.11.2020 в 11:28):
Как-то сурово. Если есть заголовочный файл, можно же найти нужное значение просто поиском по тексту, строка типа "#define ABCDE 0x12"
user (09.11.2020 в 03:25):
Полезная вещь.
А то приходилось подключать заголовочные файлы и транслировать
что-то типа такого:
db 0dh,0ah, 'WS_EXCEPTION_CODE_USAGE_FAILURE='
dd           WS_EXCEPTION_CODE_USAGE_FAILURE

и дальше Hiew

--Добалено--

Правда, одно другого не отменяет.
ManHunter (08.11.2020 в 20:28):
Тоже где-то на винте валяется en_msdn_library_2007_04_dvd_x13-63638.iso
morgot (08.11.2020 в 00:53):
Есть оффлайновая MSDN Library , у меня стоит для 2008 студии, 3.2 гига, присутствует поиск (не гугл, но сойдёт). Актуальность - Vista (семерки тогда еще не было), но для большинства вещей хватает. Потом, вроде как , перестали издавать в таком формате (или я не видел).
ManHunter (07.11.2020 в 17:31):
Ок, сокращу до фразы "Для функций есть MSDN".
username (07.11.2020 в 17:28):
ManHunter,
Цитата"Microsoft Win32 Programmer's Reference"

Слишком древний. Плюс типы данных иногда плохо указаны. Не поймешь, что надо пихать - значение, указатель, двойной указатель?
Ну и, как уже упоминалось, соглашение о вызовах - ccall хоть и редко, но бывает.
ManHunter (07.11.2020 в 16:37):
Для функций есть MSDN или для оффлайна "Microsoft Win32 Programmer's Reference" по базовому набору. Одного описания параметров функции мало, надо обязательно читать все полностью, как и что должно быть. А вот с гуидами и константами даже в MSDN напряженка.
username (07.11.2020 в 15:38):
А по функциям - типы аргументов и соглашение о вызовах?
ManHunter (06.11.2020 в 22:08):
По GUID'ам аналогичный инструмент будет чуть позже. Пока отладка, обкатка, добавление новых фич.
ManHunter (06.11.2020 в 20:53):
Базу видел, частенько выручала. Но каждый раз на сайт лазить лениво, особенно при заполнении каких-нибудь списков, потому и решил сделать собственный оффлайновый вариант.
morgot (06.11.2020 в 20:34):
Спасибо, полезная вещь.
Кстати, если не видел: https://www.magnumdb.com . И для Иды был плагин для парсинга данных с этого сайта.
Petya (05.11.2020 в 14:37):
Ндя, есть такое. Поспешил.
ManHunter (05.11.2020 в 14:25):
Инклуд не останется, я уже пробовал, хотя это действительно кажется очевидным решением. Много служебных слов, много непонятных FASMу конструкций, замахаешься чистить.

Добавил кнопку "свернуть"
Petya (05.11.2020 в 14:13):
Также полезной и нужной будет либо кнопка "свернуть", либо галочка "поверх всего".

Небольшая заметка для других пользователей: если оторвать первую строчку файла данных, то останется FASM'овский инклюд. Но лучше так не делать, ибо FASM упарится при каждой сборке это парсить.
Petya (05.11.2020 в 13:50):
Дык не везде есть, не всегда удобно etc.
ManHunter (05.11.2020 в 13:49):
Punto Switcher же
Petya (05.11.2020 в 13:47):
Запрашиваю возможность - перевод русских букв, кои в названиях констант не встречаются, в соответствующие по клаве английские. Схему можно из Исаева украсть.

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.08 сек. / MySQL: 2 (0.0038 сек.) / Память: 4.5 Mb
Наверх