![]() |
eXeL@B —› Основной форум —› Исследование 16-bit DOS executable. NTVDM, Реальные адреса символов и symloc |
Посл.ответ | Сообщение |
|
Создано: 22 января 2006 01:25 · Личное сообщение · #1 Есть дизассемблированный при помощи IDA листинг 16и-разрядного ДОС приложения. Есть список сегментов, достаточно большой - seg000...seg139 + dseg Делаю следующее: 1) IDA -> produce MAP file 2) *.map -> idasym.exe -> *.sym 3) *.sym -> load to symbol loader and translate 4) символы становятся видны в SoftIce по команде SYM НО!!! пробую получить адрес какого-либо сегмента - облом, пишеьт мол таких имен нет. Имена seg000-seg139, dseg присутствуют в IDA и в сгенереном map-файле. В чем дело?? MAP-file:
так как программа 16и розрядная, в Windows XP она выполняется в контексте процесса NTVDM?? в списке процессов ее нет, по командам ADDR, MAP32 ничего не получаю соответственно. MAPV86 ничего не выводит. В листинге команды MOD - NTVDM вообще нет, в документе написано что-то вроде того, что NTVDM отображается как какой-то WOW процесс (WOWEXEC) и рядом же пример листинга, но у меня нет даже этого wowexec. В таскМенеджере ntvdm есть. Как это все понять? Читал SoftICE Command Reference.pdf на тему NTVDM, как-тос мутно все... Что можно вытянуть по ntvdm: > PROC -x NTVDM
на 171ой странице вроде то, что мне требуется: Use the MAPV86 command to get the starting address of the programs static code segment. Add 10h to the address if the program in an executable (.EXE). Use the SYMLOC command to set the symbol table alignment to that value. но MAPV86 молчит при загруженом NTVDM. Там даже очень красивый пример есть, но толку.. у меня не выводит ничего =((( !!! ??????? !!! КАК СПРОЕЦИРОВАТЬ ЗАГРУЖЕННЫЕ В САЙС СИМВОЛЫ ПО ВЕРНЫМ РЕАЛЬНЫМ ФИЗИЧЕСКИМ АДРЕСАМ??? Игрался с SYMLOC и ничего не вышло. Ведь SoftIce ругается на имена сегментов segNNN, dseg. НО ПОЧЕМУ, ведь они есть в сгенереном map-файле. Думаю эти вопросы и проблемы у меня возникают из-за нехватки опыта и отсутствия каких-то знаний по 16-и разрядным приложениям. Как мне спроецировать таблицу символов??? u SymbolName меня перекидывает на invalid участки памяти, хотелось ыб использовать имена в командах установки брэйкпоинтов да и при трасировке удобнее... PS: DS 3.2. ![]() |
![]() |
eXeL@B —› Основной форум —› Исследование 16-bit DOS executable. NTVDM, Реальные адреса символов и symloc |