powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / распределение памяти процесса
5 сообщений из 5, страница 1 из 1
распределение памяти процесса
    #37098479
stdunit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть простенькая программка:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#include <stdio.h>

main()
{
    printf("world\n");
    getchar();
}

Запускаю из 2-х сессий и смотрю карту памяти каждого процесса.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
dv@devel2:~> ps -ef | grep a.out
dv        10391   31051    0   14 : 34  pts/ 0      00 : 00 : 00  ./a.out
dv        10407   29153    0   14 : 35  pts/ 1      00 : 00 : 00  ./a.out
dv        10411   20263    0   14 : 35  pts/ 2      00 : 00 : 00  grep a.out
dv@devel2:~> pmap  10391 
 10391 : a.out
START       SIZE     RSS   DIRTY PERM MAPPING
 00400000       4K      4K      0K r-xp /home/dv/src/a.out
 00500000       4K      4K      4K rw-p /home/dv/src/a.out
2b8c298bf000    108K     92K      0K r-xp /lib64/ld- 2 . 4 .so
2b8c298da000     12K      8K      8K rw-p [anon]
2b8c298e9000      4K      4K      4K rw-p [anon]
2b8c299d9000      8K      8K      8K rw-p /lib64/ld- 2 . 4 .so
2b8c299db000   1180K    184K      0K r-xp /lib64/libc- 2 . 4 .so
2b8c29b02000   1024K      0K      0K ---p /lib64/libc- 2 . 4 .so
2b8c29c02000     12K     12K     12K r--p /lib64/libc- 2 . 4 .so
2b8c29c05000      8K      8K      8K rw-p /lib64/libc- 2 . 4 .so
2b8c29c07000     24K     16K     16K rw-p [anon]
7fff811d6000     84K     12K     12K rw-p [stack]
ffffffffff600000   8192K      0K      0K ---p [vdso]
Total:    10664K    352K     72K

144K writable-private, 10520K readonly-private, and 0K shared
dv@devel2:~> pmap  10407 
 10407 : a.out
START       SIZE     RSS   DIRTY PERM MAPPING
 00400000       4K      4K      0K r-xp /home/dv/src/a.out
 00500000       4K      4K      4K rw-p /home/dv/src/a.out
2ae2b334f000    108K     92K      0K r-xp /lib64/ld- 2 . 4 .so
2ae2b336a000     12K      8K      8K rw-p [anon]
2ae2b3379000      4K      4K      4K rw-p [anon]
2ae2b3469000      8K      8K      8K rw-p /lib64/ld- 2 . 4 .so
2ae2b346b000   1180K    184K      0K r-xp /lib64/libc- 2 . 4 .so
2ae2b3592000   1024K      0K      0K ---p /lib64/libc- 2 . 4 .so
2ae2b3692000     12K     12K     12K r--p /lib64/libc- 2 . 4 .so
2ae2b3695000      8K      8K      8K rw-p /lib64/libc- 2 . 4 .so
2ae2b3697000     24K     16K     16K rw-p [anon]
7ffff7746000     84K     12K     12K rw-p [stack]
ffffffffff600000   8192K      0K      0K ---p [vdso]
Total:    10664K    352K     72K

144K writable-private, 10520K readonly-private, and 0K shared

Не могу понять, почему стартовые адреса разделяемых библиотек у процессов различаются?

И еще одна странная вещь:

Код: plaintext
1.
2ae2b3592000   1024K      0K      0K ---p /lib64/libc- 2 . 4 .so

Что это за сегмент? Нет прав ни на чтение, ни на запись, ни на выполнение. Причем, у всех процессов он занимает один и тот же размер. Что это такое?
...
Рейтинг: 0 / 0
распределение памяти процесса
    #37098821
interesting_too
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stdunit
Не могу понять, почему стартовые адреса разделяемых библиотек у процессов различаются?



ИМХО linux этого вреде не гарантирует.

Закладыватся на это нельзя.

Если есть способ гарантировать адрес загрузки билиотеки,
не подменяя dlopen который искуственно грузит библиотеку по конкретному адресу
мне бы тоже было бы интересно посмотреть на решение.

А подменять стандартный dlopen - костыль.
...
Рейтинг: 0 / 0
распределение памяти процесса
    #37098994
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stdunitНе могу понять, почему стартовые адреса разделяемых библиотек у процессов различаются?Это называется рандомизация адресного пространства процесса, защита, усложняющая поиск адреса функции для взломщика.
...
Рейтинг: 0 / 0
распределение памяти процесса
    #37102026
stdunit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЁшЭто называется рандомизация адресного пространства процесса, защита, усложняющая поиск адреса функции для взломщика.
Точно. Спасибо.:)
...
Рейтинг: 0 / 0
распределение памяти процесса
    #37102313
stdunit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
2ae2b3592000   1024K      0K      0K ---p /lib64/libc- 2 . 4 .so

Что это за сегмент кто-нибудь знает? У некоторых библиотек он есть (libc-2.4.so), у некоторых нет (ld-2.4.so).
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / распределение памяти процесса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]