【100分求解】关于远程线程

「已注销」 2008-05-08 09:12:36
现在有一个宿主进程A,我用两种方法进入其地址空间,想调用进程A的某个地址处的一个函数X

方法一:采用SetWindowsHookEx(WH_GETMESSAGE),将我的一个DLL(以下称DLL B)加载到进程A的地址空间,然后DLL B调用函数X。 这样可以正确执行,没问题。

方法二:采用CreateRemoteThread,在进程A创建一个远程线程执行LoadLibrary(DLL B),经查看,DLL B被正确加载,DLL B中部分代码也能执行成功(比如用WriteProcessMemory修改了进程A的内存数据)。但是DLL B调用函数X失败,错误是内存访问违例。


问题:同样都是将DLL B加载到进程A内去调用函数X,为什么第一种方法就没问题,第二种方法就出错呢?
...全文
111 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wushigang 2008-05-09
  • 打赏
  • 举报
回复
同意四楼和六楼,区别在于线程的不同。所以原因可能在线程冲突上或者资源冲突上。
如果X函数里创建对话框之类,肯定用线程注入就要出错了。
不是对话框的话,线程变量冲突
chenxinbei 2008-05-09
  • 打赏
  • 举报
回复
mark too
cnzdgs 2008-05-08
  • 打赏
  • 举报
回复
这几种方法都是可以的,不过你描述的不够详细,还没法判断出问题。前两种方法分别是在什么时候调用X?另外X函数的参数是怎么给的?问题很可能是多线程访问冲突,这与X执行的具体操作有关。
「已注销」 2008-05-08
  • 打赏
  • 举报
回复
lake_cx 老兄说的跟我想的差不多。

但是第二种方法为什么会出错呢?
lake_cx 2008-05-08
  • 打赏
  • 举报
回复
第一种方式是在主线程执行你的目标方法
第二种方式是在子线程执行你的目标方法
第三种方式大部分情况下是在主线程执行你的目标方法
「已注销」 2008-05-08
  • 打赏
  • 举报
回复
函数X是个固定地址,地址没问题,因为每次测试我都查看了进程内存的。

我按你的方法调试一下,谢谢vocanicy老兄
vocanicy 2008-05-08
  • 打赏
  • 举报
回复
你的函数X的地址是如何得到的?


另外远程线程也是可以调试的,你在你的线程入口加一句DebugBreak();

然后注入线程,线程运行时会弹出警告框,你选择调试就可以了,这时你看到的是汇编,只需单步走几步就回到DLL B的空间,这时右键菜单选择goto source就可以看到源码了
和调试自己的程序一样
「已注销」 2008-05-08
  • 打赏
  • 举报
回复
我又测试了一种方法:

方法三:采用CreateRemoteThread,在进程A创建一个远程线程执行LoadLibrary(DLL B),DLL B 对进程A进行 APIHook,Hook住进程A的LoadLibraryA函数,然后在自己的MyLoadLibraryA函数里调用进程A的函数X,也同样没有问题。



补充一点:函数X是在进程A加载的一个DLL(非系统DLL)里的一个函数,但不是Export函数。
fishly_0 2008-05-08
  • 打赏
  • 举报
回复
mark
zdleek 2008-05-08
  • 打赏
  • 举报
回复
MARK,
内容概要:本文围绕Koopman算子理论展开,探讨其作为非线性动力学系统线性嵌入工具的核心思想与实现方法,结合深度学习技术构建通用的非线性系统建模框架。文中详细阐述了Koopman算子的基本原理及其在高维观测空间中将非线性动态转化为线性演化过程的能力,并通过Python和Matlab代码实例演示如何利用神经网络学习Koopman模态解、动态模式预测及可观测函数的构造,从而实现对复杂非线性系统的有效建模与长期预测。研究强调方法的通用性与可扩展性,适用于多类科学与工程问题中的动力学建模任务。; 适合人群:具备一定数学基础(如线性代数、微方程)和编程能力(熟悉Python/Matlab),从事系统建模、控制理论、物理信息建模或数据驱动科学研究的研究生、科研人员及工程师。; 使用场景及目标:① 掌握Koopman算子在非线性系统析中的理论基础与数值实现路径;② 学习如何结合深度学习构建可解释性强的动力学模型,应用于流体力学、机器人控制、气候建模等领域;③ 借助提供的代码资源快速复现并拓展至具体科研项目中。; 阅读建议:建议读者结合理论推导与代码实践同步学习,重点关注Koopman观测函数的设计、神经网络架构选择与训练策略,并尝试将其应用于实际非线性系统数据以加深理解。
内容概要:本报告基于毕马威第25届全球汽车高管中国调研,深入析了中国汽车行业在未来十年实现突破所需的五大战略要务,提出“五T”领导力框架——引领转型、掌握技术、赢取信任、应对摩擦、携手共进。报告指出,中国高管普遍认为可持续发展、供应链转型、人工智能应用和战略联盟是关键驱动力,尤其在技术投入、供应链优化和研发合作方面显著领先。此外,报告强调区域化布局、数字化转型、客户洞察升级及生态合作将成为企业构建竞争优势的核心路径。; 适合人群:汽车行业企业管理者、战略决策者、政策制定者及关注汽车产业变革的研究机构与投资者。; 使用场景及目标:①帮助企业识别未来三年内的核心颠覆因素并制定应对策略;②指导企业在人工智能、电动化、供应链韧性等领域进行战略性投资;③推动跨行业合作以加速电动汽车普及与商业模式创新;④为高管提供全球视野下的中国差异化洞察与行动蓝图。; 阅读建议:建议结合全球与中国的对比数据进行深度解读,重点关注“五T”框架在实际战略规划中的落地应用,并参考毕马威在数字化、可持续发展、税务贸易及金融等领域的专业服务建议,以全面提升企业韧性与竞争力。
专业眼底血管割数据集 本数据集包含600张高质量彩色眼底图像,涵盖多种常见眼底疾病(如糖尿病视网膜病变、高血压视网膜病变、青光眼等)及正常视网膜血管形态。所有图像均经由眼底病专科医生进行像素级精细标注,确保视网膜血管网络割的完整性与连续性,符合临床血管形态学析的精度要求。 数据集已完成标准化预处理流程,包括图像尺寸统一、对比度增强、光照不均校正,并严格按8:2比例划为训练集与验证集。所有数据以PNG无损格式存储,配套的二值标注掩膜明确区以下两类割目标: • 0: 背景 • 255: 血管 本数据集专为先进的视网膜血管割模型(如U-Net、CS-Net、DRIU)优化,可用于训练高精度、高泛化性的血管网络自动提取系统,为血管直径测量、析、动静脉类及疾病相关血管变化(如微动脉瘤、新生血管)检测提供关键基础。 随附的专业析工具,支持一键生成血管密度统计、血管骨架提取、支点检测、以及割性能的敏感性/特异性析图表,为研究者提供全面的血管形态学量化与模型评估能力。 该数据集具有标注专业、图像清晰、病理覆盖全面的特点,是开展眼科影像AI、心血管风险眼部生物标志物研究、以及视网膜疾病计算机辅助诊断的理想基准数据。基于本数据集训练的模型,可为自动化、定量化的眼底血管析提供可靠支持。 在人工智能与精准眼健康管理深度融合的当下,高质量、精细标注的眼底血管数据是推动相关筛查与诊断工具临床转化的重要基石。我们提供这套经专科医师严格标注的眼底血管割数据集,致力于助力临床与科研工作者开发可靠、高效的智能眼底析系统。

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