【发布时间】:2019-04-11 21:37:36
【问题描述】:
我需要访问 PeNet API 中的 these 字段。但是返回的值是uint16,我实际上不知道该怎么做。有谁知道我将如何访问这些字段?
我曾尝试访问这些字段,但是所提供的结构没有(对我而言)显而易见的方法来访问它们。我还尝试逐位打印出uint16,但这也没有提供任何特别明显的东西(有8个字段要访问,所以我认为它可能是前8个或最后8个,但没有成功)。
任何帮助将不胜感激,因为我不知道下一步该往哪里看:(
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var peHeader1 = new PeNet.PeFile(@"C:\Windows\System32\kernel32.dll");
Console.WriteLine(peHeader1.ImageNtHeaders.OptionalHeader.DllCharacteristics.GetType());
Console.WriteLine(peHeader1.ImageNtHeaders.OptionalHeader.DllCharacteristics);
byte[] bytes = BitConverter.GetBytes(peHeader1.ImageNtHeaders.OptionalHeader.DllCharacteristics);
int bitPos = 0;
while (bitPos < 8 * bytes.Length)
{
int byteIndex = bitPos / 8;
int offset = bitPos % 8;
bool isSet = (bytes[byteIndex] & (1 << offset)) != 0;
Console.WriteLine(isSet);
bitPos++;
}
Console.ReadKey();
}
}
}
【问题讨论】: