在学习《[Android]应用安全防护和逆向分析》过程中,记录一些常用的命令。

目录

 一、非shell命令

二、shell 命令

三、操作apk命令

四、进程命令


 一、非shell命令

1.adb shell dumpsys activity top
说明:可以查看当前应用的activity信息。
用法:运行需要查看的应用。
案例:
adb shell dumpsys activity top

2.adb shell dumpsys package
说明:可以查看指定包名应用的详细信息(相当于应用的AndroidManifest.xml中的内容)。
用法:adb shell dumpsys package [pkgname]
案例:
adb shell dumpsys package com.tencent.mn


3.adb shell dumpsys meminfo
说明:可以查看指定进程名或者进程id的内存信息。
用法: adb shell dumpsys meminfo [pname/pid]
案例:
adb shell dumpsys meminfo com.gihoo.appstore


4.adb shell dumpsys dbinfo
说明:可以查看指定包名应川的数据库存储信息(包括存储的SQL语句)。
用法: adb shell dumpsys dbinfo [packagename]
案例:
adb shell dunpsys dbinfo com .qihoo .appstore


5.adb intall
说明:安装应用包apk文件
用法: adb install [apk 文件]。
案例:
adib install D: ldemo . apk

6.adb uninstall
说明:卸载应用。
用法: adb uninstall [packagename]
案例:
adb uninstall cn.wjdiankong . demc
和上面的命令类似。


7.adb pull
说明:将设备中的文件放到本地。
用法: adb pull设备目录文件本地目录。
案例:
adb pull /sdcard/tmp.txt D:i
注意,在操作的时候可能遇到文件权限问题,用chmod改一下权限即可。

8.adb push
说明:将本地文件放到设备中。
用法: adb push本地目录文件设备目录。
案例:
adb push D: !tmp.txt / sdcard
注意,在操作的时候可能遇到文件权限问题,用chmod改一下权限即可。


9.adb shell screencap
说明:截屏操作。
用法: adb shell screencap -p截图文件路径。
案例:
adb shell screencap -p /sdcard/tmp.png

adb shell screencap -p /sdcard/tmp.png
adb pull /sdcard/ tmp.png D: l
start D:itmp.png


10.adb shell screenrecord
说明:录屏操作。
用法: adb shell screenrecord视频保存路径。
案例:
adb shell screenrecord !sdcard/tmp.mp4

11.adb shell input text
说明:输人文本内容。
用法: adb shell input text[需要输人文本框内容]
案例:
让需要输人内容的文本框获取焦点:
adb shell input text 'Helloworld'

12.adb forward
说明:设备的端口转发。
用法:adb forwrad[(远程端)协议:端口号][(设备端)协议:端口号]
案例:
adb forward tcp: 23946 tcp:23946
adb forward tcp:8700 jwdp: 1786
这个命令在IDA调试中非常有用。


13.adb jdwp
说明:查看设备中可以被调试的应用的进程号。
用法: adb jdwp
案例:
adb jdwp
这个命令或许用途不是很多、但是在调试的时候还是有点用途。

14.adb logcat
说明:查看当前日志信息
川法l: adb logcat -s tag
案例: adb logcat -s fb
用法2: adb logcat |findstr pname/pid/keyword
案例:adb logcat lfindstr cn.wjdiankong .demo

二、shell 命令

1.run-as
说明:可以在非root设备中查看指定debug模式的包名应用沙盒数据。
用法:run-as[package name]
案例:run-as cn.wjdiankong .demo


2.ps
说明:查看设备的进程信息、或者指定进程的线程信息。
用法:ps | grep过滤内容
ps -t [pid]查看pid对应的线程信息
案例:
ps l grep cn.wjdiankong.deno
ps -t 11798
这个命令的重要程度不必多说,可以结合grep进行信息过滤。

3.pm clear
说明:清空指定包名应用的数据。
用法: pm clear[packagename]
案例: pm clear cn.wjdiankong.demo
有时候想清空一个应用的数据,可能需要去设置页面进行操作。可以不用那么麻烦.
直接用这个命令即可。

4.pm install
说明:安装设备中的apk 文件、功能和adb install一样。
’用法: pm install [ apk文件]
案例:
pm install /sdcard/demo.apk
这个命令与adb install命令一样。

5.pm uninstall
说明:卸载设备中的应用,功能与adb uninstall一样。
用法: pm uninstall[packagename]
案例:
pn uninstall cn.wjdiankong.derno
这个命令和adb uninstall命令一样。

