Run with OpenDialog
-
RunOD более функционален, может пусть он будет в дистре?Из хаоса в космос
Pathoswithin, а что это ещё за http://websvn.kolibrios.org/filedetails ... 5#line-579
Мог бы и в example.asm посмотреть, если не знаешь http://websvn.kolibrios.org/filedetails ... 4#line-142
Code: Select all
data_:
Мог бы и в example.asm посмотреть, если не знаешь
Code: Select all
; I_END - End of compiled image
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.
А по факту не понятно, зачем этот параметр вообще нужен - он не используется.
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.
А по факту не понятно, зачем этот параметр вообще нужен - он не используется.
>> wiki
>> актуальная информация
ну-ну
>> актуальная информация
ну-ну
А зачем же ты тогда его изменил-тозачем этот параметр вообще нужен - он не используется
Используется. Когда я неверно его (или м.б. соседний в заголовке) выставил - КОС отказалась запускать прогу с диагнозом "not an executable"Pathoswithin wrote: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.
А по факту не понятно, зачем этот параметр вообще нужен - он не используется.
А вообще, теоретически нужно разделять код и данные для защиты кода от несанкционированного изменения.
Если я правильно подозреваю, в коде OD ошибка - program.end должно указывать как минимум за концом статических данных, т.е что грузить из файла в память ?!
Ну вот оно у меня так и было. Пока кое-то не решил, что он самый "умный"Siemargl wrote: в коде OD ошибка - program.end должно указывать как минимум за концом статических данных, т.е что грузить из файла в память ?!
Факт: программа работает. Посмотрел в kernel/core/taskman.inc - не используется.
Ну работать она может и по ошибке)Pathoswithin wrote:Факт: программа работает. Посмотрел в kernel/core/taskman.inc - не используется.
Если смотрел загрузчик, можешь пояснить, почему 1 и не 2. Т.е как именно проверяется заголовок и что грузится в память.
Мне это нужно на предмет в перспективе подлинкованных к программам ресурсов.
1>Когда я неверно его (или м.б. соседний в заголовке) выставил - КОС отказалась запускать прогу с диагнозом "not an executable"
2>Если я правильно подозреваю, в коде OD ошибка - program.end должно указывать как минимум за концом статических данных, т.е что грузить из файла в память ?!
0CodErr
Программа работает и это главное.
Знаешь как сделать более правильно - правь код.
Программа работает и это главное.
Знаешь как сделать более правильно - правь код.
Siemargl
Сейчас вместо этого параметра просто размер самого файла, потому я и не понял его значения. А вот если следующий параметр (количество памяти) будет меньше размера файла, тогда ошибка.
Сейчас вместо этого параметра просто размер самого файла, потому я и не понял его значения. А вот если следующий параметр (количество памяти) будет меньше размера файла, тогда ошибка.
Не используется. Там есть проверка от diamond'а 10-летней давностиSiemargl wrote:Используется. Когда я неверно его (или м.б. соседний в заголовке) выставил - КОС отказалась запускать прогу с диагнозом "not an executable"
Code: Select all
; \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]
Ядерный PE-загрузчик честно устанавливает права доступа к памяти по атрибутам секций. Отключаемо, естественно, - fasm по умолчанию создаёт одну секцию readable+writable+executable, с которой можно делать что угодно.Siemargl wrote:А вообще, теоретически нужно разделять код и данные для защиты кода от несанкционированного изменения.
Сделаем мир лучше!
Who is online
Users browsing this forum: No registered users and 1 guest