吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3379|回复: 0
收起左侧

[Android 求助] ptrace 修改内存失败 PTRACE_PEEKDATA

[复制链接]
1990343340 发表于 2019-11-15 19:11
目前尝试制作自己的调试器,在尝试修改内存的时候:
ptrace(PTRACE_POKEDATA, pid, address, &long_tmp);
第四个参数无效 无论第四个参数是什么 对应的内存地址都会被置为 00 00 00 00

有遇到过这个问题的吗?求交流
有研究Android调试器的吗?求交流

Q:1990343340

运行环境:AndroidX86模拟器
编译环境:window+ndk

下边是关键代码以及运行日志


//关键代码
void addBreakPoints(long long address){
    long result;
    cout<<"address = "<<address<<endl;
    //long ins = ptrace(PTRACE_PEEKDATA, pid, address, nullptr);
    long long_tmp = 0x1fff;
    cout<<"PTRACE_POKEDATA之前展示内存"<<endl;
    showMemoryabc(address,0x20);
    result = ptrace(PTRACE_POKEDATA, pid, address, &long_tmp);
    cout<<"返回值: "<<result<<endl;
    cout<<"PTRACE_POKEDATA之后展示内存"<<endl;
    showMemoryabc(address,0x20);
}

//运行日志
address = 2315314352
PTRACE_POKEDATA之前展示内存
55 89 E5 56 83 E4
FC 83 EC 14 8B 45
10 8B 4D 0C 8B 55
08 8B 75 10 83 C6
01 89 44 24 10 89
F0 89
返回值: 0
PTRACE_POKEDATA之后展示内存
00 00 00 00 83 E4
FC 83 EC 14 8B 45
10 8B 4D 0C 8B 55
08 8B 75 10 83 C6
01 89 44 24 10 89
F0 89

由运行日志可以看出,address没问题,不然的话对应的内存地址的值不会被改变
可是我传的值是 0x1fff(ff 1f 00 00)  为什么对应位置的内存变成了 00 00 00 00

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 21:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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