【Android Hook】
来源:互联网 发布:抽烟的名人 知乎 编辑:程序博客网 时间:2024/04/28 08:36
Hook 代码插入研究
序号
敏感行为
HOOK的API
对应的文件
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
读取手机信息(IMEI、IMSI、手机号码)
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
- 【Android Hook】
- android HOOK
- Android Hook
- Android HooK !
- Android Hook机制之Binder Hook
- Android Hook程序,对库函数进行HOOK
- android hook api
- android hook API
- android hook api
- android hook api
- Android connect函数hook
- android hook api
- Android connect函数hook
- Android inline hook
- Android Java Hook 方法
- Android Hook Java
- Android上玩玩Hook?
- Android安全-Native Hook
- 1. C#中有哪些访问修饰符,简述其访问权限
- /usr/bin/python^M: bad interpreter: No such file
- R语言和深度学习
- iOS开发技巧-iOS7 iOS6 StatusBar
- 正则表达式零宽断言
- 【Android Hook】
- 在Ubuntu(64位)搭建Android开发环境
- c++函数模板
- hdl设计笔记:case 、if 语句加上default的必要性
- 100 High-Quality Java Developers’ Blogs
- telnet使用
- 程序员的恶性循环
- 如何为应用程序添加背景
- svn使用(简单明了)