Board.KolibriOS.org http://board.kolibrios.org/ |
|
Эмуляция KolibriOS API http://board.kolibrios.org/viewtopic.php?f=37&t=3679 |
Page 5 of 5 |
Author: | 0CodErr [ Sat Apr 28, 2018 2:28 pm ] |
Post subject: | Re: Эмуляция KolibriOS API |
Leency wrote: А как прописать путь к /rd/1/ ? Я вот тут писал viewtopic.php?f=37&t=3679&start=30#p70210 и там под спойлером есть скриншот.Или можно попробовать этот командный файл(SetPaths.cmd) Attachment: Kopa wrote: В ReactOS при запуске Колибри программ окно приложения мерцает до момента пока мышью не активизируешь фокус на нём. (также и при разворачивании приложения из трея) Kopa wrote: Приложение Table, при изменении его размера не перерисовывается. Это, скорее всего, баги ReactOS, если в WinXP работает.Kopa wrote: P.S. Мерцание приложения в XP наблюдается, например, Web-demo (из-за скина перекрывающего изображение?) Да, есть такое.
|
Author: | Kopa [ Wed May 02, 2018 8:41 pm ] |
Post subject: | Re: Эмуляция KolibriOS API |
Попробовал собрать последнюю ревизию у себя программы и получил такое сообщение Code: /usr/bin/ld: /tmp/ccotqVjU.o: неопределённая ссылка на символ «dlopen@@GLIBC_2.1» |
Author: | 0CodErr [ Sun May 27, 2018 10:50 am ] |
Post subject: | Re: Эмуляция KolibriOS API |
0CodErr wrote: tsdima wrote: 0CodErr wrote: Интересно, кто-нибудь пробовал из-под Wine запускать? Я пробовал, всё тот же "Read File error".Нашёл в модуле System такой код с комментариями: Code: {$IFDEF LINUX}Так как у linux исходный код открыт, то, думаю, при желании можно для себя любимого снова включить эту возможность. Kopa wrote: Попробовал собрать последнюю ревизию у себя программы Ошибся темой , да? ![]() |
Author: | 0CodErr [ Wed Aug 29, 2018 10:28 am ] |
Post subject: | Re: Эмуляция KolibriOS API |
Всё-таки в некоторых Windows7 работать должно. По крайней мере в Windows7 SP1 до обновления безопасности это должно работать. Возможно, что и в Windows8 с ntvdm, но это только x86, а не x64, ведь в x64 ntvdm работать не будет. Например, я нашёл, где используется похожая функция: https://payatu.com/hacksys-extreme-vulnerable-driver/ Там есть "Null Pointer Dereference" Поддерживаемые версии Windows:
Эксплойт был протестирован на Windows 7 SP1 (x86). В папке Whitepaper есть pdf, вот картинка оттуда Attachment: nullptrdrfrnc.PNG [ 19.46 KiB | Viewed 6031 times ] Вот тут https://osandamalith.com/2017/06/22/win ... reference/ кто-то описывает использование техники "null pointer dereference", используемой в этом проекте. Вот у него на GitHub-е: https://github.com/OsandaMalith/Exploit ... aster/HEVD Вот статья об этом на securitylab: https://www.securitylab.ru/analytics/494397.php Кстати, там же пишут: Quote: Начиная с Windows 8, выделение первых 64 Кбайт запрещено. Единственное исключение – если разрешен компонент NTVDM, который по умолчанию отключен. Насколько я понимаю, с включенным NTVDM должно работать? Кто-нибудь пробовал включать NTVDM? Также вот в этой статье https://www.securitylab.ru/news/495193.php есть ссылка на pdf, вот картинка оттуда Attachment: win10mitigations.PNG [ 49.61 KiB | Viewed 6031 times ] В принципе, для тестирования своих приложений можно просто собирать их с подходящим ImageBase и грузить примерно так: KEm.exe -base 65536 test.kex Например, как тут viewtopic.php?f=37&t=3679&start=30#p70153 Quote: Если же цель — использование для разработки программ, то на период тестирования\отладки своей программы можно её скомпилировать не с "org 0", а, скажем с 'org 64K' и грузить эмулятором по этому адресу.
...................... |
Author: | paulcodeman [ Wed Aug 29, 2018 4:24 pm ] |
Post subject: | Re: Эмуляция KolibriOS API |
https://blog.xpnsec.com/hevd-null-pointer/ |
Author: | lev [ Wed Aug 29, 2018 5:51 pm ] |
Post subject: | Re: Эмуляция KolibriOS API |
Может быть добавить в KEm?: Если стартовый адрес в заголовке проги > 0x10000, то автоматом грузить с 0x10000 Не выпиливая функционала возможности указать другую базу |
Author: | paulcodeman [ Sat Sep 01, 2018 7:17 pm ] | ||
Post subject: | Re: Эмуляция KolibriOS API | ||
Немного доработал эмулятор. Сделал файл настройки setting.ini, где можно по умолчанию задать такие настройки как: Code: [General] Также добавил несколько сис. функций. Пытаюсь добавить поддержку сис.ф-ций потоки. Можно достичь быстродействия, если поменять условие case для проверки сис.ф-ции на массив сис. ф-ций. Потому что сразу будет исполняться та ф-ция номер которой соответствует ключу, чем все перебирать. Программа если не находит default.skn грузит стандартную тему Windows. Это аналогия с настройками Theme=Disable Если программа не может загрузить по 0 адресу, то 2 раз пытается загрузить по 0x10000 адресу. Тем самым можно запускать и в Windows XP, и в Windows 7 и выше, без параметра -base
|
Author: | paulcodeman [ Sun Sep 02, 2018 12:51 am ] | ||
Post subject: | Re: Эмуляция KolibriOS API | ||
Кстати, говорят что по 0 адресу будет работать в windows 7 x32 битной, а в x64 не будет. В 32 битной будет работать если создать ярлык этого эмулятора и поставить в свойствах ярлыка запускать в отдельной области памяти, но сам я не проверял.
|
Author: | 0CodErr [ Tue Sep 04, 2018 10:17 am ] |
Post subject: | Re: Эмуляция KolibriOS API |
pavelyakov wrote: В 32 битной будет работать если создать ярлык этого эмулятора и поставить в свойствах ярлыка запускать в отдельной области памяти Насколько понимаю, это Quote: позволяет выполнить 16-разрядные приложения в отдельных виртуальных DOS-машинах Это для трюка с NTVDM что ли? Жаль, что микрософт считает выделение в 0 уязвимостью, а значит всё равно это будет закрыто рано или поздно. Нужен легальный способ. Хм.. а как виртуальные машины работают(не эмуляторы процессора)? Через драйвер может?pavelyakov wrote: Можно достичь быстродействия, если поменять условие case для проверки сис.ф-ции на массив сис. ф-ций. Потому что сразу будет исполняться та ф-ция номер которой соответствует ключу, чем все перебирать. ![]() Компилятор сам создаст таблицу переходов, если это будет необходимо, например, такой код Code: Var X, Y: LongWord;может быть оттранслирован примерно в это Code: 00407CE0: A1 98 97 40 00 mov eax,[00409798]В зависимости от значений результат тоже будет разный, иногда использование таблицы переходов не оправданно, компилятор об этом знает и в этом случае не генерирует такую таблицу. Compiler generated branch tables pavelyakov wrote: Если программа не может загрузить по 0 адресу, то 2 раз пытается загрузить по 0x10000 адресу. Тем самым можно запускать и в Windows XP, и в Windows 7 и выше, без параметра -base Только надо помнить, что сама программа доолжна быть собрана с соответствующим ImageBase.lev wrote: Если стартовый адрес в заголовке проги > 0x10000, то автоматом грузить с 0x10000 Но ведь он не пишется в заголовке.pavelyakov wrote: Пытаюсь добавить поддержку сис.ф-ций потоки. Для этого некоторые(но не все) глобальные переменные должны быть thread-local. То есть, вместо Code: Var X: Dword;будет Code: ThreadVar X: Dword;Также есть проблема со стеком, если использовать тот стек, который приложение KolibriOS указало в ThreadCreate:
В некоторых KolibriOS-программах стек не выравнен(это плохо, но это есть) — с этим тоже может быть проблема. Можно захотеть передать параметры в запускаемый поток, положив ему что-то на стек: выделили память под стек, положили туда значения, затем указали выделенную область в ThreadCreate. Тут можно попытаться копировать некоторое количество байт из KolibriOS в Windows стек. А ещё можно запустить поток без стека, а он уже сам его себе выделит: выделить память под стек, mov esp, ... Но это будет сложнее реализовать, текущий вариант в подавляющем большинстве случаев должен и так работать. |
Author: | lev [ Tue Sep 04, 2018 5:02 pm ] | ||
Post subject: | Re: Эмуляция KolibriOS API | ||
Quote: Если стартовый адрес в заголовке проги... Quote: Но ведь он не пишется в заголовке Header - MENUET01 OS version - 1 (или 2 для multithread) start address - ... Ок, если то, что идёт третьим пунктом в заголовке проги, ошибочно считаемое мной за стартовый адрес, больше 0х10000 ... Вариант с двойной загрузкой от pavelyakov тоже вполне подошел Кстати, возьмите подопытного. В данный момент падает на, видимо, ещё не реализованной загрузке курсора.
|
Author: | 0CodErr [ Tue Sep 04, 2018 9:00 pm ] |
Post subject: | Re: Эмуляция KolibriOS API |
lev wrote: Ок, если то, что идёт третьим пунктом в заголовке проги, ошибочно считаемое мной за стартовый адрес, больше 0х10000 ... А, так ты про Entry point(Точка входа). "Больше 0х10000" — это ещё не гарантия, ImageBase при этом вполне может быть и 0, а Entry point где-то гораздо дальше, другое дело, что таких относительно немаленьких программ под KolibriOS не так уж много.Вообще, думаю, после реализации вот этого viewtopic.php?f=1&t=1839&p=69666#p69666 было бы проще, судя по http://ftp.kolibrios.org/users/CleverMouse/pe/pe.patch приложения также в формате StrippedPE. Там есть тестовый пример programs/system/test/trunk/test.asm Вот из процедуры map_pe_usermode Code: +; 5. Allocate space in the address space. lev wrote: Header - MENUET01 Судя по http://websvn.kolibrios.org/filedetails ... %2Fapp.lds там должно быть MENUET02, а version = 1.
OS version - 1 (или 2 для multithread) |
Author: | CleverMouse [ Thu Sep 20, 2018 10:25 pm ] |
Post subject: | Re: Эмуляция KolibriOS API |
0CodErr wrote: Leency, там всё та же SetLDTEntries, которая под x64 работать не будет. Leency wrote: Vista/7/10 pavelyakov wrote: Из-за чего с windows 7 и выше не запускается? Это возможно из-за защиты windows? Насколько я смог нагуглить, это появилось в одном из обновлений безопасности на семёрке. То есть, теоретически, на каких-то семёрках оно может работать. Возможно на висте работает. Мой вариант не использует SetLDTEntries, и, по идее(если я ничего больше не упустил ![]() Из history.txt к KlbrInWin: 25.07.2013 Поправлен код для работы после какого-то прилетевшего обновления Win7. Теперь для работы в реестре нужен параметр HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\KlbrInWin.exe\EnableLowVaAccess:DWORD = 1. 0CodErr wrote: Значит в linux нельзя выделить память в нуле. https://wiki.debian.org/mmap_min_addr |
Author: | Siemargl [ Thu Sep 20, 2018 10:57 pm ] |
Post subject: | Re: Эмуляция KolibriOS API |
Уау, Мышь жива 0/ |
Author: | Kopa [ Thu Oct 03, 2019 12:11 am ] |
Post subject: | Re: Эмуляция KolibriOS API |
Больше проект не развивали? |
Page 5 of 5 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |