----------------------------------------------------------------------------------
@MSGID: 2:5000/14 64638fd5
@REPLY: 2:5020/848.23 646358ba
@CHRS: CP866 2
@TZUTC: 0200
Привет!
16 May 23 13:16, you wrote to me:
YH> Ты думаешь в libc прототипы меняются в каждом билде? :). Сигнатуры к
YH> библиотекам, обновлялись постоянно. Hо til`ы-то зачем?
Я не вникал в подробности тамошней кухни, если в til`ах лежит
информация об особенностях кодогенерации разных серий компиляторов, то и незачем.
Hо с тех пор, как MS сделала свой Symbol Server, надо бы сперва все,
что можно, брать оттуда, а если там не нашлось, то уже искать у себя.
Ограничиваться поиском у себя имеет смысл, только если там лежит достоверно кривое.
YH> Либо ты пользуешся идой 19затёртого года, либо стёр половину файлов из
YH> дистрибутива.
Пользуюсь IDA Freeware 7.0 и 7.6, ничего не стирал. Вот только что
поставил свежую 8.2 - она первым делом выдала "Could not find signature file
`msmfc2`", чего 7.x не делали. :)
YH> А посмотреть на соседние (ar2idt/def2idt) что помешало?
А толку, если у меня нет ни lib, ни def? :)
Потом уже сделал руками IDT из того, что выдает dumpbin /exports -
7.6 и 8.2 его взяли, а 7.0 просто закрывала диалог запроса файла, и
ничего не делала.
А dumpbin еще и не выдает сигнатур для нескольких порядковых
номеров. А в PDB все есть все.
YH> Последний раз (надоедо повторять) - ты путаешь дизассемблирование то
YH> ли с отладкой, толи с декомпиляцией. pdb для обозначенной тобой цели
YH> нахрен не нужен
Hичего не понял. :( Вот хочу я изучить какие-то аспекты приложения,
использующего MFC в виде DLL. Делаю это сугубо по дизассемблеру, без декомпилятора
или отладчика. В приложении полно функций, которые вызывают методы MFC, и
методов собственных классов, которые вызываются из методов MFC. Если б
дизассемблер запрашивал PDB для любой DLL, на которую есть ссылки, он бы
гарантированно мог показать нормальные имена и сигнатуры для всего, на что есть
PDB. А так, если он не смог (или недостаточно захотел) найти где-то у
себя имена экспортов соответствующей версии DLL, я вижу в тексте только
номера. И даже после приседаний с созданием IDT не вижу имен для тех
номеров, для которых их нет внутри самой DLL.
YH> Вот когда ты будешь дизасссемблировать задачку собранную со
YH> "статическим" mfc и они не подключатся, можешь "возмущаться"
Hу так там не из чего подключать, кроме как из своего. А тут как
раз есть, но рекомендуется почему-то делать через задницу.
YH> Если читать документацию "религия не позволяет" сноси все
YH> дизассемблеры нахрен - "интуитивно понятных" программ среди них нет,
YH> не было и (имхо) никогда не будет.
Так этих тонкостей в документации вообще нет - их можно найти
только в левых туториалах, и только по частям. :) Тут речь даже не об
интуитивной понятности, а о том, откуда вообще начинать подобный поиск. Я
совершенно искренне полагал, что уже давно любой софт, которому нужна символьная
информация, первым делом лезет к Symbol Server и/или в Symbol Store за PDB, а
все эти таблицы имен держит у себя на всякий случай, ежели не
получилось найти PDB. Соответственно, рылся в сети на предмет "как заставить их
хоть запросить PDB, хоть подключить имеющийся". А оказалось, что все
гораздо хуже, чем я представлял, и нужно было начинать сразу с поиска
костылей для создания таблиц. :)
YH> За то время что ты возмущаешся можно было 10 раз написать def-файл
YH> конверснуть его в idt и подключить :).
Так я ж не возмущался непрерывно все это время. :) Буду теперь
дальше строгать кривые костыли. Hо, блин, не могу спокойно на это смотреть.
:)
Всего доброго!
Евгений Музыченко
fi-do@muzy-chen-ko.net (все дефисы убрать)
--- GoldED+/W32-MSVC 1.1.5-b20180707
* Origin: Fox Tracks, France (2:5000/14)
SEEN-BY: 50/12 400/814 452/28 166 455/19 4500/1
5000/14 5020/400 545 848 1042
SEEN-BY: 5020/1477 1823 4441 12000 5022/128 5025/3
75 5030/1081 1957 2404
SEEN-BY: 5035/85 5053/400 5054/1 5059/26 37 5066/18
5080/68 102 5085/13
SEEN-BY: 5095/20
@PATH: 5000/14 5020/545 4441