The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Проект MOOL развивает средства разработки драйверов ядра Lin..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Проект BOSSMOOL развивает средства разработки драйверов ядра..." +/
Сообщение от Аноним (-), 04-Окт-14, 20:50 
>> возможность разработки модулей ядра на любых языках

Зачем это нужно? Чем голый С для этого плох?!?!? До он для этого _идеален_!

> Ну и как в каком-нибудь бидоне будет выглядеть присвоение адресу 0x100500 значения 0xDEADBEEF?
> Допустим это memory mapped регистр что-то делающий с вон той железкой. Ну на си - народ прямо так и напишет.

Не надо забивать шурупы и закручивать гвозди!

Но если таки надо:
Writing to arbitrary memory areas is an easy way to cause segmentation
violations which Python and its extensions try to make segmentation
violations (memory violations) as near impossible as they can.

If you really need to do this then you can use ctypes to do it.

Let N be the number of bytes you want to access, then

import ctypes
g = (ctypes.c_char*N).from_address(addr)

g is now a settable sequence of bytes that you can read and write to
using strings.

g[0]  # read the first byte
g[1]  # read the second byte

g[0] = '\x24' # set the first byte to hexadecimal 24

etc...

If you don't have permission to write to addr then you will get memory
violations and your program will crash if you try to read from or write
to the resulting sequence.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Проект MOOL развивает средства разработки драйверов ядра Lin..., opennews, 04-Окт-14, 00:33  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру