В Visual Basi c для приложений (VBA) вы можете установить атрибуты модуля или переменной, используя ключевое слово Attribute. Например,
' Header
Attribute VB_Name = "ClassOrModuleName"
Attribute VB_GlobalNameSpace = False ' ignored
Attribute VB_Creatable = False ' ignored
Attribute VB_PredeclaredId = False ' a Value of True creates a default global instance
Attribute VB_Exposed = True ' Controls how the class can be instanced.
'Module Scoped Variables
Attribute variableName.VB_VarUserMemId = 0 ' Zero indicates that this is the default member of the class.
Attribute variableName.VB_VarDescription = "some string" ' Adds the text to the Object Browser information for this variable.
'Procedures
Attribute procName.VB_Description = "some string" ' Adds the text to the Object Browser information for the procedure.
Attribute procName.VB_UserMemId = someInteger
' 0: Makes the function the default member of the class.
' -4: Specifies that the function returns an Enumerator.
Более подробная информация о них: https://christopherjmcclellan.wordpress.com/2015/04/21/vb-attributes-what-are-they-and-why-should-we-use-them/
Я думал, есть ли способ получить / прочитать эти атрибуты внутри кода? Например, что-то вроде
Sub BarMacroName()
'
' BarMacroName Macro
' Bar Macro Description
'
Dim var
MsgBox VB_Description 'display this module's description
MsgBox VB_Name 'display this module's description
End Sub
Не только описание и имя, но вообще, можем ли мы на самом деле прочитать атрибуты внутри самого кода?
Редактировать: я специально ищу посмотрим, сможете ли вы извлечь значение атрибута в самом скрипте VBA. Я исследую уязвимости вредоносных программ, и мне было любопытно, может ли кто-нибудь внедрить вредоносный код, скажем, в описание модуля VBA.