идея!! идея нахожусь??
knorr 14 июля, 2005 - 10:05.Просьба не кидаться камнями, а высказаться насколько реализума следующая идея:
1) Представляем что файл с расшиернием exe (win32–pe) является исходным текстом программы на каком–то языке.
2) пишем компилятор для этого языка транслирующий exe и dll Файл в asm
3)компилируем asm–Файл, получаем бинарник beos
При этом, к примеру, ntdll.dll мы уже скомпилровали в ntdll.dll.so, т.е. системные вызовы не надо эмулировать а прямо отсылать к уже имеющейся библиотеке
Ваши мнения
Re: идея!! идея нахожусь??
Компилируя асм–файл, полученый путем дизассемблирования бинарника, ты получишь снова этот же бинарник. Из пустого в порожнее
Re: идея!! идея нахожусь??
Как это ни странно, но прицендент был: в своё время один чувак дизасемблировал код досовской игрушки ELITE Frontier, поменял системные и биосовские вызовы на SDL(помоему), и собрал на основе этого нативный для линуксы вариант игрушки. Проект звался примерно так — jjffe, точнее не помню.
Re: идея!! идея нахожусь??
Помоему легче собрать PE Loader, и заменить после загрузки все dll вызовы на соответствующие BeOS(овские).
Нечто похожее проект Win4Be делает вроде как.
Re: идея!! идея нахожусь??
А разве в BeOS нет PE загрузчика? ;)
Re: идея!! идея нахожусь??
видимо придётся сделать некоторые поясниения: речь идёт не о дизассемблировании, а примерно о том, что делает гцц с исходниками на сях:
транслирует в асм, потом компилирует, потом отдаёт на растерзание линкеру
Т.е. мы представляем, что байт–код который сидит в пе — это некий язык программирования «высокого» уровня (к примеру только сказано) и пишем транслятор в более «низкий» уровень, а затем компилируем тем же гцц
Re: идея!! идея нахожусь??
Это офигеннейшая идея, если все получится, то будет классно
Re: идея!! идея нахожусь??
По–моему,
не получится.Я не знаю, какие в BeOS прерывания, но сильно сомневаюсь, что по mov aх,4c int 21h она будет завершать работу текущего приложения. (Даже если и будет — you've got my point). Что автоматически означает, что после дизассемблирования готового. EXE–файла надо будет пройтись по нему с метлой и щёткой, вычищая Windows–зависимый код. С любым приложением серьёзнее Hello, World! проще будет написать его заново, потому что после дизассемблирования не будет никаких меток, никаких комментариев, никаких имён переменных — вообще ничего.
Короче, по–моему, не стоит за это даже браться.
Отправить комментарий