• 《阿古顿巴》藏语版在藏语卫视首播 2019-09-06
  • 晋中市“三同步”推动互联网治理创新 2019-08-27
  • 法媒:研究称美国人常用药物或增加抑郁风险 2019-08-27
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 今日体彩p3全部藏机图:菜鸟之驱动开发4

    来源:本网整理

    彩票双色球历史开奖结果 www.s9h6.com 在上一节,我们学到了如何读取SSDT表中函数的当前地址与系统地址, 有了这两个地址我们就可以判断该函数是否被inline hook了, 如果NSOpenProcess被hook了,那么我们就无法用od对进程进行载入,从而不能分析之。今天教大家如何绕过它,从而使其可以被od载入,从而被分析。

    其原理就是在函数当前地址进行强制调转到系统地址。我们可以用kernel detect这个工具轻松绕过函数的HOOK,但那样没有技术含量, 做为程序员,得写代码。原理就是修改SSDT表,使其函数不被hook.   我们只需要在上一节代码里,驱动入口函数加入以下代码即可。

    ULONG cur_Addr,old_Addr;
    	JMPCODE jmpCode;
    	
        KdPrint(("Hello Driver World 驱动加载成功"));
    	cur_Addr = asmReadSSDT();
    	old_Addr = cReadSSDT();
    	
    	if (cur_Addr != old_Addr)
    	{
    		KdPrint(("Have be hooked!"));
    		
    	    //保存当前地址前5字节指今
    		curCode = (PJMPCODE)cur_Addr;
    		oldCode.E9 = curCode->E9;
    		oldCode.JMPADDR = curCode->JMPADDR;
    		
    		//初始化跳转指令
    		jmpCode.E9 = 0xE9;
    		jmpCode.JMPADDR = cur_Addr - old_Addr - 5;
    		
    		__asm //去掉页面?;?		{
    			cli
    			mov eax,cr0
    			and eax,not 10000h //and eax,0FFFEFFFFh
    			mov cr0,eax
    
    		}
    
    		//用初始化的跳转指令修改当前地址的指令
    		curCode->E9 = jmpCode.E9;
    		curCode->JMPADDR = jmpCode.JMPADDR;
    		
    		
    		__asm //恢复页?;?		 {
    			mov eax,cr0
    			or  eax,10000h //or eax,not 0FFFEFFFFh
    			mov cr0,eax
    			sti
    		 }
    	}
    	


    因为SSDT是受?;さ?,所以在修改之前我们要把cr0的CW位置为0(cr0寄存器是32位的,CW是它的第17位,为1则页面受?;?,为0则可修改),修改之后要还原之。

    在驱动卸载的时候,要记得还原我们的SSDT,还原的时候注意同样是修改SSDT,所以同样要操作cr0.

    因为我们采用C语言的方式开发的, 所以在声明变量的时候要放在方法的入口处,不然编译不过。如果你喜欢用C++的方式开发,要记得用extern "C", 因为内核是不是C++写的,extern "C"做什么,网上有答案。

     

    具体参看完整源码。

    $(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
    原文链接://blog.csdn.net/favormm/article/details/6696709

  • 本文相关:
  • NSString去除两边空格字符,like trim()
  • xcode编译环境配置
  • 自定义Xcode模板
  • Windows键盘对应苹果的Option键
  • iphone设置非阻塞模式socket两种方法
  • MMORPG战斗系统设计(1)——战斗系统概述
  • UITextField垂直居中对齐
  • 如何使iOS地图加Annotation有从空中掉下来的效果
  • iOS5 ARC学习笔记
  • 修改UISearchBar背景
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 彩票双色球历史开奖结果 - 频道导航
    Copyright © 2017 彩票双色球历史开奖结果 www.s9h6.com All Rights Reserved
  • 《阿古顿巴》藏语版在藏语卫视首播 2019-09-06
  • 晋中市“三同步”推动互联网治理创新 2019-08-27
  • 法媒:研究称美国人常用药物或增加抑郁风险 2019-08-27
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 正版(四不像)一肖中特看图找生肖 500元 倍投方案 稳赚 1分时时彩是统一开奖吗 乐赚平台是真的吗 新疆25选7几点开奖 36选7第2019026开奖结果 11选5前二组选 31选7中几个有奖 湖北11选5胆拖表 i北京快三开奖走势图 广东十一选五开奖结果查询 天天捕鱼达人 pc蛋蛋28天涯 上海网上真钱斗地主 波色及波路提示