Сейчас на форуме: _MBK_, Adler (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Читабельные имена функций в MSVCP (ollydbg)
Посл.ответ Сообщение

Ранг: 2.8 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 26 апреля 2011 15:27
· Личное сообщение · #1

Существует ли способ в ольке привести что то типа
Code:
  1. CALL DWORD PTR DS:[<&MSVCP90.??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z>]


К более читабельному виду?

| Сообщение посчитали полезным: kolega

Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

Создано: 26 апреля 2011 15:53
· Личное сообщение · #2

Подключать сигнатуры от IDA с помощью плагинов (например, Godup)

| Сообщение посчитали полезным: Tunnel Rat

Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 26 апреля 2011 19:02
· Личное сообщение · #3

"Debugging Options" -> вкладка "Addresses" -> флаг "Demangle symbolic names"

| Сообщение посчитали полезным: borisuy, Tunnel Rat


Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 26 апреля 2011 19:15 · Поправил: Isaev
· Личное сообщение · #4

А если Lib подключить, как в случае MFC71.LIB?
Debug>Select Import Libraries

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 27 апреля 2011 09:15 · Поправил: Coderess
· Личное сообщение · #5

SVLab
Подключать сигнатуры от IDA с помощью плагинов

Тока с помощью плагина от takerZ'а, mapimp



--> mapimp - импорт map файлов в OllyDbg <--

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

Создано: 27 апреля 2011 13:53
· Личное сообщение · #6

Coderess
mapimp работает только с map-ами, сигнатуры не могёт.

| Сообщение посчитали полезным: Coderess

Ранг: 74.1 (постоянный), 34thx
Активность: 0.030
Статус: Участник

Создано: 27 апреля 2011 16:29
· Личное сообщение · #7

Когда то понадобилось чтобы быстро имена функции из иды подгрузить в олю
накидал скрипт для иды, который генерит скрипт для оли (плагин OllyScript). может поможет.




c6f4_27.04.2011_EXELAB.rU.tgz - ida2olly.idc

| Сообщение посчитали полезным: Tunnel Rat

Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 28 апреля 2011 20:38
· Личное сообщение · #8

Эх, если бы всё было так просто, как вы тут описываете
В IDA те же зайцы, только вид сбоку.
Пример листинга в ИДЕ, над которым я мучаюсь
Code:
  1. .text:1019CE15                 mov     [ebp+var_4], 0
  2. .text:1019CE1C                 mov     ecx, [ebp+var_E18]
  3. .text:1019CE22                 call    ds:?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ
  4. .text:1019CE28                 push    eax
  5. .text:1019CE29                 mov     ecx, [ebp+var_1894]
  6. .text:1019CE2F                 add     ecx, 0C0h
  7. .text:1019CE35                 call    mfc90u_6579
  8. .text:1019CE3A                 mov     [ebp+var_4], 0FFFFFFFFh
  9. .text:1019CE41                 lea     ecx, [ebp+var_234]
  10. .text:1019CE47                 call    ds:??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ
  11. .text:1019CE4D                 lea     ecx, [ebp+var_258]
  12. .text:1019CE53                 push    ecx
  13. .text:1019CE54                 call    sub_100C54A0

Примененные сигнатуры:
Code:
  1. vc32rtf Applied 816   Microsoft VisualC 2-9/net runtime       
  2. vc7atl  Applied 237   VC7 ATL support library                 
  3. vc8atl  Applied 5     VC8/9 ATL support library               
  4. vcextra Applied 176   VC6/9 Extra (techology) library         
  5. vc32mfc Applied 385   MFC 3.1/4.0/4.2/8.0/9.0 32bit           
  6. pe      Applied 437   Startups of PE files                    
  7. msmfc2  Applied 20723 MFC32 WinMain detector                  
  8. msmfc2u Applied 18851 MFC32 wWinMain detector                 
  9. msddk32 Applied 51    DDK Windows 32bit                       
  10. mccor   Applied 204   Microsoft Visual Studio.Net COM+ Runtime
  11. exe     Applied 365   Startups of EXE/COM files               
  12. vc32rtf Applied 5     Microsoft VisualC 2-9/net runtime       
  13. vc64mfc Applied 7     MFC 7-9 64bit                           
  14. msmfc2d Applied 0     MFC32 DllMain detector

Кстати, библа 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>"




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 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)

это называется демангл



Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 28 апреля 2011 21:09
· Личное сообщение · #10

Kiev78 пишет:
В IDA те же зайцы, только вид сбоку.

"Options" -> "Demangled names" -> в панели "Show demangled C++ names as" выставить "Names"
вид демангленных имен можно настроить, в справке иды есть про это в разделе "Customize Demangled Names"



Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 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) - что она делает и т.д.
В общем жду от вас полезных ссылок по этой теме - я думаю это будет интересно не только мне.
Ну и естественно спасибо за помощь (любую).




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 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, и поскать в хидерах



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 28 апреля 2011 22:31
· Личное сообщение · #13

По крайней мере можно обратиться к самим мелкомягким и спросить-например на rsdn.ru. Кто кроме них лучше знает, что у них в MFC.
Или заглянуть внутрь "&MSVCP90.??0?$basic_string@DU?$char_traits@D@std@Z>".



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 28 апреля 2011 22:41 · Поправил: gena-m
· Личное сообщение · #14

как ИДА умудрилась найти функи из "MFC 7-9 64bit", которую я подсунул ей от отчаяния
ИДА может найти и не такое, если ей подсовывать все подряд, а с сигнатурами лучше вообще не добавлять, если точно не уверены что эти функции там есть, у работы с сигнатурами своя "специфика".

Тем не менее нужно где-то найти нормальные сигны на MSVCP90, MFC90 и т.д

Их не нужно искать, а нужно делать самому или попросить у кого они есть, но это отдельная тема, в которой тоже много нюансов, можете почитать в топике --> Использование IDA Pro <--, возможно что то полезное найдете по изготовлению сигнатур, но в данном случае они вам не помогут.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 29 апреля 2011 12:57
· Личное сообщение · #15

ELF_7719116
а что там понимать? сырцы stl(std), mfc открыты
бери и читай))




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 30 апреля 2011 03:14
· Личное сообщение · #16

Ещё один plugin for Ollydbg 1.x for applying IDA signatures



Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 11 мая 2011 20:19
· Личное сообщение · #17

reversecode пишет:
сырцы stl(std), mfc открыты

Где и кем они открыты? Можно ли их глянуть? А то гугль не в курсе.
Например вот как выглядит код одной из функций MSVC90:

Code:
  1. 7848D927 M>  33C0                 XOR     EAX, EAX
  2. 7848D929     3941 14              CMP     DWORD PTR DS:[ECX+14], EAX
  3. 7848D92C     0F94C0               SETE    AL
  4. 7848D92F     C3                   RETN

Что это за функция такая, которая возвращает 1 в AL, если дворд начиная с 14h байта какого-то массива (указатель на который передается через ECX) равен нулю. Как эта функция называется и в чём её смысл?
Всё что я хотел, так это узнать есть ли какой нибудь аналог МСДН для этих функций?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 11 мая 2011 21:08
· Личное сообщение · #18

Реализаций СТЛ несколько. Нужна из студии-бери ставь студию да разглядывай. СТЛ там в сорцах.
А твой код чего угодно может быть, хыть empty() на контейнер.
И в мсдн они есть, как и в спецификации стл.




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 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)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати