社区
进程/线程/DLL
帖子详情
如何将我的一个线程映射到别的程序的地址空间里?
weiwenbing
2000-05-26 09:48:00
1.怎么把我自己的一个线程映射到一个正在运行的程序的地址空间里?
希望哪位高手能指点迷津!!请说得详细一点,包括用哪个函数,函数中的
各个参数又如何获得.
2.我以前听说CreateRemoteThread()可以,但是其中的第
一个参数--程序的进程ID我不知道怎样得到.因此请说得尽量详细点,谢谢!!!
...全文
237
6
打赏
收藏
如何将我的一个线程映射到别的程序的地址空间里?
1.怎么把我自己的一个线程映射到一个正在运行的程序的地址空间里? 希望哪位高手能指点迷津!!请说得详细一点,包括用哪个函数,函数中的 各个参数又如何获得. 2.我以前听说CreateRemoteThread()可以,但是其中的第 一个参数--程序的进程ID我不知道怎样得到.因此请说得尽量详细点,谢谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wjf
2000-05-29
打赏
举报
回复
获得另一个进程的ID可以通过查询注册表中的信息;
BO2K原代码中有着方面的内容;下载一个看看应该有启发;
weiwenbing
2000-05-28
打赏
举报
回复
fupf88,万分感激你耐心的帮助,不管这个问题能不能解决,我都非常感谢你.
等到没人回复这个问题时,我再发分给大家.
fupf88
2000-05-27
打赏
举报
回复
找不到吗?这本书很有名的啊?
其实我也是一知半解,纸上谈兵而已,姑且抄抄书吧:)
16位WINDOWS操作系统所有进程运行在一个地址空间里,所以可以用SetWindowLong来把窗口的内存块中的窗口地址改为新的(你自己的)WndProc,但WIN32地址空间独立,SetWindowLong调用将被简单忽略,所以必须想法把你的子类代码放入另一个进程的地址空间,这种技术称之为向一个进程的地址空间注入一个DLL,然后就可以SetWindowLong了
1 最简单的方式是设置注册表:HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINDOWS\APPINIT_DLLS,将其值设为你的DLL路径,如c:\mylib.dll,重启后有效,这样每当USER32.DLL被映射到进程时,USER32.DLL检索此字符串并载入此库,这种方法只对那些也映射USER32.DLL的进程有效(好在是绝大部分),并且对WIN95无效.
2 使用HOOK来注入DLL,其原理和WINDOWS运行机制有关.在这里只说明怎么做:设置一个WM_GETMESSAGE钩子,
HOOK hHook=SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,hinstDll,NULL);
而后,当GetMsgProc被调用后,就SetWindowLong来派生子类
3 使用远程线程注入DLL,你需要在目标进程的地址空间中创建和执行线程并访问提交给线程的栈的物理存储,懂吗?反正我是不懂.
另外,如果你要注入的是子进程的化,CreateRemoteThread的第一个参数就可从
CreateProcess中获得了,不过如果是子进程的话,访问数据完全可以用进程通讯的方法来实现.
weiwenbing
2000-05-27
打赏
举报
回复
我确实是要通过这个来访问其他程序的数据.
fupf88,谢谢你的帮助,但是你说的那本书我不知道怎么得到.
所以请你把各种方法说得详细一点好吗?再次衷心的感谢你的帮助!!!
thur
2000-05-26
打赏
举报
回复
通过这个来访问其他程序的数据么?
fupf88
2000-05-26
打赏
举报
回复
你是问如何打破进程的边界吗?用远程线程注入DLL是一种方法,其他还有使用注册表,HOOK,以及一些WIN32函数,Jeffrey Richter的<<Windows高级编程指南>>详细讨论了这个问题,还有例子,你不妨参考一下这本书.
python
线程
进程、异步IO
多
线程
是指从软件或者硬件上实现多个
线程
并发执行的技术。具有多
线程
能力的计算机因有硬件支持而能够在同一时间 执行多于
一个
线程
,进而提升整体处理性能。 该章节主要包括
线程
进程的概念,基于python的
线程
进程实现,GIL锁的影响,消费者生产者模型,进程池的应用以及IO模型的介绍,一句话概括本章的内容就是:实现并发编程,即计算机能够同时处理多个任务。
虚拟
地址空间
映射
到物理
地址空间
虚拟
地址空间
映射
到物理
地址空间
参考如下 当处理器读或写入内存位置时,它会使用虚拟地址。作为读或写操作的一部分,处理器将虚拟地址转换为物理地址。通过虚拟地址访问内存有以下优势:
程序
可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓冲区。
程序
可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。当物理内存的供应量变小时,内存管理器会将物理内存页(通常大小为 4 KB...
Java
线程
怎样
映射
到操作系统
线程
先说多
线程
模型,参考经典教材《Operating System Concepts , Silberschatz ,9th edition》 中文版是《操作系统概念,第9版》 https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/4_Threads.html
一个
线程
是CPU利用率的基本单元,包括
一个
程序
计数器,堆栈,一组寄存...
26.进程空间和
线程
空间
概念 进程:是资源分配和调度的基本单位。
线程
:是进程的
一个
实体,是cpu进行调度的基本单位,是比进程更小的独立运行的基本单位。
线程
运行需要内存空间,包括
线程
程序
的数据空间、存储空间、运行空间等。 进程有独立的进程
地址空间
,
线程
没有独立的
线程
地址空间
,但是多个
线程
共享同
一个
进程的
地址空间
。 举个例子:每打开
一个
QQ,就相当于重新分配
一个
进程空间。我有两个QQ ,就有两个进程空间。但问题来了,我们...
用户级
线程
必须
映射
到内核级
线程
的原因探究
复习OS时遇到的问题,网课和课本都只说了用户级
线程
和内核级
线程
需要建立
映射
关系,却没解释原因。于是自己在网上查找了一些资料,总算是弄懂了,希望对你也有帮助。
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章