RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : А вот вопрос, однако...


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : valerius
To : Юрий Пронякин
Subj : А вот вопрос, однако...

> > можно ли реально бинарник (драйвер или EXE в формате LX) прогнать через дизассемблер;
>
> Это можно.
>
> > полученный сорец на ассемблере модифицировать (конкретно надо файл на ассемблере прогнать через некий преобразователь, на выходе которого получается опять файл на ассемблере),
>
> И это.
>
> > и затем снова прогнать через ассемблер и линкер,
>
> Без проблем.
>
> > и чтобы после этого опять получился рабочий исполняемый файл?
>
> А вот с этим уже могут быть проблемы. Пример: где-то в программе в качестве операнда используется размер некоей структуры или смещение поля в ней, а ты эту структуру модифицировал, да так, что её размер изменился (или смещение того поля изменилось). А дизассемблер имеет только голое число и понятия не имеет, откуда оно взялось.

> Или изменение адресов функций после перекомпиляции - тоже может оказаться существенным.

А если (как мне уже подсказали) взять EXE не один, а с .sym-файлом -- и взять IDA, то по идее, адреса функций дизассемблер заменит на их имена? -- тогда изменение адресов функций несущественно, ведь ассемблер заново по расположению меток вычислит эти адреса -- так ведь?

Sun 17 Jun 2007 00:37 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.7.10) Gecko/2005




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.