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 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM