Projects STRLCPY LIEF Commits d345ac73
🤬
  • ■ ■ ■ ■ ■ ■
    src/PE/Binary.cpp
    skipped 1173 lines
    1174 1174   if (cert_dir.RVA() > 0 and cert_dir.size() > 0 and cert_dir.RVA() >= this->overlay_offset_) {
    1175 1175   const uint64_t start_cert_offset = cert_dir.RVA() - this->overlay_offset_;
    1176 1176   const uint64_t end_cert_offset = start_cert_offset + cert_dir.size();
    1177  - LIEF_DEBUG("Add [0x{:x}, 0x{:x}]", this->overlay_offset_, this->overlay_offset_ + start_cert_offset);
    1178  - LIEF_DEBUG("Add [0x{:x}, 0x{:x}]",
    1179  - this->overlay_offset_ + end_cert_offset,
    1180  - this->overlay_offset_ + this->overlay_.size() - end_cert_offset);
    1181  - ios
    1182  - .write(this->overlay_.data(), start_cert_offset)
    1183  - .write(this->overlay_.data() + end_cert_offset, this->overlay_.size() - end_cert_offset);
     1177 + if (end_cert_offset <= this->overlay_.size()) {
     1178 + LIEF_DEBUG("Add [0x{:x}, 0x{:x}]", this->overlay_offset_, this->overlay_offset_ + start_cert_offset);
     1179 + LIEF_DEBUG("Add [0x{:x}, 0x{:x}]",
     1180 + this->overlay_offset_ + end_cert_offset,
     1181 + this->overlay_offset_ + this->overlay_.size() - end_cert_offset);
     1182 + ios
     1183 + .write(this->overlay_.data(), start_cert_offset)
     1184 + .write(this->overlay_.data() + end_cert_offset, this->overlay_.size() - end_cert_offset);
     1185 + } else {
     1186 + ios.write(this->overlay());
     1187 + }
    1184 1188   } else {
    1185 1189   ios.write(this->overlay());
    1186 1190   }
    skipped 532 lines
Please wait...
Page is in error, reload to recover