
Constant Helper 1.2

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

Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Nullik
(20.04.2025 в 10:42):
Спасибо)

ManHunter
(09.02.2025 в 12:25):
Будет, но не в этой статье. Здесь оно смотрится лучше: https://www.manhunter.ru/softw...typelib.html

Евгений
(09.02.2025 в 05:46):
https://www.japheth.de/COMView.html
Возможно будет полезно
Возможно будет полезно

ManHunter
(23.01.2025 в 13:54):
База тщательно оптимизирована, практически все составные и формульные константы развернуты и приведены к финальному числовому виду, сами числа также приведены к единому стандарту написания в зависимости от их значения. Вычищен мусор, добавлено большое количество новых констант. Архив обновлен.
В принципе, если подчистить базу от не числовых значений и не распознанных составных констант, то файл можно использовать в качестве инклуда для FASM.
В принципе, если подчистить базу от не числовых значений и не распознанных составных констант, то файл можно использовать в качестве инклуда для FASM.

ManHunter
(05.01.2025 в 20:13):
Сергей, спасибо, добавил. Еще пропарсил все возможные TypeLib'ы из System32, база заметно пополнилась. Архив обновлен.

Сергей
(05.01.2025 в 16:49):
Помню мне были нужны константы библиотеки CURL.
В официальной документации я их численных значений не нашёл.
Проще всего их было вытащить из PHP.
https://zenden2k.github.io/ima...onstants.txt
В официальной документации я их численных значений не нашёл.
Проще всего их было вытащить из PHP.
https://zenden2k.github.io/ima...onstants.txt

ManHunter
(21.11.2024 в 20:57):
Добавил пачку констант PCRE\PCRE2. Архив обновлен.

ManHunter
(10.05.2024 в 12:49):
Пока не планируется. Я обработал все известные и доступные мне источники. Если есть еще какие-то - ссылки в студию.

newJS
(10.05.2024 в 09:28):
Обновление базы будет?
Уже столкнулся с отсутствием констант.
К сожалению не сохранил.
Уже столкнулся с отсутствием констант.
К сожалению не сохранил.

Искатель
(16.11.2023 в 22:40):
Благодарочка!
Кстати, увидел тут интересный проект: http://fasmlib.x86asm.net
Возможно, будет желение сделать о нём заметку.
Кстати, увидел тут интересный проект: 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):
Есть tinf от уже обсуждавшегося Joergen Ibsen. По его заявлению, 2кб кода в бинарнике. Можно даже попытаться собрать её в .o, велеть fasm'у "format COFF" и слинковать воедино.

ManHunter
(14.05.2022 в 13:56):
Схоронил. Еще соточка констант добавилась, спасибо.

Петренко
(14.05.2022 в 11:45):
В копилочку ;)
https://www.acc.umu.se/~bosse/...dkundoc.html
https://www.acc.umu.se/~bosse/...dkundoc.html

Петренко
(10.05.2022 в 15:11):
О, теперь всё понятно! Благодарю за ответ! :)
Вот уж не думал, что в природе не существует компактного распаковщика для deflate... :(
Вот уж не думал, что в природе не существует компактного распаковщика для 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, а тут готовый словарь-переводчик с майкрософтовского на человеческий)))
Кстати, а за программу отдельная и пребольшущая благодарность! Помню времена, когда приходилось лопатить сеть в поисках "перевода" какого-нибудь DOWNLOAD_100_GIGABYTES_TO_FIND_OUT_WHAT_DOES_IT_MEAN, а тут готовый словарь-переводчик с майкрософтовского на человеческий)))

ManHunter
(10.05.2022 в 12:25):
Экономия места на диске. И вопрос тут не в том, что сильнее сожмет, а в том, что программа сможет распаковать своими силами. Aplib для этого больше всего подходит.

Петренко
(10.05.2022 в 12:15):
Я так и не понял, в чём фишка этой "апультры"... Скачал последнюю версию (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.
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", а то некоторые антивирусы на энигму очень злятся.
Если базу заменять или редактировать не планируется, то вполне себе решение.
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
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 мегабайта уже критично, то пора менять флешку.
>> человек пишет, что на флешку не помещается
Имхо, если 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
--Добалено--
Правда, одно другого не отменяет.
А то приходилось подключать заголовочные файлы и транслировать
что-то типа такого:
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,
Слишком древний. Плюс типы данных иногда плохо указаны. Не поймешь, что надо пихать - значение, указатель, двойной указатель?
Ну и, как уже упоминалось, соглашение о вызовах - ccall хоть и редко, но бывает.
Слишком древний. Плюс типы данных иногда плохо указаны. Не поймешь, что надо пихать - значение, указатель, двойной указатель?
Ну и, как уже упоминалось, соглашение о вызовах - 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 . И для Иды был плагин для парсинга данных с этого сайта.
Кстати, если не видел: 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 упарится при каждой сборке это парсить.
Небольшая заметка для других пользователей: если оторвать первую строчку файла данных, то останется FASM'овский инклюд. Но лучше так не делать, ибо FASM упарится при каждой сборке это парсить.

Petya
(05.11.2020 в 13:50):
Дык не везде есть, не всегда удобно etc.

ManHunter
(05.11.2020 в 13:49):
Punto Switcher же

Petya
(05.11.2020 в 13:47):
Запрашиваю возможность - перевод русских букв, кои в названиях констант не встречаются, в соответствующие по клаве английские. Схему можно из Исаева украсть.

Добавить комментарий
Заполните форму для добавления комментария
