0

我目前正在反转从 msvcp60.dll 导入一些函数的可执行文件。当我在 IDA Pro 中打开可执行文件时,函数名称很长,并且没有提示它们在做什么。现在反转所有这些功能将是浪费时间。

那么有什么方法可以为这些函数取一个有意义的名称,或者至少解释 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:??$?9DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@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
4

1 回答 1

2

你看到的是一个错位的名字。仔细看可以看到

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

看起来它正在调用字符串上的 != 运算符。

于 2011-09-12T06:57:19.363 回答