/
brood
/
html-practice-project
Обзор
Документация
Войти
/
brood
/
html-practice-project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/node_modules/detect-libc/lib/elf.js
39 строк
982 B
1xskaeuo
final version
19 дек 2025, 11:53
19 дек 2025, 11:53
9a7fa8b
Код
Авторство
О чём код?
// Copyright 2017 Lovell Fuller and others. // SPDX-License-Identifier: Apache-2.0 'use strict'; const interpreterPath = (elf) => { if (elf.length < 64) { return null; } if (elf.readUInt32BE(0) !== 0x7F454C46) { // Unexpected magic bytes return null; } if (elf.readUInt8(4) !== 2) { // Not a 64-bit ELF return null; } if (elf.readUInt8(5) !== 1) { // Not little-endian return null; } const offset = elf.readUInt32LE(32); const size = elf.readUInt16LE(54); const count = elf.readUInt16LE(56); for (let i = 0; i < count; i++) { const headerOffset = offset + (i * size); const type = elf.readUInt32LE(headerOffset); if (type === 3) { const fileOffset = elf.readUInt32LE(headerOffset + 8); const fileSize = elf.readUInt32LE(headerOffset + 32); return elf.subarray(fileOffset, fileOffset + fileSize).toString().replace(/\0.*$/g, ''); } } return null; }; module.exports = { interpreterPath };