首页
社区
课程
招聘
[原创]PEB_LDR_DATA结构中获得模块基址和名称详解视频
发表于: 2012-12-29 15:02 5710

[原创]PEB_LDR_DATA结构中获得模块基址和名称详解视频

2012-12-29 15:02
5710
这个视频详细讲解如何从PEB_LDR_DATA结构中获得加载模块的基址和完整路径,详细讲解其中的步骤,和几个属性所代表的结构体。

下载地址
http://pan.baidu.com/share/link?shareid=166927&uk=1778395250

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 6
支持
分享
最新回复 (5)
雪    币: 137
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
下载观摩下
2012-12-29 15:13
0
雪    币: 45
活跃值: (55)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
这个问题看《0day》的时候也纠结了一下,不过在OD调试了一会就明白了
2012-12-29 16:26
0
雪    币: 615
活跃值: (172)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
4
看完了视频,楼主的音质很好!

枚举模块,不妨用偏移来取数据,不用定义结构,省心,呵呵~

        cnt=0;
        while(1)
        {
                ModListEntry = ModListEntry->Flink; // LDR_DATA_TABLE_ENTRY ->InLoadOrderLinks : _LIST_ENTRY
                DWORD dwLDR_DATA_TABLE_ENTRY = (DWORD)ModListEntry;
                char* PatchInformation = (char*)(dwLDR_DATA_TABLE_ENTRY + 0x4c);
                char* DllBase = (char*)(dwLDR_DATA_TABLE_ENTRY + 0x18);
                printf("+++ [模块名:%ws] --> va:0x%x\n", PatchInformation, *(DWORD*)DllBase);
       
                cnt++;
        }
       
        printf("模块总数:%d\n", cnt);
2012-12-29 16:50
0
雪    币: 261
活跃值: (537)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
有定义结构吗  下来看看 。自己汇编写的容易看花
2013-1-11 02:12
0
雪    币: 74
活跃值: (703)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢分享
2013-1-11 09:44
0
游客
登录 | 注册 方可回帖
返回
//