2011-09-12 90 views
0

我目前正在逆轉從msvcp60.dll導入一些函數的可執行文件。當我在IDA Pro中打開可執行文件時,函數名稱非常長,並且不提供任何關於它們在做什麼的提示。扭轉所有這些功能現在將浪費時間。msvcp60.dll在idapro和ollydbg上導入的函數名稱

那麼有什麼辦法可以獲得這些功能的有意義的名稱,或至少解釋在IDA中顯示的列表?下面是一個函數示例(代碼地址0040377C中的呼叫):

.TEXT:00403767 loc_403767:        ; CODE XREF: sub_402E1B+939j 
.TEXT:00403767 mov  eax, ds:dword_B59B44 
.TEXT:0040376C push esi 
.TEXT:0040376D imul eax, 4Fh 
.TEXT:00403770 add  eax, ds:dword_B52D34 
.TEXT:00403776 shl  eax, 4 
.TEXT:00403779 add  eax, ebx 
.TEXT:0040377B push eax 
.TEXT:0040377C call ds:[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z ; std::operator!=<char,std::char_traits<char>,std::allocator<char>>(std::basic_string<char,std::char_traits<char>,std::allocator<char>> const &,char const *) 
.TEXT:00403782 pop  ecx 
.TEXT:00403783 test al, al 

回答

2

您正在看到一個破損的名稱。仔細一看,你可以看到

std::operator!=(stuff)std::basic_string 

它看起來像是在字符串上調用!=運算符。

+0

你能告訴我你在這裏意味着什麼,以及其他字符串std :: allocator>(std :: basic_string,std :: allocator> const&,char const *) –

+0

@mohamed http: //en.wikipedia.org/wiki/Name_mangling – Avery3R