首页
社区
课程
招聘
[求助]动态获得kerne32.dll的问题
2011-12-5 10:06 10058

[求助]动态获得kerne32.dll的问题

2011-12-5 10:06
10058
在《ODay安全》第一版的书上P105页上面,作者在前面说到模块InInitializationOrderModuleList初始化链表第二个链表就是kernel.dll,但是在写shellcode的时候作者却直接引用第一个节点的地址,这是为什么啊?求高手们指点下

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 540
活跃值: (216)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chuxuezhe 2012-1-14 10:39
2
0
个人的理解,到这一步 ,ecx内容作为第一个节点的内容,指向了第二个节点正好是kernel32

不知道有没有说清楚,仅供参考
雪    币: 540
活跃值: (216)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chuxuezhe 2012-1-14 10:43
3
0
还要申明一点,本人并没有实践,不敢保证说对了,只是希望对楼主有所帮助。有时间到系统跑跑,跟踪一下最好了
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
loongboy 2012-1-14 11:05
4
0
偶是菜鸟,言论有风险,相信需谨慎。
          typedef struct _PEB_LDR_DATA                            // 7 elements, 0x28 bytes (sizeof)
          {
/*0x000*/     ULONG32      Length;
/*0x004*/     UINT8        Initialized;
/*0x005*/     UINT8        _PADDING0_[0x3];
/*0x008*/     VOID*        SsHandle;
/*0x00C*/     struct _LIST_ENTRY InLoadOrderModuleList;           // 2 elements, 0x8 bytes (sizeof)
/*0x014*/     struct _LIST_ENTRY InMemoryOrderModuleList;         // 2 elements, 0x8 bytes (sizeof)
/*0x01C*/     struct _LIST_ENTRY InInitializationOrderModuleList; // 2 elements, 0x8 bytes (sizeof)
/*0x024*/     VOID*        EntryInProgress;
          }PEB_LDR_DATA, *PPEB_LDR_DATA;

          typedef struct _LIST_ENTRY     // 2 elements, 0x8 bytes (sizeof)
          {
/*0x000*/     struct _LIST_ENTRY* Flink;
/*0x004*/     struct _LIST_ENTRY* Blink;
          }LIST_ENTRY, *PLIST_ENTRY;


    xor    edx, edx      
    mov   ebx, fs:[edx + 0x30]    ; ebx = address of PEB
    mov   ecx, [ebx + 0x0c]    ; ecx = pointer to loader data
[COLOR="Red"]    mov   ecx, [ecx + 0x1c]    ; ecx = first entry in initialisation order list[/COLOR]
    mov   ecx, [ecx]     ; ecx = second entry in list (kernel32.dll)

mov   ecx, [ecx + 0x1c]    ; ecx = first entry in initialisation order list之后,ecx指向的就是ntdll.dll的节点了,然后根据上面的数据结构,也就很自然找到kernel32的节点指针了。更简单的表述是“没有头结点的链表”。
可能有这个问题是被图3.4.1画的误导了,好吧~这句话当我没说
雪    币: 540
活跃值: (216)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chuxuezhe 2012-1-15 20:33
5
0
有同感,但是还是需要验证一下,这样才能理解和记忆得深刻一些
雪    币: 131
活跃值: (303)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学者learner 2013-8-25 16:00
6
0
这一点疑问解决了
游客
登录 | 注册 方可回帖
返回