首页
社区
课程
招聘
[注意]重启N次终于拿到NP的dump_wmimmc.sys文件了
发表于: 2007-5-7 14:47 23866

[注意]重启N次终于拿到NP的dump_wmimmc.sys文件了

2007-5-7 14:47
23866

NP太无耻,softice一起动就玩玩了,如此蛮横的东东岂能容它在俺的机器上。。。。只是俺水平太差,

   为了安全起见,随便把个什么驱动改名为dump_wmimmc.sys,用osrload加载起来,把它的坑占了,这样它就发不成标了,可以放心下断点了。

   这家伙不停的CreateFile,WriteFile,CloseHandle,和DeleteFile那个文件。但是它有个特SB的地方:WriteFile。它想把文件全写0!比我还傻!!!

   先bpx DeleteFileA do "d *(esp+4)", 找dump_wmimmc.sys的。往下走几步就看到WriteFile,closeHanlde,DeleteFile等。在WriteFile那行下断点。
   bpx XXXX if (**(ebp-130) != 0 ) do "d *(ebp-130)"

   这样就停下来的时候就看到熟悉的MZ.....的了,这时候走完CloseHandle后把它搞死就可以了(乱改EIP什么的,总之让他出错退出就可以了)。看看c:\windows\system32\drivers\ .拿文件。

   原文件没有秘密。想怎么看就怎么看了。俺没权限,文件上传不了。


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

收藏
免费 7
支持
分享
最新回复 (22)
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
现在它不会删自己了,直接能拿到
2007-5-12 17:55
0
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
3
but...
2007-5-12 18:09
0
雪    币: 238
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
NP是什么东西?能不能不要说这么专业的术语。俺还不知道。
2007-5-12 18:18
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不行啊,你改拉,它有把你的改回去拉
楼主你有源代码能不能发给我啊
我的邮箱是hgf_3@sohu.com
谢谢啊
2007-5-18 11:54
0
雪    币: 243
活跃值: (274)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
小心蓝屏啊.
2007-5-18 15:38
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼主啊,能不能把你的代码也给我发一下!
邮箱jtg1583@gmail.com!
谢谢啦!
2007-8-17 22:03
0
雪    币: 205
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
NP就是nProtect GameGuard

像什么冒险岛、奇迹等等很多游戏都用它来反外挂~~
它看见外挂啊、调试器啊,就跟见了杀父仇人似的~~
所以一般情况,都不太喜欢它。。。
2007-8-19 18:50
0
雪    币: 163
活跃值: (60)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
9
这种问题在驱动里来坐可能会简单点比如我是这样搞的:
先 PsSetLoadImageNotifyRoutine(Load_Image_Notify_Routine);
然后下面是处理函数

