精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android HOOK工具Cydia Substrate使用詳解

移動開發 Android
Cydia Substrate是一個代碼修改平臺。它可以修改任何主進程的代碼,不管是用Java還是C/C++(native代碼)編寫的。而Xposed只支持 HOOK app_process中的java函數,因此Cydia Substrate是一款強大而實用的HOOK工具。

Cydia Substrate是一個代碼修改平臺。它可以修改任何主進程的代碼,不管是用Java還是C/C++(native代碼)編寫的。而Xposed只支持 HOOK app_process中的java函數,因此Cydia Substrate是一款強大而實用的HOOK工具。

官網地址:http://www.cydiasubstrate.com/

Demo地址:https://github.com/zencodex/cydia-android-hook

官方教程:http://www.cydiasubstrate.com/id/20cf4700-6379-4a14-9bc2-853fde8cc9d1

SDK下載地址:http://asdk.cydiasubstrate.com/zips/cydia_substrate-r2.zip

Substrate幾個重要API介紹

MS.hookClassLoad 

函數原型:void hookClassLoad(String name, MS.ClassLoadHook hook);

該方法實現在指定的類被加載的時候發出通知。因為一個類可以在任何時候被加載,所以Substrate提供了一個方法用來檢測用戶感興趣的類何時被加載。

     
  

參數

  
  

描述

  

name

包名+類名,使用java的.符號

hook

MS.ClassLoadHook的一個實例,當這個類被加載的時候,它的 classLoaded 方法會被執行。

MS.hookMethod 

該API允許開發者提供一個回調函數替換原來的方法,這個回調函數是一個實現了MS.MethodHook接口的對象,是一個典型的匿名內部類。它包含一個invoked函數。

函數原型:

void hookMethod(Class _class, Member member, MS.MethodHook hook, MS.MethodPointer old); void hookMethod(Class _class, Member member, MS.MethodAlteration alteration);

參數描述

(一)

參數

描述

_class

加載的目標類,為classLoaded傳下來的類參數

member

通過反射得到的需要hook的方法(或構造函數). 注意:不能HOOK字段 (在編譯的時候會進行檢測).

hook

MS.MethodHook的一個實例,其包含的invoked方法會被調用,用以代替member中的代碼

(二)     

  

參數

  
  

描述

  

_class

加載的目標類,為classLoaded傳下來的類參數

member

通過反射得到的需要hook的方法(或構造函數). 注意:不能HOOK字段 (在編譯的時候會進行檢測).

alteration

An instance of MS.MethodAlteration whose boxedinvoked method will be called instead of member. This instance will also be filled in using information from   the original implementation, allowing you to use invoke to call the original method implementation.

建議開發者使用第二種方式,這種方式使用起來簡單并且很少出錯,不需要一個單獨的MS.MethodPointer類實例。

使用方法

下面以官網的一個實例來說明cydia substrate的使用方法。該實例是實現將多個接口組件顏色修改為紫羅蘭色。

需要安裝:http://www.cydiasubstrate.com/download/com.saurik.substrate.apk

步驟一:創建一個空的Android工程。由于創建的工程將以插件的形式被加載,所以不需要activity。將SDK中的substrate-api.jar復制到project/libs文件夾中。

步驟二:配置Manifest文件

(1)需要指定權限:cydia.permission.SUBSTRATE

(2)添加meta標簽,name為cydia.permission.SUBSTRATE,value為下一步中創建的類名.Main

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"> 
  2.     <application> 
  3.         <meta-data android:name="com.saurik.substrate.main" 
  4.             android:value=".Main"/> 
  5.     </application> 
  6.     <uses-permission android:name="cydia.permission.SUBSTRATE"/> 
  7. </manifest> 

