INNER CODE UNIT · C++

length

trailofbits/uthenticode · src/uthenticode.cpp:455

    std::uint32_t length = *reinterpret_cast<std::uint32_t *>(current_wincert + offset);
    offset += sizeof(length);

    std::uint16_t revision = *reinterpret_cast<std::uint16_t *>(current_wincert + offset);
    offset += sizeof(revision);

    std::uint16_t type = *reinterpret_cast<std::uint16_t *>(current_wincert + offset);
    offset += sizeof(type);

    // Continue only we can satisfy the length
    if (current_wincert + length <= past_secdir && length > offset) {
      std::vector<std::uint8_t> cert_data(current_wincert + offset, current_wincert + length);

      certs.emplace_back(static_cast<certificate_revision>(revision),
                         static_cast<certificate_type>(type),
                         cert_data);
    }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…