首页
社区
课程
招聘
[求助]3Q之战,到底谁想干掉谁
发表于: 2010-11-8 23:34 4252

[求助]3Q之战,到底谁想干掉谁

2010-11-8 23:34
4252
1. 眼红某家的收入,长期进行预谋,然后 强jian 进去,见红,不给我见红我让你死!
2. 由浅入深的强jian, 先调戏,发现你不反抗,开始强jian,好,你反抗了,好那就让你反抗更加激烈,更猛烈的强jian,哈哈,你终于防卫过当了,这回你我都有错,你想告我,那请你三思后果,我死你也别想活。这招猛,我们大可学习着从中捞。
3. 内战挑起者,没有内战,哪来英雄,为了达到自己的企业目的,公然挑起内战,我管你好不容易打造起来的世界第三大,你越大就得分越多钱给我,否则我让你好看。它告某记者敲 诈,其实这世界上它最懂得敲 诈,百度说话了,这事情最明显不过了,结果呢,你又捅百度什么药品问题的把柄!

    我承认,我最早不该把隐私保护告诉数字公司,但是一个这样的安全的好东西怎么到了一个流氓手里就变成了流氓保护了呢?我把东西给你,自己退回家当农民,本来是很高兴能看到自己的思想会被发扬光大,结果呢?流氓扣肉出来了,太令人大跌眼镜了。然后呢,有人怀疑这是安全界的无间道4,借用一句话:“人在做,天在看”,我如果要上演无间道,我自己是今天早就乐呵呵的在那数钱了。
    然后呢,又想污蔑我从洋媚外了吗,你的钱哪里来的?风投哪里来的?你去问问微软,他被我之前的帖子攻击的时候,他乐意吗,正如你当年引入豺狼杀尽国内安全产业一样,我为什么不能联合外产,要说卖国,又是你给的榜样不是?
只能说一句,你今天的流氓行为完全是对以前的永不作恶的生死状的人格践踏,不仅如此你还践踏全国人民,pubwin4 是公安部办的,而里面的人说和你们经常探讨问题,你不觉得自己愧对公安部的信任和投资吗?
    当年我在北京,为了身边以前的上海的超大龄旧同事整天和我嚷嚷着没老婆,看他自己又没胆征友,我以个人名义代其征友,旁人误会无数,我都认了,你周某人敢认自己今天耍流氓了吗?推卸责任就算了,还想找替罪羊吧?什么寻找3Q之战的幕后导演,佩服其幻想能力,你自己导演出来的一切就这么轻易的推掉了?
    国家的大当家才刚从腾讯门口出来,你就公然骑到腾讯头上,怎么,后台**呀,今天看来屁点事都没有,真牛,我当然要超级佩服一把,另外我也超级佩服你的十万水军作战能力。
    虽然国家不治你,但我要奉劝一句,企业得来的形象不易,不要被自己的行为所牵连。是条汉子就自己承担了去。
    你想干掉别人,反过来倒说别人想干掉你!

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

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
它必败无疑。
2010-11-8 23:51
0
雪    币: 251
活跃值: (77)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
楼主和隐私保护器有很深的渊源
2010-11-9 01:07
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主的话仔细阅读后,一头雾水
是五毛
超级五毛
周的同学
马的哥们
都有点像
貌似很正义,但又证明不了任何东西
如果真想说明什么
大胆点站出来说嘛,何必搞的神秘的
2010-11-9 01:26
0
雪    币: 315
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
半年多以前,我把隐私保护告诉了数字公司,本来一个好好的隐私保护到了流氓手里就变样了,等我半年多不过问安全界的东西,看到堆栈溢出攻击太疯狂了,就想把堆栈防溢出技术拿出来交给某家,结果,我刚站出来发现互联网正在打战呢,开始的时候我不明就里,还说过隐私保护是好东西呀,怎么就打战了呢?结果流氓扣肉就出来了,让我无比鄙视它。
    好好的东西到了流氓手里完全就变成了流氓工具了,要是再拿到堆栈防溢出技术的话,那互联网不是完全就黑暗一片了?
    作为原先安全界的一分子,我个人坚决和流氓划清界线,而且今天,流氓使完坏了,好处还全捞到了,今天这样明天那样,你看看业外人士,早就说IT界全是流氓,IT界一向以高学历高收入被人称道,现在呢,好了,全变成流氓了,谁搞得?还不是那个打着安全旗号做流氓的名人搞得。
