天天看點

通過strace和monkey測試安卓應用的系統調用

配置adb

1.    下載下傳android studio

2.    增加系統變量https://blog.csdn.net/lxzmmd/article/details/50455671

配置x86安卓虛拟機

1.    https://www.cnblogs.com/wynn0123/p/6288344.html

2. 通過ip位址連接配接虛拟機(為了保證虛拟機能上網,并且可以被實體機連接配接)https://blog.csdn.net/listener_ri/article/details/45922539

Monkey的使用

https://www.cnblogs.com/zhaoyanjun/p/6861278.html

strace的使用

https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html

strace在android中的使用:

linux上,strace一般有兩種用法:

1. strace <elf_file>    啟動程式的同時,用strace跟蹤;

2. strace -p pid    對于已經啟動的程式,通過-p參數可以attach上去跟蹤之後的執行流程;

android上使用strace有一點特殊,android上所有android application都是通過zygote fork出來的,所有android application程序的父親都是zygote。strace不能用來跟蹤androidapplication,而是跟蹤zygote和它的兒子。做法是先得到zygote的pid,再執行strace -f -p <pid_of_zygote>,然後啟動要跟蹤調試的程式;其中-f 代表跟蹤子程序;而且是之後生成的子程序,之前已經運作起來的android application不會被跟蹤到;

測試過程:

1. 打開虛拟機

2. 打開一個終端A連接配接虛拟機

adb connect 127.0.0.1//連接配接

adb devices//檢視連接配接的安卓虛拟機

通過strace和monkey測試安卓應用的系統調用

3.   終端A進入安卓apk的檔案夾

通過strace和monkey測試安卓應用的系統調用

4.   打開另一個終端B進入虛拟機的指令行界面

adb shell

通過strace和monkey測試安卓應用的系統調用

su 獲得超級使用者權限

通過strace和monkey測試安卓應用的系統調用

5. 通過終端A安裝一個應用

例如:adb install u-an.osintsev.usaeurocoins.apk

通過strace和monkey測試安卓應用的系統調用

6.  找到這個應用 并打開

通過strace和monkey測試安卓應用的系統調用

7.   通過終端B檢視這個應用的包名和父程序是64位還是32位的zygote 以及zygote pid。

輸入ps 

通過strace和monkey測試安卓應用的系統調用

它的包名是an.osintsev.usaeurocoins 父親程序是1033

然後一定要關閉這個程式。

8.   終端B輸入strace –c –f –e trace=all –p 1033。跟蹤父程序。

通過strace和monkey測試安卓應用的系統調用

9.    終端A啟動monkey。adb shell monkey –p an.osintsev.usaeurocoins2000 //2000是模拟次數等待模拟結束,關閉程式。

10.    在終端B上按下control+c,得出結果

通過strace和monkey測試安卓應用的系統調用

繼續閱讀