【Android Hook】

来源:互联网 发布:抽烟的名人 知乎 编辑:程序博客网 时间:2024/04/28 08:36

Hook 代码插入研究

序号

敏感行为

HOOKAPI

对应的文件    

1

定位

LocationManager

LocationManager.java

2

读取短信

query

ContentResolver.java

3

接收短信

createFromPdu

SmsMessage.java

4

发送短信

sendTextMessage

SmsManager.java

5

读取通讯录

query

ContentResolver.java

6

读取浏览器书签

query

ContentResolver.java

7

读取手机信息(IMEIIMSI、手机号码)

getDeviceId

getLine1Number

getSimSerialNumber

getSubscriberId

TelephonyManager.java

8

拨打电话

getNumberFromIntent

PhoneNumberUtils.java

9

使用摄像头

open

Camera.java

10

录音

MediaRecorder

MediaRecorder.java

敏感行为

对应文件存储路径

定位

<src>/frameworks/base/location/java/android/location

读取短信

<src>/frameworks/base/core/java/android/content

<src>/frameworks/opt/telephony/src/java/android/telephony

接收短信

<src>/frameworks/base/telephony/java/android/telephony

<src>/frameworks/opt/telephony/src/java/android/telephony

发送短信

<src>/frameworks/base/telephony/java/android/telephony

读取通讯录

<src>/frameworks/base/core/java/android/content

读取浏览器书签

<src>/frameworks/base/core/java/android/content

读取手机信息

<src>/frameworks/base/core/java/android/content

拨打电话

<src>/frameworks/base/telephony/java/android/telephony

使用摄像头

<src>/frameworks/base/core/java/android/hardware

录音

<src>/frameworks/base/telephony/java/android/telephony

<src>/frameworks/base/media/java/android/media


一致存储在/data/hooklog文件里,用前缀id识别

hook代码插入模式:

1、import语句

2、writetofile函数(可以从尾部追加)

3、调用函数

import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import java.util.Date;import java.text.SimpleDateFormat;public class FileOperation{static void writetofile(String file,String log){File dataFile = new File(file);if(!(dataFile.exists()&&dataFile.isFile())){try{dataFile.createNewFile();}catch(IOException e){System.out.println("can't creat the file "+e.getMessage());return;} }try{//PrintWriter pw = new PrintWriter(dataFile);FileOutputStream pw = new FileOutputStream (dataFile,true ) ;pw.write(log.getBytes());pw.close();}catch(FileNotFoundException e){System.out.println("can't find the file"+e.getMessage());}catch (IOException e) {   e.printStackTrace();  }}public static void main(String[]args){    String dir = "/home/getDeviceld";//String log = "make a phonecall";SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String log= df.format(new Date())+" get the DeviceID\n";writetofile(dir,log);//System.out.println("ok!");}}


附:获取手机各种信息


其中,对于ContentResolver.java插入hook,hook点确定为query(),因为有重载的情况,所以所有的都需要hook。

1)   读取短信: uri = content://sms/inbox

2)   读取浏览器书签: uri =  content://browser/bookmarks

3)  读取手机联系人:uri = content://com.android.contacts/data/phones



访问浏览器:

/home/cdz/Android/mokesoures/frameworks/base/core/java/android/webkit

/home/cdz/Android/mokesoures/frameworks/base/tools/layoutlib/bridge/src/android/webkit



0422  无收获

avd  创建: 不明白原理

userdata-quem.img
















0 0
原创粉丝点击