C/C++ by GCC 4.8, Android NDK + SL4A / Python for Android,
Android 4.3 root 权限,ARM 架构
问题:
使用 ptrace 来扫描其他 process 的记忆体
遇到了很多困难,google 不到请高手帮忙解答,感激不尽
使用方式:
用 Python 呼叫由 C/C++ 编译出的 so 或执行档 (因为 member
比较熟 C)
描述:
1. 写 ptrace 的程式如果包装成 so 来给人 call,
所有的 processes 都 attach 不到...
如果写成执行档,用 python 打开执行也不行
但该执行档直接用 adb shell 进去 run
就可以 attach 部分 processes
但有一部分 processes 还是 attach 不到...
请问该如何 attach 所有 processes 呢?
还有我推测 ptrace 必须在 parent process 执行
C or Python 怎麽新建一个 "parent" process 呢?
2. mem 读进来 的记忆体量常常会少 4K bytes (read() 回传值),
不然就是读不到,但有 attach 到且读出记忆体的都是正确结果
因为多次读取也不行,为何会少 4K,如何避免?
有的记忆体区段读不到该怎办? (都是从 maps 抓出的可读区)
3. ptrace 只能抓到 process 的单一 thread,请问对付
multi-threading 的程式怎麽抓比较好?
maps 档要如何分析较有效率?
希望高手指点迷津,感恩不尽。
※ 编辑: applecool (123.110.252.159), 03/30/2014 11:24:35
※ applecool:转录至看板 LinuxDev 03/30 17:29
※ applecool:转录至看板 AndroidDev 03/30 17:29
※ applecool:转录至看板 Python 03/30 17:29
※ applecool:转录至看板 Soft_Job 03/30 17:33
1F:推 likol:Cheat Engine的ARM Server有实作该功能,且有源码也许对你有 04/24 03:59
2F:→ likol:参考价值 04/24 03:59
3F:→ applecool:感恩! 05/17 11:22