win7-CreateRemoteThread返回非零值,WIN7 64位注入dll到explorer失败

问题描述

CreateRemoteThread返回非零值,WIN7 64位注入dll到explorer失败
2298为explorer的PID  DLL为64位

,process explorer查看不到explorer中有此DLL模块

// TODO: 在此添加控件通知处理程序代码

//This dll path should be relative to the target process or an absolute path
char* dll = "D:\ggg\TEST_TrayClock\x64Debug\TrayClockDll.dll";

//We need a handle to the process we will be injecting into
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 2298);
//Create the space needed for the dll we are going to be injecting
LPVOID lpSpace = (LPVOID)VirtualAllocEx(hProcess, NULL, strlen(dll), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);

//Write inject.dll to memory of process
int n = WriteProcessMemory(hProcess, lpSpace, dll, strlen(dll), NULL);

HMODULE hModule = GetModuleHandle(L"kernel32.dll");
LPVOID lpBaseAddress = (LPVOID)GetProcAddress(hModule,"LoadLibraryA");
//Create Remote Thread using the address to LoadLibraryA and the space for the DLL
HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)lpBaseAddress, lpSpace, NULL, NULL);

MessageBox(L"Inject");
//CDialogEx::OnOK();

解决方案

就你的需求来说,没有必要注入线程,windows shell接口允许你创建各种插件,光明正大。

解决方案二:

解决方案三:

类似软煤时间,将mytime.dll注入到exolorer

解决方案四:

你的相关dll是不是也都是64位的

解决方案五:

DLL是64位DLL,可通过全局钩子加到explorer中

时间: 2024-09-21 07:51:21

win7-CreateRemoteThread返回非零值,WIN7 64位注入dll到explorer失败的相关文章

电脑32位怎么换64位 32位win7系统怎么更换成64位

  32位win7系统怎么更换成64位:最近上网看到一些评论,问电脑32位怎么换64位,当然,对于电脑比较熟悉的朋友会觉得这个问题有些奇怪,但是对于很多初学者来说这确实是一个值得回答的问题,比如一些用户问到:电脑里安装的是32位旗舰版win7,家里的电脑内存是4G,据说换成64位能提高性能,问怎么更换? 其实32位换成64位不只是所谓的数字的改变,并不是把系统里面的32改成64就可以了.32位和64位系统的区别不仅仅是数字的变化,而是内核的区别. 因此,现在大家应该能明白,32位win7系统是无

vc6 0-vc6.0开发dll工程可以编译成64位的dll吗

问题描述 vc6.0开发dll工程可以编译成64位的dll吗 有谁知道用vc6开发的32位dll文件该怎么将它编译成64位的(有源码,cpp和hpp文件,没有dsp或者dsw,导入VS2005编译出错) 解决方案 查看项目属性里面有生成64位平台的选项

ubuntu 64位编译hadoop-2.6.0失败,网上看了好久,都没解决,大神速来解救

问题描述 ubuntu 64位编译hadoop-2.6.0失败,网上看了好久,都没解决,大神速来解救 [exec] CMake Error at /usr/local/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake:52 (MESSAGE): [exec] Could NOT find ZLIB [exec] Call Stack (most recent call first): [exec] /usr/local/sha

win7x64 dll注入-win7 64位dll注入到任务管理器

问题描述 win7 64位dll注入到任务管理器 我需要在win7 64位系统下将一个64位的dll注入到任务管理器,我安装了一个CBT钩子, 我打开任务管理器发现注入是没有问题的.但是当我点击任务管理器的<显示所有用户进程>的按钮后,发现任务管理器重新启动了,启动后的任务管理器就不能在用CBT钩子注入了.有没有高手帮助我解决这个问题. 解决方案 问题的原因是权限的问题,我在UAC开启的情况下,使用普通用户权限来安装钩子,打开任务管理器,任务管理器进程的权限和当前用户权限是一致的, 此时任务管

64位Win7系统真的比32位Win7快吗?

Windows 7有32位版本和64位版本,但是64位一定就比32位的运行速度快吗? 首先,相信选择64位Windows 7的网友中很有大比例是存储体大于或等于4GB的.如果在32位Win7下,可使用的内存显示为仅3.25G.那么其他的剩余内存跑到哪里去了?请继续往下看. 在32位元模式下的CPU,只能定址最大4GB的存储体,受制于此,32位元的操作系统也只能识别最大4GB的存储体,由于在系统中,除了内存之外,还有其他的存储设备,因此,真正可以供内存利用的存储体空间小于4GB,也就是我们看到的系

64位WIN7中禁用驱动程序签名强制

计算机硬件越来越白菜价,更多的人为了使用更高的配置,都用上了4G或者8G的内存,可惜32位的系统是无法支持4G以上内存的,大多数的朋友都换上了又炫又新鲜的64位win7系统,而由于64位的win7考虑了系统安全的问题,对于未有认证签名的驱动程序进行了限制安装,但是大多数使用了驱动文件的小程序不可能有数字签名认证的,难道我们就不能顺利的在64位win7上面使用我们之前的驱动程序了? 64位win7禁用驱动程序签名强制 其实想要在64位win7中使用未有签名的驱动程序还是有很多方法的,如上图中,开机

如何在32位系统下安装64位系统

  在论坛看到很多网友提问说32位系统下无法安装64位Windows7系统,这里推荐一个很简单的方法来在32位系统下安装64位系统. 32位系统可以是任意,比如XP,Vista,Windows7的32位. 64位系统同样可以是任意. 安装方法就是我们一直推荐的NT6安装,安装前请先检验文件的MD5值. 如今,估计只有用XP的才用GHOST版系统了吧?对于windows7与windows8我想大多数都是用原版了,不管怎么说官方的还是最干净最放心的,更何况安装速度也不慢了. 而32位与64位,32位

C# 32位程序访问64位系统注册表

原文:C# 32位程序访问64位系统注册表 我的上一篇文章已经阐述了"32位程序和64位程序在64位平台上读\写注册表的区别",那么接下来将要回答上篇所留下来的一个问题:32位程序如何访问64位系统注册表(即:64位程序所访问的注册表位置). 我们已经知道: ①:本机模式 64 位程序运行在纯模式下,并且访问键和存储在以下注册表子键中的值:HKEY_LOCAL_MACHINE\Software ②:32 位程序运行在 WOW64 模式下,并且访问键和值存储在以下注册表子项中:HKEY_

64位系统提示regsvr32.exe不兼容怎么办?

  我看一个教程,让运行一个命令注册dll运行库,可是提示:检查该模块是否与regsvr32.exe的X86(32位)或X64(64位)版本兼容,是什么问题? 提示错误是因为在64位系统中,运行Regsvr32注册DLL运行是的System32文件夹中的Regsvr32.exe,而这个文件是64位版本的,命令需要的是32位版本的Regsvr32,所以会提示出错. 在32位系统中,有system和system32两个文件夹,分别存放16位和32位的dll文件.按照32位的系统命名规则,64位应该有