步驟二:創建一個類,類名為Main。類中包含一個static方法initialize,當插件被加載的時候,該方法中的代碼就會運行,完成一些必要的初始化工作。

  1. import com.saurik.substrate.MS; 
  2.   
  3. public class Main { 
  4.     static void initialize() {  
  5.         // ... code to run when extension is loaded 
  6.     } 

步驟三:為了實現HOOK,達到修改目標類中的代碼的目的,我們需要得到目標類的一個實例,如示例中的resources。

  1. public class Main { 
  2.     static void initialize() { 
  3.         MS.hookClassLoad("android.content.res.Resources"new MS.ClassLoadHook() { 
  4.             public void classLoaded(Class<?> resources) { 
  5.                 // ... code to modify the class when loaded 
  6.             } 
  7.         }); 
  8.     } 

步驟四:通過MS.MethodHook實例實現原代碼的修改。

為了調用原來代碼中的方法,我們需要創建一個MS.MethodPointer類的實例,它可以在任何時候運行原來的代碼。

在這里我們通過對原代碼中resources對象原始代碼的調用和修改,將所有綠色修改成了紫羅蘭色。

  1. public void classLoaded(Class<?> resources) { 
  2. Method getColor;  
  3. try { 
  4.         getColor = resources.getMethod("getColor", Integer.TYPE); 
  5.     } catch (NoSuchMethodException e) { 
  6.         getColor = null
  7.     } 
  8.   
  9.     if (getColor != null) { 
  10.         final MS.MethodPointer old = new MS.MethodPointer(); 
  11.   
  12.         MS.hookMethod(resources, getColor, new MS.MethodHook() { 
  13.             public Object invoked(Object resources, Object... args) 
  14.                 throws Throwable 
  15.             { 
  16.                 int color = (Integer) old.invoke(resources, args); 
  17.                 return color & ~0x0000ff00 | 0x00ff0000
  18.             } 
  19.         }, old); 
  20.     } 

安裝運行,重啟系統后發現很多字體顏色都變了。如下圖所示:

                 

示例中MS.hookMethod的代碼可以改成:

  1. MS.hookMethod(resources, getColor, new MS.MethodAlteration<Resources, Integer>() { 
  2.          public Integer invoked(Resources resources, Object... args) 
  3.                  throws Throwable 
  4.          { 
  5.                  int color = invoke(resources, args); 
  6.                  return color & ~0x0000ff00 | 0x00ffee00
  7.          } 
  8. }); 

短信監控實例

在下面的例子中我們實現了短信監聽功能,將短信發送人、接收人以及短信內容打印出來:

  1. 1 import java.lang.reflect.Method; 
  2.  2 import android.app.PendingIntent; 
  3.  3 import android.util.Log; 
  4.  4 import com.saurik.substrate.MS; 
  5.  5   
  6.  6  
  7.  7 public class Main { 
  8.  8  
  9.  9     static void initialize() {   
  10. 10  
  11. 11     MS.hookClassLoad("android.telephony.SmsManager"new MS.ClassLoadHook() { 
  12. 12             
  13. 13  
  14. 14             @Override 
  15. 15  
  16. 16             public void classLoaded(Class<?> SmsManager) { 
  17. 17  
  18. 18                 //code to modify the class when loaded 
  19. 19  
  20. 20             Method sendTextMessage; 
  21. 21  
  22. 22             try { 
  23. 23  
  24. 24                     sendTextMessage = SmsManager.getMethod("sendTextMessage"
  25. 25  
  26. 26                             new Class[]{String.class,String.class,String.class,PendingIntent.class,PendingIntent.class}); 
  27. 27                     
  28. 28  
  29. 29                 } catch (NoSuchMethodException e) { 
  30. 30  
  31. 31                     sendTextMessage = null
  32. 32  
  33. 33                 } 
  34. 34  
  35. 35              MS.hookMethod(SmsManager, sendTextMessage, new MS.MethodAlteration() { 
  36. 36  
  37. 37                  public Object invoked(Object _this,Object... _args) throws Throwable{ 
  38. 38  
  39. 39                      Log.i("SMSHOOK","SEND_SMS"); 
  40. 40  
  41. 41                      Log.i("SMSHOOK","destination:"+_args[0]); 
  42. 42  
  43. 43                      Log.i("SMSHOOK","source:"+_args[1]); 
  44. 44  
  45. 45                      Log.i("SMSHOOK","text:"+_args[2]); 
  46. 46  
  47. 47                         return invoke(_this, _args); 
  48. 48  
  49. 49                     } 
  50. 50  
  51. 51             }); 
  52. 52             
  53. 53  
  54. 54             } 
  55. 55  
  56. 56         }); 
  57. 57  
  58. 58     } 
  59. 59  
  60. 60 } 

運行后的結果為:

 

責任編輯:閆佳明 來源: cnblogs
相關推薦

2024-07-16 09:51:39

HTMLHookReact

2023-12-25 08:25:42

AndroidHook應用程序

2019-02-23 13:53:55

起獲蘋果iOS

2018-02-07 15:25:41

2010-05-19 10:22:07

2011-07-06 17:48:30

iPhone Xcode 模擬器

2010-02-03 15:59:08

Android組件

2010-01-28 10:31:32

Android使用SD

2011-04-06 15:51:32

DelphiHOOK

2011-08-15 22:10:08

Oracle性能分析工

2019-11-01 08:49:07

JVM監控性能

2017-03-06 14:44:49

Androidhook技術

2009-07-08 17:33:46

JDK5.0內置工具

2020-11-11 10:25:51

Linuxss命令

2013-07-10 15:52:17

fragmentAndroid

2017-02-17 11:50:18

AndroidBitmap緩存池

2011-09-13 17:03:16

Eclipse And

2017-11-01 07:57:08

Python

2017-06-12 18:48:00

Android性能分析工具

2013-07-17 15:39:39

Github詳解
點贊
收藏

51CTO技術棧公眾號

一个人看的视频www| 亚洲女人毛片| 亚洲欧美一区二区三区在线观看| 亚洲免费观看高清完整版在线观| 在线免费av一区| 国产av不卡一区二区| 日韩在线视频观看免费| 日韩电影免费在线看| 久久成年人视频| 91黄色免费视频| 国产成人久久精品麻豆二区| 亚洲综合成人网| 日本免费高清一区| 黑人精品一区二区| 麻豆精品视频在线| 51ⅴ精品国产91久久久久久| 一级免费黄色录像| 性欧美lx╳lx╳| 日韩一区二区三区四区| 久久久久狠狠高潮亚洲精品| www.久久ai| 国产免费观看久久| 国产日韩一区二区三区| 一级二级三级视频| 久久成人国产| 久久99久久亚洲国产| 中文字幕免费在线看线人动作大片| 日本伊人久久| 欧美日韩另类一区| 国产精品第12页| 国内在线视频| 亚洲欧美成人一区二区三区| 久久综合九色综合网站| 亚洲第一天堂在线观看| 韩国成人精品a∨在线观看| 欧美在线视频一区二区| 国产污片在线观看| 中文字幕免费一区二区三区| 中文字幕精品一区二区精品| 日韩人妻无码一区二区三区| 精品国产乱子伦一区二区| 69堂亚洲精品首页| 性欧美videossex精品| 欧美momandson| 狠狠躁18三区二区一区| 国产美女主播在线| 青青草原国产在线| 亚洲欧美日韩国产成人精品影院| 视频在线99| 国产有码在线| 日本一区免费视频| 色婷婷精品国产一区二区三区| 亚洲 国产 欧美 日韩| 成人av免费网站| 97伦理在线四区| 亚洲av少妇一区二区在线观看| 国产在线视频不卡二| 成人免费看片视频| 91在线公开视频| 黑人巨大精品欧美一区| 亚洲综合小说区| 国产按摩一区二区三区| 国产黄人亚洲片| 国产精品9999久久久久仙踪林| 亚洲AV无码一区二区三区性| 国产成人亚洲精品狼色在线| www 成人av com| 高h调教冰块play男男双性文| 国产成人免费高清| 国产精品一区二区三区不卡| 欧美自拍偷拍第一页| 不卡一区二区三区四区| 久久大香伊蕉在人线观看热2| 无码精品人妻一区二区| 久久综合九色综合欧美就去吻| 欧美精品在线一区| 国产美女在线一区| 欧美成人免费在线观看| 热re99久久精品国99热蜜月| 九色在线视频| 中文欧美字幕免费| 五月天综合婷婷| 日本在线视频www鲁啊鲁| 午夜精品一区二区三区电影天堂| 欧美日韩性生活片| 亚洲成人av观看| 欧美乱妇20p| 日韩av成人网| 亚洲精品合集| 久久精品国产69国产精品亚洲| 欧美三级 欧美一级| 国产免费成人| 国产美女高潮久久白浆| 亚洲第一页视频| 久久久高清一区二区三区| 日本精品二区| 五月天激情在线| 福利微拍一区二区| 日韩av在线中文| 成人av资源网址| 一区二区三区国产视频| 深夜福利影院在线观看| 老鸭窝毛片一区二区三区| 91精品国产综合久久久久久蜜臀 | 欧美女子与性| 国产精品盗摄一区二区三区| 东北少妇不带套对白| 亚洲综合av一区二区三区| 日韩欧美不卡在线观看视频| 国产精品无码久久久久一区二区| 亚洲欧美文学| 国产精品天天狠天天看| 天天操天天插天天射| 亚洲国产精品99久久久久久久久| www污在线观看| 欧美一区二区三区婷婷| 亚洲精品国产品国语在线 | 亚洲理论在线观看| 免费国产成人av| 成人线上播放| 久久视频在线视频| 日本中文字幕在线观看视频| 粉嫩嫩av羞羞动漫久久久| 亚洲制服中文| 偷拍中文亚洲欧美动漫| 亚洲精品一区二区三区福利| 黄色精品视频在线观看| 日韩精品亚洲一区二区三区免费| 99热国产免费| 精品国产99久久久久久| 欧美视频中文一区二区三区在线观看| 中文字幕 日本| 欧美在线高清| 成人黄色免费网站在线观看| 超碰在线国产| 欧美日韩一区二区免费视频| 在线免费看黄色片| 欧美视频不卡| 99精品国产高清在线观看| 精品视频在线一区二区| 678五月天丁香亚洲综合网| 成人激情五月天| 日日摸夜夜添夜夜添国产精品| 99在线观看视频| av毛片在线免费| 9191精品国产综合久久久久久| 成熟人妻av无码专区| 天堂成人免费av电影一区| 麻豆成人在线播放| 在线看片福利| 亚洲精品视频在线观看视频| 国产黄色免费观看| 99久久夜色精品国产网站| av动漫在线看| 最新国产精品视频| 国产91露脸中文字幕在线| 你懂的在线播放| 色综合天天综合网天天狠天天| 亚洲午夜久久久久久久久红桃 | 中文字幕在线不卡一区| 日韩av片专区| 中文字幕一区二区三区乱码图片| 91在线视频导航| 2024最新电影免费在线观看| 精品乱码亚洲一区二区不卡| 欧美成人aaaaⅴ片在线看| 99天天综合性| 亚洲色图38p| 国产精品国产一区| 亚洲最大成人免费视频| 国产99re66在线视频| 亚洲精品一区二区久| 在线观看亚洲黄色| 成人欧美一区二区三区白人| 波多野结衣电影免费观看| 亚洲国产免费看| 日本视频一区在线观看| 日韩黄色三级在线观看| 欧美国产第一页| 污视频在线免费观看| 欧美在线视频日韩| 久久r这里只有精品| 99精品久久只有精品| 天天碰免费视频 | 浮妇高潮喷白浆视频| 国产亚洲第一伦理第一区| 国产欧美日韩中文字幕在线| 日本片在线观看| 亚洲深夜福利视频| 国产精品自产拍| 欧美日韩在线视频首页| 综合 欧美 亚洲日本| 国产福利一区二区三区在线视频| 5月婷婷6月丁香| 99精品视频在线观看播放| 国产精品有限公司| 精品亚洲a∨| 97国产真实伦对白精彩视频8| 成年人在线观看| 亚洲国产高清福利视频| 在线视频播放大全| 欧美日韩国产影院| 久久人妻无码aⅴ毛片a片app | 你懂得视频在线观看| 大尺度一区二区| 伊人国产在线视频| 一本色道久久综合| xxxxxx在线观看| 精品视频99| 久久久久久久久四区三区| 久久久国产精品入口麻豆| 国产精品露脸av在线| 国产777精品精品热热热一区二区| 精品国产一区二区三区四区在线观看 | www.av天天| 成人动漫一区二区三区| 亚洲天堂2018av| 鲁大师影院一区二区三区| www.好吊操| 综合在线视频| 一区不卡视频| 日韩久久精品网| 欧美日韩精品一区| 成人爽a毛片免费啪啪红桃视频| 91香蕉嫩草影院入口| 国产成人精品一区二三区在线观看| 久久人人爽人人爽人人片av高清| 国产一二区在线观看| 在线播放国产一区二区三区| 深夜视频在线免费| 亚洲国产成人精品一区二区| 精品人妻午夜一区二区三区四区| 欧美精品vⅰdeose4hd| 中文永久免费观看| 在线视频国内自拍亚洲视频| 中文字幕亚洲精品一区| 午夜欧美2019年伦理| 精品久久免费视频| 亚洲黄网站在线观看| 中文字幕亚洲欧美日韩| 亚洲欧美视频在线观看| 成年人视频软件| 中文字幕国产一区| 欧美亚洲色综久久精品国产| 国产欧美视频一区二区| 国产精久久一区二区三区| 国产日韩欧美综合一区| 久久久精品成人| 国产精品美女久久久久久久久久久| 美国美女黄色片| 中文字幕乱码一区二区免费| 五月天婷婷丁香网| 国产精品久久久久久久第一福利| 青青草自拍偷拍| 国产精品国产三级国产普通话99 | 在线观看你懂的视频| 国产成人亚洲综合色影视| 18深夜在线观看免费视频| 国产精品影视在线| 中文字幕无码毛片免费看| 成人免费视频一区二区| 精品黑人一区二区三区观看时间| 久久综合久久综合九色| 夫妇交换中文字幕| 自拍偷拍亚洲综合| 久久久久免费看| 五月激情综合婷婷| www.久久精品视频| 欧美色窝79yyyycom| 国产又粗又猛又爽又黄的| 日韩欧美一级精品久久| 午夜国产在线视频| 国产一区二区三区精品久久久 | 成 人 免费 黄 色| 亚洲国产毛片完整版| 国产在线观看免费| 超薄丝袜一区二区| xxxx成人| 日韩美女在线观看| 成人激情久久| 精品国产免费人成电影在线观...| 神马影视一区二区| 91xxx视频| 中文亚洲欧美| 中文字幕丰满乱码| 成人av午夜影院| 韩国三级hd中文字幕| 亚洲精品视频在线观看网站| 久久黄色精品视频| 欧美电影影音先锋| 亚欧洲精品视频| 久久亚洲精品国产亚洲老地址| 国产精品一品| 国产精品自产拍在线观看| 国产ts一区| 亚洲永久激情精品| 国产精品久久久久久模特| 午夜精品久久久久久久99热影院| 成人激情免费网站| 日本成人免费在线观看| 性做久久久久久免费观看欧美| 姑娘第5集在线观看免费好剧| 日韩精品一区二区三区swag| 成人三级黄色免费网站| 高清一区二区三区四区五区| 日韩在线激情| 噜噜噜噜噜久久久久久91| 亚洲网色网站| 91日韩视频在线观看| 不卡视频一二三| 亚洲欧美精品aaaaaa片| 色激情天天射综合网| 国模无码一区二区三区| 北条麻妃久久精品| 怡红院成人在线| 精品国产一区二区三区麻豆免费观看完整版 | 亚洲精品wwww| 中文字幕在线观看播放| 国产精品日日摸夜夜添夜夜av| 久草在线综合| 久久福利一区二区| 国内精品国产三级国产a久久| 国产精品无码午夜福利| 亚洲福利视频三区| 99热这里只有精品9| 这里只有精品在线播放| 中文字幕乱码中文乱码51精品| 国产91免费视频| 在线中文字幕亚洲| 三级一区二区三区| 国产精品伦理在线| 中文字幕一区二区三区免费看| 亚洲精品一区二区久| 在线观看爽视频| 久久久www免费人成黑人精品| 亚洲午夜91| 日本中文字幕有码| 亚洲品质自拍视频| 国产精品久久久久毛片| 久久视频免费观看| 欧美xxxx网站| 一区二区精品视频| 久久99九九99精品| 最新日韩免费视频| 欧美色视频在线观看| 8888四色奇米在线观看| 国产精品久久综合av爱欲tv| 欧美艳星介绍134位艳星| 成人3d动漫一区二区三区| 国产亚洲美州欧州综合国| 中文在线第一页| 亚洲性视频网站| 香蕉成人影院| 中文视频一区视频二区视频三区| 精品一区二区三区在线播放| 三级黄色在线观看| 69久久99精品久久久久婷婷| 午夜av在线播放| 国产呦系列欧美呦日韩呦| 在线亚洲伦理| 免费看91的网站| 在线播放视频一区| 欧美亚洲天堂| 久久久久免费网| 免费在线看一区| 丝袜 亚洲 另类 欧美 重口| 精品欧美久久久| 高清在线视频不卡| 日韩国产欧美一区| 国产中文字幕精品| 免费在线观看亚洲| 精品一区二区三区四区在线| 成人软件在线观看| 樱花www成人免费视频| 国产酒店精品激情| 国产69精品久久久久久久久久| 亚洲性无码av在线| 清纯唯美激情亚洲| 69堂免费视频| 国产精品久久久久久久久久久免费看 | 永久免费毛片在线观看| 在线综合+亚洲+欧美中文字幕| 激情影院在线| 欧洲亚洲一区| 国产精品1区2区| 精品免费囯产一区二区三区| 日韩在线观看免费全| 超碰97久久| 日本久久精品一区二区| 洋洋av久久久久久久一区| 精品无吗乱吗av国产爱色| 91性高湖久久久久久久久_久久99| 亚洲人www| 伊人久久久久久久久久久久久久| 亚洲精品在线免费观看视频| av成人在线播放| 日韩欧美亚洲天堂| 亚洲三级电影全部在线观看高清| 天天摸天天干天天操| 成人午夜小视频|