2010-06-18 30 views
0

我想鉤住新的和刪除操作符。但是我無法找到這些操作員駐留的原始DLL。我使用msvcr90.dll,msvsr90d.dll,msvcrt.dll,kernal32.dll,ole32.dll和一些更多的dll。但是我的間諜應用程序無法找到新的和刪除的操作符。新增和刪除容器Dll

如果有人能告訴我在哪個DLL中定義了新操作符和刪除操作符,請很好。

+0

定義您自己的新操作符和刪除操作符是合法的。 – 2010-06-18 12:53:48

回答

0

正如你所說,newdelete是運營商,而不是功能。因此,作爲僅限C++的功能,它們可能會在標準C++庫(libstdC++)中定義,也可能在您使用的編譯器中定義。

+0

在Windows上,它們位於不同的庫中,具體取決於線程模型和發佈/調試。 – Joe 2010-06-18 11:29:50

1

它們在msvcr90.dll中。不要忘記,這些是C++操作符,名稱修改算法在它們上完成了相當多的工作。從DUMPBIN /出口輸出複製:

15 F 00063E99 [email protected]@Z   // void * __cdecl operator new(unsigned int) 
... 
17 11 00063F03 [email protected]@Z   // void __cdecl operator delete(void *) 

我用undname.exe實用程序將重整名稱轉換回。還有幾種重載。