首页
社区
课程
招聘
6
[旧帖] [原创]WinXP下搜索SEH链表获取Kernel32.dll基址 0.00雪花
发表于: 2012-5-2 00:29 3155

[旧帖] [原创]WinXP下搜索SEH链表获取Kernel32.dll基址 0.00雪花

2012-5-2 00:29
3155

在内存中搜索kernel32.dll映像基址的方法,小弟只知道三种①暴力搜索堆栈②搜索PEB③搜索SEH链表,前两种,我觉着过于招摇了,尤其是第二种几乎刚刚写出来,就被杀了T_T。。。


第一种方法我很熟悉了,今天突然想用第三种方法实现以下,于是乎说做就做,实践中发现了一个小小的问题,在WIN7下搜索SEH链表,得到的是Ntdll.dll的基址,并不是Xp下的Kernel32.dll。为了让程序更健壮些,我加入了SEH异常处理函数,能够修正EIP使程序能够达到预期结果。。。


这里只列出了关键代码,具体的测试代码我放在附件里面了。求精华贴,求邀请码。。。


编译环境:VC6.0


关键代码如下:


DWORD dwHandlerAddress = (DWORD)ExceptionHandler;



LPVOID APIENTRY GetKernelBase()


{


        LPVOID lpModule = NULL;


        {


                _asm push ebp                                        //注册SEH,附加数据,原始EBP


                _asm push offset next                                //附加数据,安全代码区域


                _asm push dwHandlerAddress               


                _asm push fs:[0]                                      


                _asm mov fs:[0],esp


                _asm cld


                _asm xor esi,esi


                _asm mov esi,dword ptr fs:[0] //获取SEH链表地址


                _asm lookup:


                _asm lodsd                             


                _asm inc eax


                _asm je find


                _asm dec eax


                _asm xchg esi,eax


                _asm jmp short lookup


                _asm find:  


               _asm mov edi,dword ptr [esi]  


               _asm and edi,0xffff0000


               _asm start:


                _asm cmp word ptr [edi],0x5a4d  //判断内存模块是否为PE文件


                _asm jnz next


                _asm mov esi,edi


               _asm add esi,dword ptr ds:[esi+0x3c]


                   _asm cmp word ptr [esi],0x4550


                _asm jnz next


                _asm mov lpModule,edi


                _asm jmp short end       


                _asm next:


                _asm sub edi,0x10000


                _asm cmp edi,0x70000000


                _asm je end


                _asm jmp short start



[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费 6
支持
分享
赞赏记录
参与人
雪币
留言
时间
伟叔叔
为你点赞~
2024-5-31 04:36
心游尘世外
为你点赞~
2024-5-31 01:16
QinBeast
为你点赞~
2024-5-31 01:03
飘零丶
为你点赞~
2024-3-27 04:07
shinratensei
为你点赞~
2024-1-29 01:42
PLEBFE
为你点赞~
2023-3-7 00:44
最新回复 (4)
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
2
支持共享。。
2012-5-2 10:48
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我这里有个异常,一直没分析出来,请仁兄帮忙看看

Application Error

错误应用程序 ,版本 0.0.0.0,错误模块 unknown,版本 0.0.0.0,错误地址 0x00000000。

0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 46 61 69 6c   ion Fail
0010: 75 72 65 20 20 20 30 2e   ure   0.
0018: 30 2e 30 2e 30 20 69 6e   0.0.0 in
0020: 20 75 6e 6b 6e 6f 77 6e    unknown
0028: 20 30 2e 30 2e 30 2e 30    0.0.0.0
0030: 20 61 74 20 6f 66 66 73    at offs
0038: 65 74 20 30 30 30 30 30   et 00000
0040: 30 30 30                  000
2012-5-3 06:53
0
雪    币: 183
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
顶楼主一个!!学习了!
2012-5-3 09:28
0
雪    币: 297
活跃值: (280)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
5
mark,支持一个
2012-5-3 09:36
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册