2010-11-9 08:13
0
雪    币: 162
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
一直不看好数字,不改流氓本色,看看国际上怎么看他就知道了,数字想上市,结果人家根本就不同意,说数字人品太差,早年跟雅虎,进来跟瑞星,金山,百度,可牛,遨游,腾讯。都想惹一下。
另外,隐私保护技术既然是你的,你也应该站出来说句话,在这里说没几个人能够看得到的。应该让大众看,大众都认为数字是安全产品,他们不知道数字是流氓出身,要不然为什么那么多人支持数字,就是因为他们不明就里。
2010-11-9 08:41
0
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
话说流氓永远是流氓!做的杀软也是流氓!
话说我昨天把一个木马名字从Hook_QQ_Passwd.exe改名字为MJ0011.exe,360杀毒居然就不查杀了!
话说《让360俯首称臣》,精彩,真是精彩!
2010-11-9 08:50
0
雪    币: 63
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
强烈围观,我只想知道我怎么才能找到合适的人选
2010-11-9 08:52
0
雪    币: 315
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
LS 这话说的玄乎,我说这话没有权威,找到我最早写这东西的代码库 SVN 真相就大白了,这要看有人有没有胆公布这个库了。
2010-11-9 08:55
0
雪    币: 315
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
#include "global.h"
#pragma hdrstop

#define NT_DEVICE_NAME                        L"\\Device\\SScnPt"
#define DOS_DEVICE_NAME                        L"\\DosDevices\\SScnPt"

NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath );
NTSTATUS DispatchCtrl(PDEVICE_OBJECT DeviceObject,PIRP Irp);
NTSTATUS DispatchNull(PDEVICE_OBJECT DeviceObject,PIRP Irp);
BOOLEAN  Hook();
void         GetEntryID();
void         EnableHook();
void         DisableHook();
HANDLE         WindowFromDC(HANDLE hdc);
HANDLE   ProcessIdFromWindow(HANDLE hWnd);
BOOLEAN         IsRemoteWindowDC(HANDLE hdc);
VOID         CreateProcessNotify(IN HANDLE  ParentId,IN HANDLE  ProcessId,IN BOOLEAN  Create );

#ifdef ALLOC_PRAGMA

#pragma alloc_text(INIT, DriverEntry)
#pragma alloc_text(PAGE, DispatchCtrl)
#pragma alloc_text(PAGE, DispatchNull)
#pragma alloc_text(PAGE, Hook)
#pragma alloc_text(PAGE, GetEntryID)
#pragma alloc_text(PAGE, EnableHook)
#pragma alloc_text(PAGE, DisableHook)
#pragma alloc_text(PAGE, WindowFromDC)
#pragma alloc_text(PAGE, ProcessIdFromWindow)
#pragma alloc_text(PAGE, IsRemoteWindowDC)
#pragma alloc_text(PAGE, CreateProcessNotify)

#endif

typedef struct _DEVICE_EXTENSION
{
        BOOLEAN                ShadowHooked;            // 是否已经下过钩子
        BOOLEAN     Protected;                        // 是否启用保护

        FAST_MUTEX        AccessMutex;                // 共享信息列表内存访问互斥
        ULONG                Reserved;
        ULONG                Reserved1;
} DEVICE_EXTENSION,*PDEVICE_EXTENSION;

PSERVICE_DESCRIPTOR_TABLE           KeServiceDescriptorTableShadow = NULL;
// 进程名字的 EPROCESS 内存偏移
PDEVICE_EXTENSION                                g_DeviceExtension          = NULL;

ULONG                                                        g_PebOffset                          = 0;

// 各函数入口ID条目
ULONG                                                        ulBitBltId                                 = 0;
ULONG                                                        ulStretchBltId           = 0;
ULONG                                                        ulQueryWindowId                         = 0;
ULONG                                                        ulCallOneParamId                 = 0;
ULONG                                                        ulWindowFromDcId                 = 0;

PFN_NtBitBlt                                        NtBitBlt                                 = NULL;
PFN_NtStretchBlt                                NtStretchBlt                         = NULL;
PFN_NtQueryWindow                                NtQueryWindow                         = NULL;
PFN_NtCallOneParam                                NtCallOneParam                         = NULL;

// 在内核启用 CallWindowProc 方式来调用查询

HANDLE WindowFromDC(HANDLE hdc)
{
        if(ulCallOneParamId && ulWindowFromDcId)
        {
                return NtCallOneParam(hdc,ulWindowFromDcId);
        }
        return 0;
}

HANDLE ProcessIdFromWindow(HANDLE hWnd)
{
        if(ulQueryWindowId && hWnd && hWnd != (HANDLE)-1)
        {
                return NtQueryWindow(hWnd,0); // 获取进程ID
        }
        return 0;
}

