The Camellia 2023-01-26 17:23 采纳率: 100%
浏览 19
已结题

关于#c++#的问题:dll注入

我的dll注入后不能修改某段内存,我查看后发现内存属性是不可写

但我的dll注入进程中应当算进程的一部分吧?

我尝试使用VirtualProtect修改内存属性,但进程有少许保护,VirtualProtect返回0

dll注入进程后成为进程的一部分都不能修改进程的内存属性吗?

  • 写回答

3条回答 默认 最新

  • 快撑死的鱼 2023-01-26 20:27
    关注

    回答不易,求求您采纳点赞哦

    • DLL 注入是一种技术,它允许你在运行时加载一个 DLL 到另一个进程中。在进程中注入 DLL 后,DLL 就成为了进程的一部分,但是它在访问和修改进程内存时受到某些限制。

    • 在 Windows 中,进程的内存可能被标记为只读或只执行。当你尝试在 DLL 中修改这些区域的内存时,可能会触发异常,因为内存不可写。

    • 解决这个问题的一种方法是使用 VirtualProtect 函数来修改内存属性。 VirtualProtect 函数可以改变一个内存区域的保护属性,使其可读,可写或可执行。但是有些进程可能有一些保护,因此 VirtualProtect 函数返回0.

    • 若是这样的话,你可以尝试使用更高级的技术,如内存修改技术来解决这个问题,但是这些技术可能更加复杂,也可能会导致不稳定的结果。

    • 还有一种方法就是直接使用调试器来修改进程的内存。这种方法需要使用调试器来附加到进程中,然后使用调试器的内存修改功能来修改进程的内存。这种方法可能会更加稳定,但是也可能会导致不稳定的结果。

    • 总而言之, 这种问题可能会因进程的保护级别和 DLL 注入的方式而有所不同,需要根据实际情况来解决。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月5日
  • 已采纳回答 1月28日
  • 创建了问题 1月26日

悬赏问题

  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程