RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > А если (как мне уже подсказали) взять EXE не один, а с .sym-файлом -- и взять IDA, то по идее, адреса функций дизассемблер заменит на их имена? -- тогда изменение адресов функций несущественно, ведь ассемблер заново по расположению меток вычислит эти адреса -- так ведь? > > Не совсем. Для дизассемблера это просто имена каких-то адресов в файле. Что находится по этим адресам: функции, переменные, точки, на которые направлены JMP-ы, или ещё что - он не знает. > Кроме того, в .sym есть адреса далеко не всех функций. И не всех переменных. Не говоря уж об упомянутых конструкциях вида "mov reg, offset чего-то" (или ещё хуже: "mov reg, offset чего-то - offset чего-то другого"), которые в коде представляют из себя просто "mov reg, число", без каких-либо упоминаний о происхождении этого числа. > В твоём случае ситуацию облегчает то, что все переменные остаются на своих местах, сдвинутся только функции. Хотя и это не сахар - нет гарантии, что все таблицы адресов функций дизассемблер распознает как таковые, да и в упомянутых выше командах вполне может оказаться смещение именно функции. > А ещё затею с декомпилированием именно ядра затрудняют два факта: > 1) к нему нет .sym-файла, он уже давно разорван на две части из-за своих огромных размеров (ну, это можно поправить, написав свой скрипт для IDA). Но на самом деле тебе от sym-файла вообще толку мало: всё, что в нем для данной задачи есть полезного, и так содержится в заголовке LX-файла, а имена функций (которых в заголовке нет) для твоей затеи не интересны совершенно; > 2)"дизассемблированное" Идой ядро 14.089e у меня есть (напрочь не помню, зачем я это делал). Совсем недалеко от его начала имеется длинный переход "jmp far ptr 74FFh:0F0A9h", и подобных переходов по тексту ещё немало раскидано. Куда они на самом деле должны привести, дизассемблер понятия не имеет. > > "Хозяйке на заметку": дизассемблированный файл обычно примерно в десять раз больше, чем исходный EXE. Сколько лет нужно потратить на причёсывание того, что получится из более чем мегабайтного файла ядра?
_, _, _, _, _ _, _,_
(_ | / \ |\ | / \ |_/
, ) | , \ / | \| \ / | \
~ ~~~ ~ ~ ~ ~ ~ ~
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.