VOID Load_Image_Notify_Routine(
                                                           IN PUNICODE_STRING  FullImageName,
                                                           IN HANDLE  ProcessId, // where image is mapped
                                                           IN PIMAGE_INFO  ImageInfo
                                                           )
{
        int        nRetCode = FALSE;
        ULONG EntryPoint = 0;
        NTSTATUS status = STATUS_UNSUCCESSFUL;
        KFile        File;
        WCHAR        wszFileName[MAX_PATH_LEN], *pwsz = NULL;

       
       
                if (ImageInfo->SystemModeImage)
                {
                        if (IsAddressValid((ULONG)FullImageName, sizeof(UNICODE_STRING)))
                        {
                                DbgPrint("LoadSystemImgae: %ws\r\n", FullImageName->Buffer);

                        }
                       
                        pwsz = wcsrchr(FullImageName->Buffer, L'\\');
                        PROCESS_ERROR(pwsz);
                       
                        if (!_wcsnicmp(pwsz, L"\\dump_wmimmc.sys", 16))
                        {
                                DbgPrint("dump_wmimmc.sys detected.\n");
                                nRetCode = US2W(FullImageName, wszFileName, MAX_PATH_LEN);
                                PROCESS_ERROR(nRetCode);
                               
                                wcscat(wszFileName, L".dump");

                                nRetCode = File.OpenFile(FullImageName, GENERIC_READ);
                                PROCESS_ERROR(nRetCode);

                                nRetCode = File.CopyToFile(wszFileName);
                                File.Close();
                        }
                       
       
                }

Exit0:
        return ;
}
2007-12-12 15:21
0
雪    币: 1657
活跃值: (291)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
10
哈哈~~~~这个玩意~~~~拿到有什么用呢~~现在不照样把它干掉,很早就被人黑掉了,现在我也学会了哈哈~~~
2007-12-12 15:30
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
aaaaaaaaaaaaaaaaaaaaa,
我还在去里雾里............................
2007-12-23 01:28
0
雪    币: 403
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我倒  说的太专业了  看不明白
2007-12-24 19:38
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
怎么干掉的,请教下啊。我想知道。
2007-12-26 13:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
NP本来是来防病毒的,可是韩国人居然拿来防护游戏外挂~~晕死
2008-1-19 01:27
0
雪    币: 213
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
想知道....
2008-3-7 17:20
0
雪    币: 202
活跃值: (151)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
不教教我们,发发资料么?还是 堕落天才 说的那些原理?
2008-3-16 01:34
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
17
不是从资源释放中可以直接拦截么,现在变了么
2008-3-16 10:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
要这么复杂吗?
使用一些安全软件,或者自己先拦截驱动加载过程. dump_wmimmc.sys不是轻易拿到了吗?
我拿到此文件的NP版本是1121, 此文件没加密, 181,888 字节
以下是IDA反汇编代码:
INIT:00019C76                 push    ebp
INIT:00019C77                 mov     ebp, esp
INIT:00019C79                 sub     esp, 38h
INIT:00019C7C                 push    ebx
INIT:00019C7D                 push    esi
INIT:00019C7E                 push    edi
INIT:00019C7F                 push    offset SourceString ; "\\Device\\dump_wmimmc"
INIT:00019C84                 lea     eax, [ebp+DestinationString]
INIT:00019C87                 push    eax             ; DestinationString
INIT:00019C88                 call    ds:RtlInitUnicodeString
INIT:00019C8E                 push    offset aDosdevicesDump ; "\\DosDevices\\dump_wmimmc"
INIT:00019C93                 lea     ecx, [ebp+SymbolicLinkName]
INIT:00019C96                 push    ecx             ; DestinationString
INIT:00019C97                 call    ds:RtlInitUnicodeString
INIT:00019C9D                 lea     edx, [ebp+DeviceObject]
INIT:00019CA0                 push    edx             ; DeviceObject
INIT:00019CA1                 push    0               ; Exclusive
INIT:00019CA3                 push    100h            ; DeviceCharacteristics
INIT:00019CA8                 push    8402h           ; DeviceType
INIT:00019CAD                 lea     eax, [ebp+DestinationString]
INIT:00019CB0                 push    eax             ; DeviceName
INIT:00019CB1                 push    444h            ; DeviceExtensionSize
INIT:00019CB6                 mov     ecx, [ebp+DriverObject]
INIT:00019CB9                 push    ecx             ; DriverObject
INIT:00019CBA                 call    ds:IoCreateDevice
INIT:00019CC0                 mov     [ebp+var_30], eax
INIT:00019CC3                 cmp     [ebp+var_30], 0
INIT:00019CC7                 jl      short loc_19D12
INIT:00019CC9                 lea     edx, [ebp+DestinationString]
INIT:00019CCC                 push    edx             ; DeviceName
INIT:00019CCD                 lea     eax, [ebp+SymbolicLinkName]
INIT:00019CD0                 push    eax             ; SymbolicLinkName
INIT:00019CD1                 call    ds:IoCreateSymbolicLink
INIT:00019CD7                 mov     [ebp+var_30], eax
INIT:00019CDA                 mov     ecx, [ebp+DriverObject]
INIT:00019CDD                 mov     dword ptr [ecx+70h], offset sub_16510
INIT:00019CE4                 mov     edx, [ebp+DriverObject]
INIT:00019CE7                 mov     eax, [ebp+DriverObject]
INIT:00019CEA                 mov     ecx, [eax+70h]
INIT:00019CED                 mov     [edx+40h], ecx
INIT:00019CF0                 mov     edx, [ebp+DriverObject]
INIT:00019CF3                 mov     eax, [ebp+DriverObject]
INIT:00019CF6                 mov     ecx, [eax+40h]
INIT:00019CF9                 mov     [edx+38h], ecx
INIT:00019CFC                 mov     edx, [ebp+DriverObject]
INIT:00019CFF                 mov     eax, [ebp+DriverObject]
INIT:00019D02                 mov     ecx, [eax+38h]
INIT:00019D05                 mov     [edx+78h], ecx
INIT:00019D08                 mov     edx, [ebp+DriverObject]
INIT:00019D0B                 mov     dword ptr [edx+34h], offset sub_16600
INIT:00019D12
INIT:00019D12 loc_19D12:                              ; CODE XREF: start+51j
INIT:00019D12                 cmp     [ebp+var_30], 0
INIT:00019D16                 jge     short loc_19D3A
INIT:00019D18                 cmp     [ebp+DeviceObject], 0
INIT:00019D1C                 jz      short loc_19D28
INIT:00019D1E                 mov     eax, [ebp+DeviceObject]
INIT:00019D21                 push    eax             ; DeviceObject
INIT:00019D22                 call    ds:IoDeleteDevice
INIT:00019D28
INIT:00019D28 loc_19D28:                              ; CODE XREF: start+A6j
INIT:00019D28                 lea     ecx, [ebp+SymbolicLinkName]
INIT:00019D2B                 push    ecx             ; SymbolicLinkName
INIT:00019D2C                 call    ds:IoDeleteSymbolicLink
INIT:00019D32                 mov     eax, [ebp+var_30]
INIT:00019D35                 jmp     loc_1A1EA
INIT:00019D3A ; ---------------------------------------------------------------------------
INIT:00019D3A
INIT:00019D3A loc_19D3A:                              ; CODE XREF: start+A0j
INIT:00019D3A                 push    2000h           ; NumberOfBytes
INIT:00019D3F                 call    ds:MmAllocateNonCachedMemory
INIT:00019D45                 mov     dword_17B98, eax
INIT:00019D4A                 cmp     dword_17B98, 0
INIT:00019D51                 jnz     short loc_19D5D
INIT:00019D53                 mov     eax, 0C000009Ah
INIT:00019D58                 jmp     loc_1A1EA
INIT:00019D5D ; ---------------------------------------------------------------------------
INIT:00019D5D
INIT:00019D5D loc_19D5D:                              ; CODE XREF: start+DBj
INIT:00019D5D                 jmp     near ptr 3C676h
省略. 

声明本人虽然已对此版本的NP进行了逆向分析,但仅出于技术角度,并没去用于木马,外挂.此目的朋友可不要来找我,呵呵
2008-3-19 01:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
NP本来是来防病毒的,可是韩国人居然拿来防护游戏外挂~~晕死
2008-3-22 17:01
0
雪    币: 215
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我想知道怎么调用别人的驱动来保护自己的程序。。见过拿ICESWORD驱动隐藏自己程序的
2008-4-11 02:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
牛人,强烈膜拜。。。。
2008-4-12 11:19
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
好像经常看到有人出很高的价钱破解NP
2008-4-12 16:26
0
雪    币: 381
活跃值: (140)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
23
前些天我在调试时,不小心U盘的资料就被这个给删光了,还好U盘只有512M,不到一分钟就把数据恢复了!这玩意很邪恶,很有意思,值得深究啊
2008-4-18 09:58
0
游客
登录 | 注册 方可回帖
返回
//