6.am start
说明:启动一个应用。
用法:am start -n[包( package)名][包名].[活动(activity)名称]
案例:
am start -n com.android.browser/com.android.browser.BrowserActivity
注意:可以用debug方式启动应用(am start -D -n…)。特别在反编译调试应用的时候,
可能需要用debug方式启动应用。


7.am startservice
说明:启动一个服务。
用法: am startservice -n[包(package)名]/[包名].[服务(service)名]
案例:
am startservice -n com.android.traffic/com.android.traffic.maniservice
和上面命令类似,启动服务。


8.am broadcast
说明:发送一个广播。
用法: am broadcast -a[广播动作]
案例:
am broadcast -a android.NET.conn.CONNECTIVITY_CHANGE
和上面的命令类似,发送一个广播。有时候定义了一-个广播,可能需要测试,就可以
借助这个功能模拟发送一个广播。


10.netstat
说明:查看设备的端口号信息。
用法:netstat

11.app_process
说明:运行Java代码。
用法: app_process[运行代码目录]「运行主类]
案例:
export CLASSPATH= /data / demo .jar
exec /system/bin/app_process /data/cn.wjdiankong.Main
这个命令主要用于Android中一些特殊开发场景中,想启动一个jar包,不过这个jar
包有要求:需要dx命令把dex文件转化成jar包功能,实际上它不是一个正常的jar包了.
而是一个包含了classes.dex文件的压缩文件了。


12.dalvikvm
说明:运行一个dex文件。
用法: dalvikvm -cp [ dex文件][运行主类]
案例:
dalvikvn -cp /data/demo.dex cn.wjdiankong.Main
有时候为了测试一个dex文件功能可以用到这个命令,与上面的命令有很大相似之处,
只是运行的文件不一样。

13. top
说明:查看当前应用的CPU消耗信息。
用法:top [-n/-m/-d/-s/-t]
-m/最多显示多少个进程
-n/l刷新次数
-d//l刷新间隔时间(默认5秒)
-s l/按哪列排序
-t//显示线程信息而不是进程
案例:
top -d 1 -m 10
这个命令在分析应用性能的时候非常有用,可以用grep过滤想要分析的应用信息、查
看它的当前CPU使用率。


14.getprop
说明:查看系统属性值。
用法: getprop[属性值名称]
案例:
getprop ro.debuggable
这个命令可以查看设备的信息,比如设备版本号、系统属性等、后面章节会介绍在
root 设备之后,还可以去修改这些系统属性。比如debug开关,让所有的应用都处于可调
试状态。


三、操作apk命令

1.用aapt操作apk命令
说明:查看apk中的信息以及编辑apk程序包。
用法: aapt dump xmltree [ apk包][需要查看的资源文件xml ]
案例:
aapt dump xmltree demo.apk AndroidManifest .xml

2.用dexdump操作dex命令
说明:可以查看一个dex文件的详细信息。
用法: dexdump [ dex文件路径]
案例:
dexdump D:lclasses.dex


四、进程命令

1.查看当前进程的内存加载情况
可以使用如命令
cat /proc/[pid] / maps
查看当前进程的内存映射信息,比如加载了哪些so文件,dex文件等:


2.查看进程的状态信息
可以利用如下命令
cat. /proc /[pid] /status
查看当前进程的状态信息,比如熟知的TracerPid:

3.查看当前应用使用的端口号信息
可叮以使用如下命令
cat / proc / Ipid] / net / tcp / tep6 / udp / udp6
 

更多相关文章

  1. mac mkdir read-only filesystem
  2. android sudio 如何获取sha1与md5值
  3. [置顶] 关于Flurry的一些用法
  4. android ViewPager 实现点击小圆点切换页面 案例
  5. android input命令 模拟按键
  6. Android中常用adb的命令
  7. Mac 安装adb
  8. MacPro 10.13.6 编译 android-8.1.0_r53
  9. [Android]aapt命令小结

随机推荐

  1. Android APP开发集成工具
  2. Android View之组合控件实例(二)
  3. 蓝牙原理Android代码实现
  4. NDK is missing a "platforms" directory
  5. 苹果MAC操作系统上搭建Android开发平台环
  6. android GPS定位,定位城市称,经纬度
  7. Android 错误 :TextView中属性ellipsize的
  8. Android之URI
  9. 操作系统
  10. 网络监听Network Daemon(Android(安卓)Ne