逆向常用命令
基础命令
cat:查看文件内容 例:cat demo.txt|grep fourecho/touch:写文件 例:echo “hello world” > /Users/boomhe/demo.txt(>: 内容重定向)
非 shell 命令
adb shell dumpsys activity top查看当前应用的 activity 信息adb shell dumpsys activity activities查看当前应用的任务栈adb shell dumpsys package [pname]查看指定应用包名详细信息 (adb shell dumpsys package com.tencent.mm)adb shell dumpsys meminfo [pname/pid]查看指定进程名或进程 ID 的内存信息(adb shell dumpsys meminfo com.tencent.mm)adb shell dumpsys dbinfo [pname]查看指定包名应用的数据库存储信息(adb shell dumpsys dbinfo com.tencent.mm)adb install安装应用包 apk 文件(adb install 文件名)adb uninstall [pname]卸载应用(adb uninstall cn.wjdiankong.demo)adb pull将设备中的文件放到本地(adb pull /sdcard/tmp.txt /Users/boomhe/)adb push将本地文件放到设备中(adb pull /Users/boomhe/temp.txt /sdcard)adb shell screencap截屏操作(adb shell screencap -p /sdcard/temp.png)- adb shell screencap -p /sdcard/temp.png
- adb pull /sdcard/temp.png /Users/boomhe/
- start /Users/boomhe/temp.png
adb shell screenrecord录屏操作(adb shell screenrecord /sdcard/temp.mp4)adb shell input text输入文本内容(adb shell input text ‘HelloWorld’)adb forward设备的端口转发- adb forward tcp:23946 tcp:23946
- adb forward tcp:8700 jwdp:1786
adb jdwp查看设备中可以被调试的应用进程号adb logcat查看当前日志- adb logcat -s tag
- adb logcat | grep/findstr [pname|pid|keyword]
adb shell pm clear [pname]清空应用数据
数据备份和恢复
allowBackup:manifest 文件中 allowBackup 的属性设置是 true 时、可以在没有 root 的设备中去获取用户的数据
- 后台启动一个 service 定时去轮询、获取当前的 topActivity 然后操作
- Android 5.0 以后获取 当前 topActivity 需要授权
- 通过辅助功能可以监听当前 Window 的变化
数据备份
adb backup [-system|-nosystem] -all [-apk|-noapk] [-shared|-noshared] -f <存档名称> [pname]
|
|
- [-system|-nosystem]:备份时是否需要连系统一起备份、默认是
- -all:是否要备份全部 app 、若有加 -nosystem 、那么只会备份已安装的 app、不会备份系统 app
- [-apk|-noapk]:是否备份安装的 apk 、-noapk 只会备份 apk 的资料数据
- [-shared|-noshared]:是否备份 SD 卡
数据恢复
|
|
备份的数据为 *.ab 格式文件
shell 命令
run-as [pname]在非 root 设备中查看指定 debug 模式的应用沙盒数据ps查看设备的进程信息/指定进程的线程信息ps | grep com.tencent.mm过滤信息ps -t [pid]查看 pid 对应的线程信息
pm clear [pname]清空指定包名应用数据pm install [apk 文件]安装设备中的 apk 文件、和 adb install 一样(pm install /sdcard/demo.apk)pm uninstall [pname]卸载设备中的应用am start启动一个应用am start -n [pname]/[pname].[activity]am start -D -n com.android.browser/com.android.browser.BrowserActivityDebug 模式启动
am startservice启动一个服务、和上面命令类似am broadcast发送一个广播am broadcast -a android.NET.conn.CONNECTIVITY_CHANGE可以测试定义的广播
netcfg查看设备的 IP 地址netstat查看设备的端口号信息app_process特需场景dalvikvm -cp [dex文件] [运行主类]运行一个 dex 文件dalvikvm -cp /data/demo.dex com.tencent.mm
top [-n/-m/-d/-s/-t]查看当前应用 CPU 消耗信息top -d 1 -m 10还可以和 grep 结合使用-n刷新次数-m最多显示多少个进程-d刷新间隔时间(默认5秒)-s按那列排序-t显示线程信息(不是进程)
getprop [属性值名称]查看系统属性getprop ro.debuggable版本号、系统属性…
操作 apk 命令
用 aapt 操作 apk
aapt dump xmltree[apk] [需要查看的资源文件 xml]:查看 apk 中的信息以及编辑 apk 程序包
|
|
dexdump [dex 文件路径]:查看 dex 文件的详细信息
|
|
进程命令
查看当前进程的内存加载情况
cat /proc/[pid]/maps:查看进程的内存映射信息、加载了那些 so 、dex 文件等ps | grep com.czcg.gwtcat /proc/7758/maps:查看进程的内存映射信息cat /proc/7758/status:查看进程的状态信息cat /proc/[pid]/net/tcp/tcp6/udp/udp6:查看应用的端口信息