Android在内部机制上并不提供进程间的越界数据访问,所以通过Java完全无法实现越界数据的访问和修改,我们只能使用Linux上提供的ptrace()函数实现越界访问,其中还要用到waitpid()函数等待进程连接。

具体使用方式如下:

#include  //For ptrace()

#include    //For waitpid()

int main () {

int pid     = 1337; //The process id you wish to attach to

int address = 0x13371337; //The address you wish to read in the process

//First, attach to the process

//All ptrace() operations that fail return -1, the exceptions are

//PTRACE_PEEK* operations

if (ptrace(PTRACE_ATTACH, pid, NULL, NULL) == -1) {

//Read the value of errno for details.

//To get a human readable, call strerror()

//strerror(errno)

//error that occurred

return 0;

}

//Now, attaching doesn't mean we can read the value straight away

//We have to wait for the process to stop

int status;

//waitpid() returns -1 on failure

//W.I.F, not W.T.F

//WIFSTOPPED() returns true if the process was stopped when we attached to it

if (waitpid(pid, &status, 0) == -1 || !WIFSTOPPED(status)) {

//Failed, read the value of errno or strerror(errno)

return 0;

}

errno = 0; //Set errno to zero

//We are about to perform a PTRACE_PEEK* operation, it is possible that the value

//we read at the address is -1, if so, ptrace() will return -1 EVEN THOUGH it succeeded!

//This is why we need to 'clear' the value of errno.

int value = ptrace(PTRACE_PEEKDATA, pid, (void*)addr, NULL);

if (value == -1 && errno != 0) {

//Failed, read the value of errno or strerror(errno)

return 0;

} else {

//Success! Read the value

}

//Now, we have to detach from the process

ptrace(PTRACE_DETACH, pid, NULL, NULL);

return 0;}

ptrace()函数需要root权限,这也是为什么所有的内存数据修改器都需要root权限

ptrace()函数是用于debug功能的系统函数,有夸进程随意访问数据的能力。

其他设想:

我们平时使用的debug功能可以详细到使用变量名获取当前数据,不知是否也能通过ptrace()函数实现此类数据搜索。

Android所提供的IBinder我们能否通过这个实现内存修改,IBinder又是通过什么实现的进程间数据共享。

内存修改器 android,Android 内存修改相关推荐

  1. root比例修改器,免root修改器修改数值

    华为手机root成功后用什么修改器? 一般的xiuliqi都能在手机上,但必须是手机 上是获取到稳定的权限. 你使用下载应用宝软件在电脑上,让root的 手机连接到电脑上,看看在工具箱上显示的是 ji ...

  2. gg修改器修改数值没有用怎么办_gg修改器怎么用怎么修改数值 修改数值方法介绍...

    gg修改器怎么用怎么修改数值修改数值方法介绍 GG修改器-全称GameGuardian是非常好用的手机修改器,但它需要ROOT权限,而现在要想ROOT一台手机难度是很大的,因此,本文介绍最新的GG修改 ...

  3. 新圣魔大战(Castle Fantisia)修改器/秘籍——究极修改大法

    新圣魔大战(Castle Fantisia)修改器/秘籍--究极修改大法   最近迷上了新圣魔大战,感觉e.go Studio 出品的游戏果然不错!画面精美,音乐动听,剧情感人.   唯一的缺点就是玩 ...

  4. Blender:用蒙皮修改器和表面细分修改器建模

    Blender 2.82a版 这种方法常用于构建雕刻用的基础模型,尤其是生物角色的基础模型 目录 快捷键 步骤 1. 创建一个独立顶点 2. 添加修改器 3. 边挤出边调形 4. 生成网格模型 快捷键 ...

  5. android支付宝运动修改器,支付宝运动步数修改器下载-无需root刷支付宝运动步数工具下载_飞翔下载...

    无需root刷支付宝运动步数工具是一款好用的步数修改软件,为了公益,刷的步数大家可以当公益金捐出去,好人一生平安!(不知道加不加芝麻信用分) 如何修改机型: ro.product.model=GT-I ...

  6. android 声音大小修改器,吃鸡音效修改器游戏

    吃鸡音效修改器游戏里面有很多的声音,你可以把你喜欢的那些声音收藏起来,在这里你如果是个男生的话可以用语音包把自己的声音变成女生,这样就会有很多的小哥哥来给你送装备了,这样体验起来真的是非常的有趣. 吃 ...

  7. qq飞车服务器修改器,qq飞车ve修改器

    qq飞车ve修改器是一款通过ve修改器查找和修改游戏内存,从而达到刷取s车的目的. 使用方法 1.关闭所有杀毒软件.(VE有时会被误报病毒) 2.启动游戏(窗口化) 3.启动游戏后换上板车 4.最小化 ...

  8. ce修改器过检测_GG修改器使用教程

    新手学修改教程 第一课:修改器的认知 https://v.qq.com/x/page/c0547cvcojf.html?ptag=2_7.6.0.20170_copy 第二课:精确数值查找 https ...

  9. MongoDB update修改器: 针对Fields的$修改器 $inc $set $unset

    MongoDB update修改器: $inc $set $unset $push $pull $pop 针对Fields的$修改器 $set: { $set: { key: value } } $s ...

  10. 服务器数据库不能修改器,游戏服务器数据库修改器

    游戏服务器数据库修改器 内容精选 换一换 如果已添加的数据库服务器的用户名和密码已修改或者访问数据库的用户名和密码配置有误,您可以参考本章节进行重新配置.已获取管理控制台的登录帐号与密码.已完成数据库 ...

最新文章

  1. plsql 为空显示 0 的函数_记住这三个检测函数,彻底清除公式当中的0值
  2. 浅谈博客园的初使用体验
  3. @EnableAutoConfiguration注解的实现原理
  4. 深入Android 【五】 —— 任务和进程
  5. python3.7怎么安装turtle_python怎么安装turtle
  6. input 0.1无法相加_你真的知道0.1+0.2为何不等于0.3吗?
  7. python网址太长_Python GUI-长链转短链
  8. 红黑树原件 及其插入、删除(附图说明)
  9. date-打印或者设置系统日期和时间
  10. edge浏览器卸载不掉_【喂你播】华为申请 “荣耀”啤酒饮料类商标;微软确认Edge浏览器无法卸载...
  11. vs2008 sp1 C++ 发布程序 .
  12. 机器学习 ---- 新词发现
  13. 服务器的四个网卡虚拟一个网卡,一种物理网卡虚拟成多个虚拟网卡的方法及系统...
  14. HTML初心自学记录(四)列表超链接
  15. java.net.UnknownHostException: localhsot
  16. Oracle05:什么是OCP认证
  17. 微信小程序自定义map组件标记点markers(兼容苹果和安卓)
  18. 计算机相关书籍推荐(持续更新)
  19. 【算法Algorithm】快速(Quick)排序
  20. 向sdcard中添加文件出现Failed to push the item(s)

热门文章

  1. Android启动优化实战(有效降低APP启动时间)
  2. Resnet中文翻译
  3. 情景分析【2】 慢请求
  4. 关于ShareSDK在Xcode14上面发生错误的相关解决办法
  5. 终端 伪终端 控制终端
  6. Fiddler 抓包逍遥安卓模拟器
  7. COleSafeArray二维数组的使用注意
  8. LVS技术浅析-配置管理3
  9. 软件打包--Enigma Virtual Box和VNISEdit
  10. 体验TDD、结对编程---全球编程静修日-北京ThoughtWorks站