int Mine_NtBitBlt(HANDLE hDestDC,int nXDest,int nYDest,int nWidth,int nHeight,HANDLE hdcSrc,int nXSrc,int nYSrc,DWORD dwRop,DWORD Unknown,DWORD Unknown1)
{
        if(IsRemoteWindowDC(hdcSrc))
        {
                KdPrint(("进程 %d -> BitBlt 正在创建跨进程执行窗口截屏\n",PsGetCurrentProcessId()));
                return 0;
        }

        return NtBitBlt(hDestDC,nXDest,nYDest,nWidth,nHeight,hdcSrc,nXSrc,nYSrc,dwRop,Unknown,Unknown1);
}

int  Mine_NtStretchBlt(HANDLE hdcDest,int nXOriginDest,int nYOriginDest,int nWidthDest,int nHeightDest,HANDLE hdcSrc,int nXOriginSrc,int nYOriginSrc,int nWidthSrc,int nHeightSrc,DWORD dwRop,DWORD Unknown)
{
        if(IsRemoteWindowDC(hdcSrc))
        {
                KdPrint(("进程 %d  -> StretchBlt 正在创建跨进程执行窗口截屏\n",PsGetCurrentProcessId()));
                return 0;
        }

        return NtStretchBlt(hdcDest,nXOriginDest,nYOriginDest,nWidthDest,nHeightDest,hdcSrc,nXOriginSrc,nYOriginSrc,nWidthSrc,nHeightSrc,dwRop,Unknown);
}

NTSTATUS DispatchNull(PDEVICE_OBJECT DeviceObject,PIRP Irp)
{
        PAGED_CODE();

        Irp->IoStatus.Status                = STATUS_SUCCESS;
        Irp->IoStatus.Information        = 0;
        IoCompleteRequest(Irp,0);
        return STATUS_SUCCESS;
}

NTSTATUS DispatchCtrl(PDEVICE_OBJECT DeviceObject,PIRP Irp)
{

        PIO_STACK_LOCATION                IrpStack;
        NTSTATUS                                Status;
        ULONG                                        CtlCode;
        PUCHAR                                        Buffer;
        ULONG                                        InBufferLen;
        ULONG                                        OutBufferLen;
        PDEVICE_EXTENSION                DeviceExtension;
        PULONG                                        VolumnIndex;
        BOOLEAN                                        CanUnHook = FALSE;

        OBJECT_ATTRIBUTES                ObjAttr;
        PUNICODE_STRING         FileName;
        ULONG                                        FileNameLen;
        ULONG                                        TotalLen;
        PWCHAR                                        FileNameBuffer;

        PAGED_CODE();

        IrpStack = IoGetCurrentIrpStackLocation(Irp);

        Irp->IoStatus.Status                = STATUS_SUCCESS;
        Irp->IoStatus.Information        = 0;

        if(IrpStack->MajorFunction != IRP_MJ_DEVICE_CONTROL)
        {
                IoCompleteRequest(Irp,0);
                return STATUS_SUCCESS;
        }       

        CtlCode = IrpStack->Parameters.DeviceIoControl.IoControlCode;

        InBufferLen  = IrpStack->Parameters.DeviceIoControl.InputBufferLength;
        OutBufferLen = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;
        Buffer                = (PUCHAR)Irp->AssociatedIrp.SystemBuffer;

        DeviceExtension = (PDEVICE_EXTENSION)DeviceObject->DeviceExtension;

        switch(CtlCode)
        {
        case IOCTL_HOOK_SHADOW:
                if(OutBufferLen >= 1)
                {
                        // 在操作Shadow Table之前,应该要考虑当前进程是GUI界面进程
                        DeviceExtension->ShadowHooked = Hook();
                        Buffer[0] = (UCHAR)DeviceExtension->ShadowHooked;
                        Irp->IoStatus.Information = 1;
                }
                break;

        case IOCTL_IS_HOOKED:
                if(OutBufferLen >= 1)
                {
                        Buffer[0] = DeviceExtension->ShadowHooked;
                        Irp->IoStatus.Information = 1;
                }
                else
                {
                        Irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
                }
                break;

        default:
                break;

        }

        IoCompleteRequest(Irp,0);
        return STATUS_SUCCESS;
}

NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath )
{
        NTSTATUS                Status = STATUS_SUCCESS;
        UNICODE_STRING        DeviceName;
        PDEVICE_OBJECT        DeviceObject;
        UNICODE_STRING        LinkName;
        ULONG                        i;
        PDEVICE_EXTENSION  DeviceExtension;
        PUNICODE_STRING        ServicePacketString;

        HANDLE        hFile;
        PCHAR        pDllFile;
        ULONG   ulSize;
        ULONG   ulByteReaded;

        GetEntryID();

        RtlInitUnicodeString(&DeviceName,NT_DEVICE_NAME);

        Status = IoCreateDevice(DriverObject,sizeof(DEVICE_EXTENSION),&DeviceName,FILE_DEVICE_UNKNOWN,0,FALSE,&DeviceObject);

        if(NT_SUCCESS(Status))
        {
                RtlInitUnicodeString(&LinkName,DOS_DEVICE_NAME);

                Status = IoCreateSymbolicLink(&LinkName,&DeviceName);

                if(NT_SUCCESS(Status))
                {
                        g_DeviceExtension = DeviceExtension = (PDEVICE_EXTENSION)DeviceObject->DeviceExtension;
                        memset(DeviceExtension,0,sizeof(DEVICE_EXTENSION));

                        ExInitializeFastMutex(&DeviceExtension->AccessMutex);

                        for(i = 0; i<= IRP_MJ_MAXIMUM_FUNCTION; i++)
                        {
                                DriverObject->MajorFunction[i] = DispatchNull;
                        }

                        DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL]  = DispatchCtrl;

                        PsSetCreateProcessNotifyRoutine(CreateProcessNotify,FALSE);

                }
                else
                {
                        IoDeleteDevice(DeviceObject);
                        Status = STATUS_UNSUCCESSFUL;
                }
        }
        return Status;
}

BOOLEAN Hook()
{
        BOOLEAN                bRet = FALSE;
        NTSTATUS        Status;
        BOOLEAN                bTableAvabile = FALSE;

        if(!KeServiceDescriptorTableShadow)
        {
                KdPrint((" ShadowTable Get Failed \n"));
                return FALSE;
        }
        else
        {
                // 校验地址是否正确
                try
                {
                        if(MmIsAddressValid(KeServiceDescriptorTableShadow))
                        {
                                bTableAvabile = TRUE;
                        }
                }
                __except(EXCEPTION_EXECUTE_HANDLER)
                {
                }

                if(!bTableAvabile) return bRet;

                if( ulBitBltId && ulStretchBltId && ulQueryWindowId && ulCallOneParamId )
                {
                        try
                        {
                                NtQueryWindow                         = (PFN_NtQueryWindow)KeServiceDescriptorTableShadow->win32k.TableBase[ulQueryWindowId];
                                NtCallOneParam                         = (PFN_NtCallOneParam)KeServiceDescriptorTableShadow->win32k.TableBase[ulCallOneParamId];
                               
                                EnableHook();
                               
                                NtBitBlt                                        = (PFN_NtBitBlt)InterlockedExchange(
                                        (PLONG)&KeServiceDescriptorTableShadow->win32k.TableBase[ulBitBltId],
                                        (LONG)Mine_NtBitBlt);
                               
                                NtStretchBlt                                = (PFN_NtStretchBlt) InterlockedExchange(
                                        (PLONG)&KeServiceDescriptorTableShadow->win32k.TableBase[ulStretchBltId],
                                        (LONG)Mine_NtStretchBlt);
                               
                                DisableHook();

                                bRet = TRUE;
                        }
                        __except(EXCEPTION_EXECUTE_HANDLER)
                        {
                        }
                }
               
        }

        return bRet;
}

void EnableHook()
{
        __asm
        {
                cli;
                mov                eax, cr0;
                and                eax, not 10000h;
                mov                cr0, eax;
        }
}

void DisableHook()
{
        __asm
        {
                mov     eax, cr0;
                or      eax, 10000h;
                mov     cr0, eax;
                sti;
        }
}

// 本驱动适用于 Windows XP 以后系统,因此使用RtlGetVersion来获取操作系统版本

BOOLEAN IsRemoteWindowDC(HANDLE hdc)
{
        BOOLEAN                                bRet = FALSE;
        HANDLE                                ProcessHandle;
        HANDLE                                ProcessId;
        HANDLE                                CurrentProcessId;
        CLIENT_ID                        ClientId;
        OBJECT_ATTRIBUTES        ObjectAttributes;
        NTSTATUS                        Status;

        HANDLE hWnd = WindowFromDC(hdc);
        if(hWnd)
        {
                ProcessId = ProcessIdFromWindow(hWnd);
                CurrentProcessId = PsGetCurrentProcessId();
                if(CurrentProcessId && ProcessId && ProcessId != CurrentProcessId)
                {
                        bRet = TRUE;
                }
        }
        return bRet;
}
2010-11-9 09:02
0
雪    币: 315
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
公布驱动中的某部分代码
2010-11-9 09:04
0
雪    币: 315
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
期待某人站出来,公布最后的 SVN 源码库!
2010-11-9 09:07
0
雪    币: 218
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
从大动干戈到最后的息事宁人,我感觉这不过就是纯粹的炒作,完了之后,还是各干各的,最无辜的还是我们这些网民。
2010-11-9 10:04
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
期待看到 精彩的回复
2010-11-9 10:04
0
雪    币: 242
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
多年以后再回望3Q之战会很有feel的
2010-11-9 10:12
0
游客
登录 | 注册 方可回帖
返回
//