-
-
请问import_Rec是怎么自动寻找IAT
-
发表于:
2004-11-13 15:17
6043
-
以前有人曾回答我说是根据跳转表,但是我做了以下实验,把NOTEPAD的跳转表全部nop掉,但是import_Rec他还是能找到IAT。于是我怀疑这个结论,而且对于NOTEPAD的跳转表也很简单只是comdlg32的部分。
00404FAA - FF25 1C654000 jmp dword ptr ds:[<&comdlg32.Comm>; comdlg32.CommDlgExtendedError
00404FB0 - FF25 18654000 jmp dword ptr ds:[<&comdlg32.GetS>; comdlg32.GetSaveFileNameA
00404FB6 - FF25 14654000 jmp dword ptr ds:[<&comdlg32.Page>; comdlg32.PageSetupDlgA
00404FBC - FF25 10654000 jmp dword ptr ds:[<&comdlg32.Find>; comdlg32.FindTextA
00404FC2 - FF25 0C654000 jmp dword ptr ds:[<&comdlg32.Choo>; comdlg32.ChooseFontA
00404FC8 - FF25 08654000 jmp dword ptr ds:[<&comdlg32.GetO>; comdlg32.GetOpenFileNameA
00404FCE - FF25 20654000 jmp dword ptr ds:[<&comdlg32.GetF>; comdlg32.GetFileTitleA
00404FD4 00 db 00
00404FD5 00 db 00
00404FD6 00 db 00
如果说import_Rec只是根据跳转表的长度确定IAT的大小是肯定不对的,那他是通过什么办法的呢?
另外还有一个问题,在OEP的地方不一定要填入OEP,可以添其他的地址,对于stolen code的FOEP就是最好的例子。是不是说填写的OEP只是让import_Rec知道应该在这个区段寻找JMP TABLE呢?至少现在我是这么认为的,不知道是不是正确!
[课程]Linux pwn 探索篇!