飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 1420|回复: 5

[已解决] dll劫持补丁写内存时memcpy和WriteProcessMemory的区别

[复制链接]
  • TA的每日心情
    开心
    2018-10-30 22:05
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2023-10-17 15:24:01 | 显示全部楼层 |阅读模式
    本帖最后由 iamok 于 2023-10-17 16:19 编辑

    之前自己写winmm.dll来劫持修改时一直是使用下面的方式来修改内存:

    [C++] 纯文本查看 复制代码
            hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, GetCurrentProcessId());
            if (hProcess)
            {
    
                    WriteProcessMemory(hProcess, addr1, realSub1, strlen((char*)realSub1), NULL);
                    WriteProcessMemory(hProcess, addr2, realSub2, strlen((char*)realSub2), NULL);
    
                    CloseHandle(hProcess);
            }


    按我的理解上面的代码应该也可以用memcpy来写:
    [C++] 纯文本查看 复制代码
            memcpy(addr1, realSub1, strlen((char*)realSub1);
            memcpy(addr2, realSub2,strlen((char*)realSub2));


    但实际情况是有些程序好像可以这么写,有些执行到memcpy函数时,进程就异常退出了。
    测试的程序是010editor,大佬们看看是什么原因造成不能用memcpy函数来写呢?

    附件放一个生成的失败dll

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-10-30 22:05
  • 签到天数: 6 天

    [LV.2]偶尔看看I

     楼主| 发表于 2023-10-17 16:21:09 | 显示全部楼层
    群里的大佬帮助下解决了,写内存前用VirtualProtect改下内存属性,写完再改回来
    同上上面代码的长度计算也有问题。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    6 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2023-10-17 22:44:24 | 显示全部楼层
    建议你VirtualProtect修改整个代码段属性,不然一下就被定位了,哈哈

    点评

    谢谢飘老大的建议  详情 回复 发表于 2023-10-18 08:24
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-30 22:05
  • 签到天数: 6 天

    [LV.2]偶尔看看I

     楼主| 发表于 2023-10-18 08:24:34 | 显示全部楼层
    飘云 发表于 2023-10-17 22:44
    建议你VirtualProtect修改整个代码段属性,不然一下就被定位了,哈哈

    谢谢飘老大的建议
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    21 分钟前
  • 签到天数: 348 天

    [LV.8]以坛为家I

    发表于 2023-10-18 09:42:31 | 显示全部楼层
    用WriteProcessMemory写内存时也需要先改内存为可写吧,不然也可能出现异常。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    22 分钟前
  • 签到天数: 967 天

    [LV.10]以坛为家III

    发表于 2023-10-24 09:18:08 | 显示全部楼层
    PYG有你更精彩!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表