逆向常用命令
基础命令
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.BrowserActivity
Debug 模式启动
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.gwt
cat /proc/7758/maps
:查看进程的内存映射信息cat /proc/7758/status
:查看进程的状态信息cat /proc/[pid]/net/tcp/tcp6/udp/udp6
:查看应用的端口信息