Главная

идея!! идея нахожусь??

Просьба не кидаться камнями, а высказаться насколько реализума следующая идея:
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!” проще будет написать его заново, потому что после дизассемблирования не будет никаких меток, никаких комментариев, никаких имён переменных — вообще ничего.

Короче, по–моему, не стоит за это даже браться.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <i> <img> <strong> <b> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Введите перечисленные символы, чтобы мы убедились, что вы не робот. Не требуется для зарегистрированных пользователей.
Y
G
c
4
4
1
Enter the code without spaces and pay attention to upper/lower case.