0

每当我在 Immunity Debugger 中反汇编二进制文件时,第一个入口点始终是 mainCRTStartup 的 JMP,这很好......

但我很好奇它所属的其他跳跃集群。我很好奇这部分叫什么?

例如;

003210EB   E9 A00E0000      JMP Hello_Wo._onexit
003210F0   E9 7B040000      JMP Hello_Wo.NtCurrentTeb
003210F5   E9 48280000      JMP Hello_Wo._HeapFree@12                ; JMP to kernel32.HeapFree
003210FA   E9 71080000      JMP Hello_Wo._RTC_SetErrorFunc
003210FF   E9 6C100000      JMP Hello_Wo._invoke_watson_if_error
00321104 > E9 F7070000      JMP Hello_Wo.mainCRTStartup
00321109   E9 C8270000      JMP Hello_Wo.___crtUnhandledException    ; JMP to MSVCR110.__crtUnhandledException
0032110E   E9 FD080000      JMP Hello_Wo.__CxxUnhandledExceptionFilt>
00321113   E9 78090000      JMP Hello_Wo.__CxxSetUnhandledExceptionF>
00321118   E9 CB270000      JMP Hello_Wo._QueryPerformanceCounter@4  ; JMP to kernel32.QueryPerformanceCounter

我只是想知道这叫什么,所以我可以阅读它。我尝试搜索 PE 文件结构,因为我认为这可能是导入表,但它们并不完全是 DLL 条目,而且它们也不适合 PE 标头中的偏移量。

我根本不知道它是什么的一部分,所以我不知道要搜索什么。谢谢你。

4

1 回答 1

1

这些是从 DLL 导入的函数的跳转。只要不知道导入函数的真实地址,编译的应用程序就会从跳转表中调用该地址。这个技巧减少了在加载应用程序期间需要设置的地址的数量。

于 2013-07-14T09:51:59.973 回答