Глобальная таблица смещения (динамическое связывание)
1 ответ

Каждый ли файл.so имеет PLT/GOT?

Некоторое время я думал об этом, потому что заметил, что даже в действительно фундаментальных библиотеках, таких как libc, есть GOT/PLT, состоящий из важных функций, таких как malloc() и его друзья. Можно ли вообще создать общую библиотеку, в которо…
18 июл '17 в 15:37
1 ответ

Почему батут от PLT до GOT, а не прыгает прямо в GOT?

Я изучаю, как GOT и PLT используются в динамическом соединении. Меня смущает, почему каждый вызов динамически связанной функции, похоже, переходит на позицию в PLT, которая всегда переходит на одну и ту же позицию в GOT. Почему бы просто не перейти …
27 июл '17 в 15:24
2 ответа

GOTPCREL(%rip) в синтаксисе GAS Intel

Как я могу написать следующее: movq variable@GOTPCREL(%rip), %r8 в синтаксисе ГАЗ Intel? .intel_syntax noprefix позволяет только это: mov r8, variable@GOTPCRELне понимает ()и полученный код отличается - я получаю ошибку сегментации. Как я могу указа…
18 окт '18 в 17:11
0 ответов

Повторные попытки в узле JS не работают

Я использую http-сервер, который всегда возвращает 504: const express = require('express') const app = express() app.get('/', (req, res) => { console.log('I AM HERE'); res.status(504).send('Not found!!'); }) app.listen(3000, () => console.log(…
24 дек '17 в 19:05
1 ответ

Как подавить предупреждение "неверное чтение" для GOT в valgrind?

Я использую valgrind memcheck как часть моих модульных тестов. Valgrind выдает "Недопустимое чтение размера 8" для конкретных тестовых представлений и изменяет GOT (глобальную таблицу смещений) процесса. Я хотел бы подавить это предупреждение предпо…
29 янв '19 в 09:11
1 ответ

Как каждый процесс может иметь свою собственную копию глобальных данных в общей библиотеке

Я понимаю, что из-за того, что разделяемые библиотеки не знают, где они будут размещены динамическим загрузчиком, они должны полагаться на GOT для разрешения всех ссылок на глобальные данные. Например, общая библиотека имеет глобальную переменную с …
23 фев '19 в 00:49
1 ответ

Цепные функции

В настоящее время я пытаюсь использовать полученный модуль https://www.npmjs.com/package/got но меня немного смущает формат / порядок функций. Очевидно, что вы можете связать слушателей и функции как таковые got.stream(link) .on('response', resp =&g…
07 май '17 в 03:56
1 ответ

Отказ от необработанных обещаний

Я не могу решить мой необработанный отказ от обещания с этим сценарием. Обещания и асинхронные функции являются новыми для меня. Я должен справиться с отказом, но не знаю, как это работает. Кто-нибудь может мне помочь? const rawRequest = async (url,…
13 авг '17 в 21:09
1 ответ

Почему "символ @GOT" не разрешен в двоичном виде?

Вот пример файла сборки, test.s .global main main: mov __progname@GOT, %eax // failed to compile mov __progname@GOT(%ebx), %eax //succeed to compile Я попытался скомпилировать его с -pie флаг, но не удалось. $ gcc -pie -o test test.s osboxes@osboxes…
2 ответа

Что такое раздел <.got> в ELF?

Насколько я знаю, PLT а также GOT раздел для обработки динамически связанной функции. Если код звонит printf которая является функцией libc, 1. Во-первых, это вызывает PLT получить printf адрес. 2. И напишите этот адрес в GOT раздел. 3. После второг…
28 авг '18 в 15:45
4 ответа

Почему мой массив Promises работает до вызова Promise.all()?

Я пытаюсь создать массив обещаний, а затем разрешить их с помощью Promise.all(). Я использую get, который возвращает обещание. Мой код работает, но я не совсем понимаю, как. Вот: const got = require('got'); const url = 'myUrl'; const params = ['para…
03 дек '17 в 19:25
1 ответ

Найти адрес заглушки PLT

Я работаю на Linux X86_64. У меня есть необходимость определить адрес конкретной записи PLT в файле ELF, учитывая имя динамической функции, которую представляет эта запись. Я могу определить смещение файла от адреса, но мне нужно уметь определить ад…
03 май '17 в 21:54
0 ответов

Почему какой-то сборочный код, созданный компоновщиком, находится на GOT, а не на PLT?

Некоторая библиотечная функция показана ниже, как показано ниже. 0x0804842e &lt;+35&gt;: call 0x80482e0 &lt;printf@plt&gt; Итак, я понял использование @plt на разборке. Однако вчера у меня был какой-то странный фрагмент кода. Ниже является частью li…
25 сен '18 в 06:39
1 ответ

Могу ли я получить имя символа по "ПОЛУЧЕННЫЙ адрес"?

Сейчас я занимаюсь разработкой программы вроде readelf с помощью pyelftools библиотеки. Я хочу напечатать таблицу, как показано ниже. Здесь, Offset поле stderr@GOT адрес. jiwon@jiwon$ readelf -a --wide libstdbuf.so ... Relocation section '.rel.dyn' …
01 окт '18 в 15:25
0 ответов

mognodb получил сигнал 2 (прерывание)

2017-01-18T03:00:01.404+0800 I CONTROL [signalProcessingThread] получил сигнал 2 (Прерывание), завершится после окончания текущего cmd 2017-01-18T03:00:01.404+0800 I FTDC [signalProcessingThread] Завершение работы полный рабочий день сбор диагностич…
30 мар '17 в 08:30
1 ответ

Где используется GOT[0] (глобальная таблица смещений)?

Я знал, что "GOT[1] - это точка структуры Link_map", а "GOT[2] - это точка _dl_runtime_resolver_". но я не могу найти место, где используется GOT[0]. Кто-нибудь знает, где используется GOT[0]?
13 апр '18 в 08:25
3 ответа

Что это за бессмысленная строка, которую мы получаем при запросе двоичных данных, и как мы конвертируем ее в правильный буфер?

При использовании библиотеки для запроса некоторых данных, не относящихся к ASCII/UTF8, мы часто возвращаем строку, полную бессмыслицы. Пример: const got = require("got"); got("http://twemoji.maxcdn.com/16x16/1f525.png") .then(response =&gt; console…
28 фев '17 в 17:56
0 ответов

Позиционно-зависимый тип данных в разделе кода PIC?

У меня есть двоичный файл, зависящий от нескольких общих библиотек, и я хотел бы создать двоичный файл PIC, за исключением одной таблицы только для чтения. Я хочу, чтобы все разделы кода могли иметь доступ к этой таблице, не придерживаясь .GOTPCREL,…
27 дек '18 в 18:18
0 ответов

Java получил нарезанные ОС / системные иконки

Я пытаюсь извлечь значок из определенного файла с помощью значков ОС по умолчанию, я искал и нашел два способа сделать это: public Image getImage(File file) throws FileNotFoundException { sun.awt.shell.ShellFolder sf = sun.awt.shell.ShellFolder.getS…
18 июл '18 в 08:58
2 ответа

Как два процесса могут использовать одну и ту же общую библиотеку?

Я пытался лучше понять, как работают общие библиотеки, но я просто не могу разобраться в двух вещах. 1. Каждый процесс имеет свое собственное пространство виртуальной памяти и таблицу страниц, поэтому, если совместно используемая библиотека загружае…