Board.KolibriOS.org
http://board.kolibrios.org/

Run with OpenDialog
http://board.kolibrios.org/viewtopic.php?f=9&t=2122
Страница 2 из 2

Автор:  Leency [ Ср ноя 09, 2016 4:52 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

RunOD более функционален, может пусть он будет в дистре?

Автор:  0CodErr [ Пт ноя 11, 2016 12:23 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

Pathoswithin, а что это ещё за
Код:
data_:
http://websvn.kolibrios.org/filedetails ... 5#line-579
Мог бы и в example.asm посмотреть, если не знаешь
Код:
; I_END     - End of compiled image    
http://websvn.kolibrios.org/filedetails ... 4#line-142

Автор:  Pathoswithin [ Пт ноя 11, 2016 12:39 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

http://wiki.kolibrios.org/wiki/Writing_ ... The_header
This is the total size of the program code in bytes, its easy to use a label which you place at the end of the code.
А по факту не понятно, зачем этот параметр вообще нужен - он не используется.

Автор:  0CodErr [ Пт ноя 11, 2016 12:41 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

>> wiki
>> актуальная информация
ну-ну

Автор:  0CodErr [ Пт ноя 11, 2016 12:42 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

Цитата:
зачем этот параметр вообще нужен - он не используется
А зачем же ты тогда его изменил-то :lol:

Автор:  Siemargl [ Пт ноя 11, 2016 1:02 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

Pathoswithin писал(а):
http://wiki.kolibrios.org/wiki/Writing_applications_for_KolibriOS#The_header
This is the total size of the program code in bytes, its easy to use a label which you place at the end of the code.
А по факту не понятно, зачем этот параметр вообще нужен - он не используется.

Используется. Когда я неверно его (или м.б. соседний в заголовке) выставил - КОС отказалась запускать прогу с диагнозом "not an executable"

А вообще, теоретически нужно разделять код и данные для защиты кода от несанкционированного изменения.

Если я правильно подозреваю, в коде OD ошибка - program.end должно указывать как минимум за концом статических данных, т.е что грузить из файла в память ?!

Автор:  0CodErr [ Пт ноя 11, 2016 1:09 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

Siemargl писал(а):
в коде OD ошибка - program.end должно указывать как минимум за концом статических данных, т.е что грузить из файла в память ?!
Ну вот оно у меня так и было. Пока кое-то не решил, что он самый "умный" :lol:

Автор:  Pathoswithin [ Пт ноя 11, 2016 1:09 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

Факт: программа работает. Посмотрел в kernel/core/taskman.inc - не используется.

Автор:  Siemargl [ Пт ноя 11, 2016 1:20 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

Pathoswithin писал(а):
Факт: программа работает. Посмотрел в kernel/core/taskman.inc - не используется.

Ну работать она может и по ошибке)

Если смотрел загрузчик, можешь пояснить, почему 1 и не 2. Т.е как именно проверяется заголовок и что грузится в память.
Мне это нужно на предмет в перспективе подлинкованных к программам ресурсов.
1>Когда я неверно его (или м.б. соседний в заголовке) выставил - КОС отказалась запускать прогу с диагнозом "not an executable"

2>Если я правильно подозреваю, в коде OD ошибка - program.end должно указывать как минимум за концом статических данных, т.е что грузить из файла в память ?!

Автор:  Leency [ Пт ноя 11, 2016 1:51 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

0CodErr
Программа работает и это главное.
Знаешь как сделать более правильно - правь код.

Автор:  Pathoswithin [ Пт ноя 11, 2016 2:51 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

Siemargl
Сейчас вместо этого параметра просто размер самого файла, потому я и не понял его значения. А вот если следующий параметр (количество памяти) будет меньше размера файла, тогда ошибка.

Автор:  CleverMouse [ Пт ноя 11, 2016 3:40 pm ]
Заголовок сообщения:  Re: Run with OpenDialog

Siemargl писал(а):
Используется. Когда я неверно его (или м.б. соседний в заголовке) выставил - КОС отказалась запускать прогу с диагнозом "not an executable"
Не используется. Там есть проверка от diamond'а 10-летней давности
Код:
; \begin{diamond}[20.08.2006]
; sanity check (functions 19,58 load app_i_end bytes and that must
; fit in allocated memory to prevent kernel faults)
        cmp     edx, [APP_HEADER_01.i_end]
        jb      .fail
; \end{diamond}[20.08.2006]

- в edx в этот момент равен mem_size - но это всё. Видимо, все остальные использования отмерли вместе с функциями 19 и 58.

Siemargl писал(а):
А вообще, теоретически нужно разделять код и данные для защиты кода от несанкционированного изменения.
Ядерный PE-загрузчик честно устанавливает права доступа к памяти по атрибутам секций. Отключаемо, естественно, - fasm по умолчанию создаёт одну секцию readable+writable+executable, с которой можно делать что угодно.

Страница 2 из 2 Часовой пояс: UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/