android core dump测试
16lz
2021-12-04
Android下app生成coredump方法
linux内核默认生成的coredump文件创建在根目录,android本身的权限管理,会导致创建失败:可以使用下面的方法来修改创建目录:
ulimit -c unlimited
mkdir /tmp chmod 777 /tmp echo "/tmp/core-%e.%p.%u" >/proc/sys/kernel/core_pattern
另外需要在你的c代码部分修改coredump的限制,如下:
#include
#include
void change_coredump(){
struct rlimit coredump;
memset(&coredump, 0, sizeof(struct rlimit)); coredump.rlim_cur = RLIM_INFINITY; coredump.rlim_max = RLIM_INFINITY;setrlimit(RLIMIT_CORE, &coredump);
return;
}
目前理解中 change_coredump 这个函数调用的时机,并且 setrlimit 这个系统调用应该需要有root权限吧?
具体调用的使用方法见
http://sunzeduo.blog.51cto.com/2758509/1355018
这个说明。
几点疑惑:
1 自己有源码写出来的程序使用上面的 change_coredump 这个函数在初始化的时候调用应该没有问题,但是在出现core dump的时候,使用神马命令来调试调用这个core dump呢,以前的时候都是用 gdp 可执行应用程序 coredump文件,但是对于apk或者 dex 这个应该使用神马命令呢
2 没有源码的程序上的使用,这个思路是想通过修改smali源码,然后注入一段so,这个so中有这么段启动代码搞定这个事情。但是apk都是加壳了,本身反编译成smali源码的成本就越来越高了。这条路的前提条件是能够顺利反编译smali源码,并且加入自己的逻辑,同时还需要第一步能够实现。
这两个问题先记录一下,等有时间好好研究一下。
更多相关文章
- Android(安卓)多媒体应用——MediaPlayer音频播放
- android 屏幕方向切换 锁定方向
- Android(安卓)Studio和Eclipse快捷键对比,及快捷键列表
- 【android】AsyncTask完全剖析(二)
- Android(安卓)Wifi获取组播
- 详解 Android(安卓)的 Activity 组件
- Android与Html5交互
- Android中retrofit网络请求框架使用
- android webview中js交互、第三方分享。