首页
社区
课程
招聘
[求助][求助]win7下使用NtCreateRemoteThreadEx远程注入的问题。
发表于: 2013-7-11 17:17 18151

[求助][求助]win7下使用NtCreateRemoteThreadEx远程注入的问题。

2013-7-11 17:17
18151
[QUOTE][/QUOTE]我是看了Koma大大关于在win7下的注入(http://blog.csdn.net/wangningyu/article/details/6456607)的文章写的,用的也是NtCreateThreadEx函数。但是出现了一个奇怪的问题。代码如下:

((NtCreateThreadEx)pFunc)(&hRmoteThread,  
      0x1FFFFF,  
      NULL,  
      hProcess,  
      pThreadProc,  
      pRemoteBuf,  
      FALSE,  
      NULL,  
      NULL,  
      NULL,  
      NULL);  
    if( hRmoteThread == NULL )  
    {  
      printf("MyCreateRemoteThread() : NtCreateThreadEx() 调用失败!错误代码: [%d]\n", GetLastError());  
      return FALSE;  
    }  


但是执行完这里的时候,没有获取到线程句柄,线程句柄为NULL,但是打印出来的错误码是0.是0不是正确吗???
有提升权限,管理员权限执行,但是都不行啊。。
这是什么情况啊,求大大解释。。。。。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (27)
雪    币: 384
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
NtCreateRemoteThreadEx
2013-7-11 17:49
0
雪    币: 6553
活跃值: (4351)
能力值: ( LV10,RANK:163 )
在线值:
发帖
回帖
粉丝
3
如果是win7 x64,CreateRemoteThread不成功,请在Openprocess的时候使用PROCESS_ALL_ACCESS
2013-7-11 17:53
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
NtCreateThreadEx不是该有一个返回值吗
2013-7-11 18:35
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我就是用的这个函数啊,就是这个函数执行错误。
2013-7-12 10:45
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我打开进程的时候就是用的这个属性。还是错误,而且很奇葩,错误码打印出来是0,错误码为0 该正确才对啊。
2013-7-12 11:29
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
的确有一个返回值,但是那个返回值不是开启的线程句柄,现在句柄在一个out参数里面,所以我就没用这个返回值。但是最后执行完这个函数,发现out的那个线程句柄为NULL,就是没开启成功,但是错误码为0 啊。。。。求指点。
2013-7-12 11:32
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
NTSTATUS系列函数返回值为0都是成功的吧,或者说你线程创建完后看NtTerminateThread成功与否
2013-7-12 14:39
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
的确返回值是0,但是为什么获取到的线程句柄会为NULL呢?
2013-7-12 15:00
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
10
待会去反来看看,个人估计原因应该是:1.同异步/2.创建的线程不在本进程
2013-7-12 15:08
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我上传了附件,求大大帮忙看看。。。。
2013-7-12 15:44
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
12
调试了N++遍两个函数都能获取hThread
而且你的代码不太规范,好像这句:CloseHandle(hModule) //kernel32.dll,你想干嘛?
2013-7-12 17:03
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
。。。。我的机子上就不成功。。。,的确代码有点乱。以后改哈。。
2013-7-12 20:09
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
14
暂时分析到nt!PspInsertThread,你在nt!PspInsertThread+0x66e(偏移都一样的吧)下个断看看,两个cmp应该有一个会小于0;我认为可能有函数被hook了。
2013-7-13 09:48
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
恩恩,好的,看来只有慢慢来解决了。。。
2013-7-13 21:38
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
16
其实你可以把内核发上来,替换内核后应该也同样有这种情况。
2013-7-14 08:44
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
小菜技术还不够,还没设计到过内核,不知道该怎么办啊。。。。
2013-7-14 08:54
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
18
就是\system32\ntkrnlpa .exe,有了文件分析容易多了
2013-7-14 11:18
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
搜索系统文件夹,居然没得这个。。。。怎么办?
2013-7-14 14:34
0
雪    币: 154
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
20
确定hProcess有PROCESS_ALL_ACCESS权限
NtCreateThreadEx(&hRemoteThread,THREAD_ALL_ACCESS,NULL,hProcess,&LoadLibraryW,pvRemoteBuffer,0,0,0,0,NULL);
不成功你抽我。
2013-7-14 14:43
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,ProcessID);
我打开进程的函数是这么写的,真心是PROCESS_ALL_ACCESS啊。。。
2013-7-14 15:19
0
雪    币: 171
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
兄弟问题解决了吗?我也遇到了同样的问题啊,openprocess返回为null,你是怎么解决的啊?
2013-10-11 06:13
0
雪    币: 110
活跃值: (204)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
我在自己电脑上运行你的程序注入自己写的dll和你写的dll都能成功啊,win7  32位,运行没问题
2013-10-11 17:43
0
雪    币: 86
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
我的是64位。所以可能函数不一样了,安全性变高了。
2013-10-23 12:45
0
雪    币: 41
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
目标进程是64位,需要Injector和Dll都是64位。目标进程是32位,需要Injector和Dll都是32位。
2019-3-12 16:46
1
游客
登录 | 注册 方可回帖
返回
//