Работает - это далеко не показатель, особенно в ядерных делах.pavelyakov wrote:Автор ни хера не смыслит в программировании просто. - ну ок тебе виднее. Странно, только почему-то работает все..
@KERNEL
-
to infinity and beyond
Вот-вот.punk_joker wrote:Работает - это далеко не показатель, особенно в ядерных делах.pavelyakov wrote:Автор ни хера не смыслит в программировании просто. - ну ок тебе виднее. Странно, только почему-то работает все..
Правильнее сказать "выполняется какой-то код и по счастливой случайности вроде бы ничего не падает: ни приложение, ни ядро" — по факту же как раз таки НЕ работает.
pavelyakov, ты почему-то не хочешь читать, что тебе пишут.
Может быть тебе кое-что поможет понять. Возьмём твой же "вроде бы" работающий пример:
Code: Select all
beginWindow:
dword callback = 0;
void window(){
callback = EAX; // указатель на функцию окна в ядре
EBX+=100; // сдвинуть координату X всех окон на 100 пикселей.
callback(); // вызов функции
}
endWindow:
void main(){
EAX = 81;
EBX = 0; // номер переопределяемой функции
ECX = #window; // указатель на стартовый адрес функции
EDX = #beginWindow; // начальный адрес загрузки скомпилированной функции в память ядра
ESI = #endWindow; // конечный адрес
$int 0x40
}
Code: Select all
dword callback = 0;
Может быть тебе всё-таки не копировать нужно, а выделить память?
Так, а теперь подумай, как ты будешь к ней адресоваться?
Ты ведь заранее не знаешь, что вернёт тебе
Code: Select all
stdcall kernel_alloc, esi
mov dword [tempPointerAlloc], eax
Получается, что будет происходить запись не понятно куда и чтение не понятно откуда. Вполне вероятно, что из-за этого могут затереться какие-то данные или код в ядре, а это может привести к чему-то нехорошему(порче пользовательских данных, например, или ещё хуже оборудования).
Если было бы всё так просто, то и не выдумывали бы ни какие релокации, а они нужны.
Вот, к примеру, процедура fix_coff_relocs http://websvn.kolibrios.org/filedetails ... c#line-786
Как думаешь, для чего она? Или по твоему она лишняя
Who is online
Users browsing this forum: No registered users and 4 guests