| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2887 人关注过本帖
标题:XP WIN7 下获取Kernel32.exe基址的程序片段(通杀 xp win7 (32位 64位)
只看楼主 加入收藏
水哥
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:65
专家分:111
注 册:2012-8-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
XP WIN7 下获取Kernel32.exe基址的程序片段(通杀 xp win7 (32位 64位)
这俩天写一个shellcode的小程序,调用以前XP下从PEB获取kernel32基址的方法在win7(64位)下失效。
程序代码:
mov eax,fs:[30h]     ;得到PEB结构地址
mov eax,[eax + 0ch] ;得到PEB_LDR_DATA结构地址
mov esi,[eax + 1ch] 
lodsd ; 得到KERNEL32.DLL所在LDR_MODULE结构的InInitializationOrderModuleList地址
mov edx,[eax + 8h]   ;得到BaseAddress,既Kernel32.dll基址

上面是XP下以前的方法可惜在WIN7下不能用了
有没有通用的办法那,要不咋的shellcode没法整了,别急看下面的
程序代码:
assume fs:nothing
    xor     ecx,ecx
    mov eax,fs:[30h]       ;得到PEB结构地址
    mov eax,[eax + 0ch]    ;得到PEB_LDR_DATA结构地址 
    mov esi,[eax + 1ch]
next_module:
        mov   eax,[esi+08h]    ;取列表中模块基址到eax
        mov   edi,[esi+20h]    ;取所属模块的字串首地址到EDI
        mov   esi,[esi]
        cmp  [edi+12*2],cx     ;cx=0 比较字串的尾部是否为0
        jnz  next_module       ;继续枚举
     
        mov  edx,eax           ;eax保存着kernel32的基址
其中[edi+12*2]为啥要取这个偏移那?
因为kernel32.exe在PEB中的字串是以unicode的形式保存着,
所以kernel32.exe占内存24个字节
首地址加24个字节就是kernel32的尾部
比较模块尾部是否为0来确定是否是kernel32的基址
此方法通用于XP WIN7 32位和64位,俺亲自做了测试可以通用哦;
亲们写注入又有好办法了
说明:此方法非自己原创
搜索更多相关主题的帖子: color win7 
2012-09-05 13:35
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:7 
下面那个方法XP时代也有 只不过在XP时代和上面的可能是等效的
2012-09-05 13:38
水哥
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:65
专家分:111
注 册:2012-8-11
收藏
得分:0 
俺孤陋寡闻了,一直用以前的方法,这是这俩天需要获取基址了,百度研究了下,觉得好用才共享下
2012-09-05 13:41
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
加个高亮罢 花花绿绿的才好看
2012-09-05 13:48
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:7 
嘿嘿 帮顶!

梅尚程荀
马谭杨奚







                                                       
2012-09-05 14:00
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:7 
全是红名呀。帮顶。
2012-09-05 23:49
glacierword
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-9-12
收藏
得分:0 
虽然很高深看不明白,但高深的东西要顶到大牛来回答
2012-09-12 15:46
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:0 
围观学习了。。
2012-09-13 15:19
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
其实看雪论坛有很多这样的东西 那里搞这个的水平很高 有兴趣可以多去那里看 这里大部分还是基础的东西
2012-09-13 15:29
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
我也顶

我要成为嘿嘿的黑客,替天行道
2012-10-01 22:43
快速回复:XP WIN7 下获取Kernel32.exe基址的程序片段(通杀 xp win7 (32位 64位 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045087 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved