![]() |
eXeL@B —› Вопросы новичков —› Читабельные имена функций в MSVCP (ollydbg) |
Посл.ответ | Сообщение |
|
Создано: 26 апреля 2011 15:27 · Личное сообщение · #1 Существует ли способ в ольке привести что то типа Code:
К более читабельному виду? ![]() |
|
Создано: 26 апреля 2011 15:53 · Личное сообщение · #2 Подключать сигнатуры от IDA с помощью плагинов (например, Godup) ![]() |
|
Создано: 26 апреля 2011 19:02 · Личное сообщение · #3 "Debugging Options" -> вкладка "Addresses" -> флаг "Demangle symbolic names" ![]() |
|
Создано: 26 апреля 2011 19:15 · Поправил: Isaev · Личное сообщение · #4 |
|
Создано: 27 апреля 2011 09:15 · Поправил: Coderess · Личное сообщение · #5 SVLab Подключать сигнатуры от IDA с помощью плагинов Тока с помощью плагина от takerZ'а, mapimp ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 27 апреля 2011 13:53 · Личное сообщение · #6 Coderess mapimp работает только с map-ами, сигнатуры не могёт. ![]() |
|
Создано: 27 апреля 2011 16:29 · Личное сообщение · #7 Когда то понадобилось чтобы быстро имена функции из иды подгрузить в олю накидал скрипт для иды, который генерит скрипт для оли (плагин OllyScript). может поможет. ![]() ![]() |
|
Создано: 28 апреля 2011 20:38 · Личное сообщение · #8 Эх, если бы всё было так просто, как вы тут описываете ![]() В IDA те же зайцы, только вид сбоку. Пример листинга в ИДЕ, над которым я мучаюсь Code:
Примененные сигнатуры: Code:
Кстати, библа 32-битная - как ИДА умудрилась найти функи из "MFC 7-9 64bit", которую я подсунул ей от отчаяния и почему дважды применённая сигнатура ("Microsoft VisualC 2-9/net runtime") показывает разные результаты - это я думаю тема отдельного разговора. Тем не менее нужно где-то найти нормальные сигны на MSVCP90, MFC90 и т.д. В гугле нет ничего, поэтому вопрос-просьба к аксакалам форума - подайте, кто что может, а то мочи уже нет разгребать все эти "&MSVCP90.??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z>" ![]() |
|
Создано: 28 апреля 2011 21:04 · Личное сообщение · #9 Kiev78 чет я не пойму над чем вы тут все бьетесь и причем тут сигнатуры к майкрософтовскому деманглу? ну вот я взял в иде это ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ и переименовал первую попавшую функцию и плучил public: __thiscall std::basic_string<wchar_t, struct std::char_traits<wchar_t>, class std::allocator<wchar_t>>::~basic_string<wchar_t, struct std::char_traits<wchar_t>, class std::allocator<wchar_t>>(void) это называется демангл ![]() |
|
Создано: 28 апреля 2011 21:09 · Личное сообщение · #10 |
|
Создано: 28 апреля 2011 21:51 · Поправил: Kiev78 · Личное сообщение · #11 Что такое демангл я знаю (или по крайней мере могу уточнить для себя в гугле). Проблема в том, что по такому названию ф-ции непонятно, что она делает. Максимум, о чем я могу догадаться, это что функция работает со строкой (строками - если судить по basic_string), и что какие-то из передаваемых аргументов - юникодные символы (если судить по wchar_t) да и то я не уверен. Где можно найти инфу об этих ф-циях (что они делают, что и как им передается, что и как они возвращают, и есть у них более говорящие названия). У меня есть кое-что по MFC (типа "MFCFAQ.CHM", "MFC - внутренний мир" Румянцева), но там рассматривается MFC с точки зрения программиста, мне же хотелось бы взглянуть на него с точки зрения исследователя программ. Может вы посоветуете какую литературу (если таковая имеется). То же самое касается MSVCP90 - где к примеру взять информацию о функции public: __thiscall std::basic_string<wchar_t, struct std::char_traits<wchar_t>, class std::allocator<wchar_t>>::~basic_string<wchar_t, struct std::char_traits<wchar_t>, class std::allocator<wchar_t>>(void) - что она делает и т.д. В общем жду от вас полезных ссылок по этой теме - я думаю это будет интересно не только мне. Ну и естественно спасибо за помощь (любую). ![]() |
|
Создано: 28 апреля 2011 22:05 · Личное сообщение · #12 что бы понимать что это за функция public: __thiscall std::basic_string<wchar_t, struct std::char_traits<wchar_t>, class std::allocator<wchar_t>>::~basic_string<wchar_t, struct std::char_traits<wchar_t>, class std::allocator<wchar_t>>(void) нужно быть как миниму программистом, и разбиратся что такое std в противном случае я не вижу смысла знать вам что и зачем это такое без знания программирования, обьяснить вам не представляется возможным ps ну можете скачать MSVC, и поскать в хидерах ![]() |
|
Создано: 28 апреля 2011 22:31 · Личное сообщение · #13 |
|
Создано: 28 апреля 2011 22:41 · Поправил: gena-m · Личное сообщение · #14 как ИДА умудрилась найти функи из "MFC 7-9 64bit", которую я подсунул ей от отчаяния ИДА может найти и не такое, если ей подсовывать все подряд, а с сигнатурами лучше вообще не добавлять, если точно не уверены что эти функции там есть, у работы с сигнатурами своя "специфика". Тем не менее нужно где-то найти нормальные сигны на MSVCP90, MFC90 и т.д Их не нужно искать, а нужно делать самому или попросить у кого они есть, но это отдельная тема, в которой тоже много нюансов, можете почитать в топике ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше ![]() |
|
Создано: 29 апреля 2011 12:57 · Личное сообщение · #15 |
|
Создано: 30 апреля 2011 03:14 · Личное сообщение · #16 |
|
Создано: 11 мая 2011 20:19 · Личное сообщение · #17 reversecode пишет: сырцы stl(std), mfc открыты Где и кем они открыты? Можно ли их глянуть? А то гугль не в курсе. Например вот как выглядит код одной из функций MSVC90: Code:
Что это за функция такая, которая возвращает 1 в AL, если дворд начиная с 14h байта какого-то массива (указатель на который передается через ECX) равен нулю. Как эта функция называется и в чём её смысл? Всё что я хотел, так это узнать есть ли какой нибудь аналог МСДН для этих функций? ![]() |
|
Создано: 11 мая 2011 21:08 · Личное сообщение · #18 |
|
Создано: 12 мая 2011 00:10 · Поправил: DenCoder · Личное сообщение · #19 Kiev78 пишет: Что это за функция такая, которая возвращает 1 в AL Обыкновенная булева функция Kiev78 пишет: если дворд начиная с 14h байта какого-то массива Не массива, а класса! Менее вероятно, что структуры, потому как через ecx обычно производится доступ к полям класса. Посмотри, что по адресу в ecx. Если первые несколько полей указывают на такие же классы, значит это действительно какой-то ассоциативный контейнер (одна из реализаций list, map, vector, stack, может CString, CStringList...). Также найди таблицу методов, реверс которых может помочь в определении. А вообще у иды должны быть флирты на MFC. ----- IZ.RU ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Читабельные имена функций в MSVCP (ollydbg) |