• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Metadata Unmanaged Api

  • Автор темы poisent
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

poisent

возникла проблема с определение типа поля:
Выбираем класс из сборки, находим поля класса.
Метод
HRESULT GetFieldProps (
mdFieldDef mb,
mdTypeDef *pClass,
LPWSTR szField,
ULONG cchField,
ULONG *pchField,
DWORD *pdwAttr,
PCCOR_SIGNATURE *ppvSigBlob,
ULONG *pcbSigBlob,
DWORD *pdwCPlusTypeFlag, - необходимое значение.
UVCP_CONSTANT *ppValue,
ULONG *pcchValue
);
Возвращает всю информацию о поле, кроме *pdwCPlusTypeFlag.
По какимто причинам *pdwCPlusTypeFlag всегда возвращает = 1 . т.е => невозможно определить тип поля;
Кто-нибудь знает с чем это связано, и как это исправить?
 
P

poisent

Для: sax_ol
Определяем
class MyClass1
{
public char x;
}
char = ELEMENT_TYPE_CHAR ,
Но pdwCPlusTypeFlag всеравно будет равен 1, независимо от того, x - char,int,bool.
Вот в чем проблема
 
P

poisent

Для: sax_ol
class MyClass1
{
public char x='A';
}
char = ELEMENT_TYPE_CHAR ,
Но pdwCPlusTypeFlag всеравно будет равен 1, независимо от того, x - char,int,bool
так пойдёт?
А если нет, тогда что значит default value?
 
P

poisent

Для: sax_ol
Тогда можешь подсказать, как мне получить тип поля?
 
P

poisent

Для: sax_ol
Ок, посмотрю, но пока не понял как его извлечь =(
 
P

poisent

Для: sax_ol
Вопрос решил, действительно в стуктуре PCCOR_SIGNATURE в определённом байте хранится информация о типе объекта, но это было ппц =). Долго искал.
Что делаю? В C# есть такая способность как Reflection, с помощью отражения можно много чего делать, а мне надо было сделать прогу которая открывает сборку, и вытаскивает из неё все Классы, Интерфейсы, поля, методы, свойства. С C# проблем нету, там все легко.
А человеку понадобилась таже программа ,но написаная на UnManaged коде и C++, при помощи Metadata Unmanaged API .
Интересная задачка была, спс за подсказку +)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!