| 网站首页 | 范文 | 演讲致词 | 汇报体会 | 总结报告 | 公文方案 | 领导讲话 | 党建工会 | 论文 | 文档 | 书信 | 
您现在的位置: 范文大全网 >> 论文 >> 计算机论文 >> 正文 用户登录 新用户注册
Windows2003 内核级进程隐藏、侦测技术           
Windows2003 内核级进程隐藏、侦测技术
illist(&psactiveprocesshead,&process->activeprocesslinks);
当进程结束的时候,该进程的eprocess结构当从活动进程链上摘除。(但是eprocess结构不一定就马上释放)。
在pspexitprocess内核api中能清晰的找到:
removeentrylist(&process->activeprocesslinks);
所以我们完全可以利用活动进程链表来对进程进行枚举。
4. 进程枚举检测hook ssdt隐藏的进程。
事实上nactive api zwquerysysteminformation 对进程查询也是找到活动进程链表头,然后遍历活动进程链。最后把每一个eprocess中包含的基本信息返回(包括进程id名字等)。所以用遍历活动进程链表的办法能有效的把hook ssdt进行隐藏的进程轻而易举的查出来。但是psactiveprocesshead并没被ntoskrnl.exe 导出来,所以我们可以利用硬编码的办法,来解决这个问题。利用内核调试器livekd查得psactiveprocesshead的地址为: 0x8046e460.(在2000 sp4中得到的值)
kd> dd psactiveprocesshead l 2
dd psactiveprocesshead l 2
8046e460 81829780 ff2f4c80
plist_entry psactiveprocesshead = (plist_entry)0x8046e460;
void displaylist()
{
plist_entry list = psactiveprocesshead->blink;
while( list != psactiveprocesshead )
{
char* name = ((char*)list-0xa0)+0x1fc;
dbgprint("name = %s\n",name);
list=list->blink;
}
}
首先把list指向表头后的第一个元素。然后减去0xa0,因为这个时候list指向的并不是eprocess块的头,而是指向的它的activeprocesslinks成员结构,而activeprocesslinks在eprocess中的偏移量是0xa0,所以需要减去这么多,得到eprocess的头部。在eprocess偏移0x1fc处是进程的名字信息,所以再加上0x1fc得到进程名字,并且在dbgview中打印出来。利用hook ssdt隐藏的进程很容易就被查出来了。
5. 解决硬编码问题。
在上面我们的psactiveprocesshead是通过硬编码的形式得到的,在不同的系统中这值不一样。在不同的sp版本中这个值一般也不一样。这就给程序的通用性带来了很大的问题。下面就来解决这个psactiveprocesshead的硬编码的问题。
ntoskrnl.exe导出的psinitialsystemprocess 是一个指向system进程的eprocess。这个结构成员eprocess.activeprocesslinks.blink就是指向psactiveprocesshead的.
kd> dd psinitialsystemprocess l 1
dd psinitialsystemprocess l 1
8046e450 818296e0
kd> !process 818296e0 0
!process 818296e0 0
process 818296e0 sessionid: 0 cid: 0008 peb: 00000000 parentcid: 0000
dirbase: 00030000 objecttable: 8185d148 tablesize: 141.
image: system
可以看出由psinitialsystemprocess得到的818296e0正是指向system的eprocess.
kd> dd 818296e0+0xa0 l 2
dd 818296e0+0xa0 l 2
81829780 814d1a00 8046e460
上面又可以看出system eprocess的activeprocesslinks域的blink指向8046e460正好就是我们的psactiveprocesshead.
6. 删除活动进程链表实现进程隐藏
由于windows是基于线程调度的。所以如果我们把要隐藏的进程的eprocess块从活动进程链上摘除,就能有效的绕过基于通过活动进程链表检测进程的防御系统。因为是以线程为基本单位进行调度,所以摘除过后并不影响隐藏进程的线程调度。
void delprocesslist()
{
plist_entry list = psactiveprocesshead->blink;
while( list != psactiveprocesshead )
{
char* name = ((char*)list-0xa0)+0x1fc;

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

  • 上一个论文:

  • 下一个论文:


  • 看了《Windows2003 内核级进程隐藏、侦测技术》的网友还看了:
    [免费范文]LabWindows/CVI的应用特点
    [免费范文]基于RRAS与虚拟专用网技术在Windows中的实现
    [今日更新]巧用PowerPoint制作高中化学多媒体课件
    [今日更新]植树节英语作文:Planting Trees(植树)
    [今日更新]植树节英语作文:Planting Trees 植树
    [今日更新]基于WinCE的嵌入式网络通信系统设计
    [今日更新]基于McWill通信技术的油气智能测控系统
    [今日更新]Windows8是微软的翻身之战
    [今日更新]Windows8 LOGO发布,经典Windows LOGO回顾
    [今日更新]见招拆招 Win8使用无难题

    计算机论文
    普通论文国内外光纤光缆现状及发展趋势
    普通论文浅谈我国网络文化的现状及管理
    普通论文计算机网络管理维护探讨
    普通论文基于J2EE平台软件开发特点综
    普通论文Cisco路由器交换机的技术应用
    普通论文试论高职院校计算机应用基础课程
    普通论文虚拟专用网在企业中的应用
    普通论文试论中职学校《计算机应用基础》
    普通论文多媒体网络教学课件的优化设计
    普通论文试论青少年网络道德教育存在的问
    普通论文硬盘物理地址与逻辑地址的转换方
    普通论文论计算机网络管理技术初探
    论文
    普通论文[经济论文]浅谈新农村建设中农村公
    普通论文[经济论文]循环经济在煤矿企业修旧
    普通论文[今日更新]试论我国证券市场QFI
    普通论文[免费范文]街道办事处党工委书记XX
    普通论文[今日更新]新形势下农林院校物理学
    普通论文[免费范文]关于人力三轮车非法营运
    普通论文[今日更新]试论违反合作原则导致的
    普通论文[今日更新]论执政组织文化的内涵建
    范文大全
    普通范文[零八零一]环卫系统班长竞职演讲稿
    普通范文[范文大全]提升司法警察素质思考建
    普通范文[范文大全]对人事局干部作风建设的
    普通范文[先进性教育]保持*党员先进性教育心得
    普通范文[零八零一]-幼儿园宣传工作计划
    普通范文[先进性教育]党的先进性教育是具体的
    普通范文[范文大全]县贯彻落实《植物检疫条
    普通范文[范文大全]执法先进个人事迹材料
    演讲致词
    普通演讲[主持词]药监局创建和谐单位暨庆祝
    普通演讲[会议发言稿]中考百日誓师大会教师发言
    普通演讲[节日祝福语]中学生有关(Tomb
    普通演讲[主持词]庆国庆、贺中秋晚会主持词
    普通演讲[庆典致辞]护士节致词
    普通演讲[会议发言稿]在全县第二批先进性教育骨
    工作范文
    普通公文方案[企划方案]硬件展示策划书
    普通公文方案[公文写作]县级骨干教师述职报告(1)
    普通公文方案[公文写作]税务系统联欢会开场白
    普通汇报体会[征文演讲]2011年烟草企业三讲教育比
    普通公文方案[公文写作]幼儿园新教师成长计划
    普通总结[个人总结]电气试用期工作总结
    普通汇报体会[先进事迹材料]优秀教师推荐材料
    普通公文方案[公文写作]县运输管理所五整顿三加强
    普通总结[工作总结]推行校务公开制度工作总结
    普通党建工会[记要]小学体育教学个人工作总结
    普通总结[工作总结]县政协机关创建文明单位工
    普通汇报体会[先进事迹材料]镇纪检书记廉洁从政先进事