导入表中的奇怪名称

逆向工程 聚乙烯 dll 静态分析 职能
2021-07-08 03:07:25

我正在尝试对 PE 文件进行静态分析以查看它的作用。这样做时,我在 objdump 中偶然发现了一些非常奇怪的函数名称

DLL Name: msvcrt.dll
vma:  Hint/Ord Member-Name Bound-To
c2c68    1371  wcsncmp
c2c72    1017  _wcsnicmp
c2c7e    1229  iswdigit
c2c8a    1013  _wcslwr_s
c2c96    1225  iswalpha
c2ca2       5  ??0bad_cast@@QAE@ABV0@@Z
c2cbe      14  ??1bad_cast@@UAE@XZ
c2cd4    1241  localeconv
c2ce2    1256  memchr
c2cec    1304  strcspn
c2cf6    1292  sprintf_s
c2d02     884  _strtoi64

注意 2 个 bad_cast 函数。为什么他们看起来那么奇怪?这个语法是什么意思?

1个回答

正如@guntram-bloh 所说,这些是被破坏的 C++ 函数。如果您对名称进行 demangle(例如使用在线 demangler),您将获得完全修饰的函数名称:

public: __thiscall bad_cast::bad_cast(class bad_cast const &)
public: virtual __thiscall bad_cast::~bad_cast(void)

所以这些函数是bad_cast 对象的构造函数和析构函数,用于在对引用类型的 dynamic_cast 运行时检查失败时抛出异常