欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Hook實現(xiàn)Android 微信、陌陌 、探探位置模擬(附源碼下載)

 更新時間:2017年03月15日 11:56:39   作者:Mark_YPQ  
這篇文章主要介紹了Hook實現(xiàn)Android 微信、陌陌 、探探位置模擬(附源碼下載)的相關(guān)資料,需要的朋友可以參考下

Hook實現(xiàn)Android 微信、陌陌 、探探位置模擬

 最近需要對微信,陌陌等程序進行位置模擬 實現(xiàn)世界各地發(fā)朋友圈,搜索附近人的功能,本著站在巨人肩膀上的原則 愛網(wǎng)上搜索一番。

 也找到一些 代碼和文章,但是代碼大都雷同而且都有一個弊端 比如說 微信 對目標(biāo)函數(shù)實現(xiàn)hook之后第一次打開微信 第一次定位是可以改變的

  但是 我如果想更換地址的話 就需要重啟手機了,重新加載hook了,試了很多次都是這樣滿足不了需求。

為了改進這個地方我們從gps定義的源代碼流程開始看尋找hook系統(tǒng)函數(shù)的突破口 

 我也是看完之后才找到hook的地方 LocationMangerService  這個類

@Override
 public void reportLocation(Location location, boolean passive) {
 checkCallerIsProvider(); //檢測權(quán)限和uid

 if (!location.isComplete()) {
  Log.w(TAG, "Dropping incomplete location: " + location);
  return;
 }
  //發(fā)送位置信息
 mLocationHandler.removeMessages(MSG_LOCATION_CHANGED, location);
 Message m = Message.obtain(mLocationHandler, MSG_LOCATION_CHANGED, location);
 m.arg1 = (passive ? 1 : 0);
 mLocationHandler.sendMessageAtFrontOfQueue(m);
 }

那么我們可以hook掉這個location的參數(shù) 修改為我們想要定位的地方就可以實現(xiàn)效果了,

 XposedHelpers.findAndHookMethod("com.android.server.LocationManagerService", lpparam.classLoader, "reportLocation", Location.class, boolean.class, new XC_MethodHook() {
  @Override
  protected void afterHookedMethod(MethodHookParam param) throws Throwable {
  super.afterHookedMethod(param);
  Location location = (Location) param.args[0];
  XposedBridge.log("實際 系統(tǒng) 經(jīng)度"+location.getLatitude() +" 系統(tǒng) 緯度"+location.getLongitude() +"系統(tǒng) 加速度 "+location.getAccuracy());
  XSharedPreferences xsp =new XSharedPreferences("com.markypq.gpshook","markypq");
  if (xsp.getBoolean("enableHook",true)){
   double latitude = Double.valueOf(xsp.getString("lan","117.536246"))+ (double) new Random().nextInt(1000) / 1000000 ;
   double longtitude = Double.valueOf(xsp.getString("lon","36.681752"))+ (double) new Random().nextInt(1000) / 1000000 ;
   location.setLongitude(longtitude);
   location.setLatitude(latitude);
   XposedBridge.log("hook 系統(tǒng) 經(jīng)度"+location.getLatitude() +" 系統(tǒng) 緯度"+location.getLongitude() +"系統(tǒng) 加速度 "+location.getAccuracy());
  }

  }
 });

如果我想主動調(diào)用這個函數(shù) 必須要得到這個LocationMangerService 的對象 獲取這個對象可以通過hook LocationManager 的構(gòu)造函數(shù)獲取,

 XposedBridge.hookAllConstructors(LocationManager.class,new XC_MethodHook() {
  @Override
  protected void afterHookedMethod(MethodHookParam param) throws Throwable {
  super.afterHookedMethod(param);
  if (param.args.length==2) {
   Context context = (Context) param.args[0]; //這里的 context
   XposedBridge.log(" 對 "+getProgramNameByPackageName(context)+" 模擬位置");
   //把權(quán)限的檢查 hook掉
   XposedHelpers.findAndHookMethod(context.getClass(), "checkCallingOrSelfPermission", String.class, new XC_MethodHook() {
   @Override
   protected void afterHookedMethod(MethodHookParam param) throws Throwable {
    super.afterHookedMethod(param);
    if (param.args[0].toString().contains("INSTALL_LOCATION_PROVIDER")){
    param.setResult(PackageManager.PERMISSION_GRANTED);
    }
   }
   });
   XposedBridge.log("LocationManager : " + context.getPackageName() + " class:= " + param.args[1].getClass().toString());
   //獲取到 locationManagerService 主動調(diào)用 對象的 reportLocation 方法 可以去模擬提供位置信息
   //這里代碼中并沒有涉及到主動調(diào)用
   Object locationManagerService = param.args[1];
  }
  }
 });

當(dāng)然還需要hook一些其他的輔助函數(shù) ,這些函數(shù)都可以在 Android studio 中看到Java的代碼 我們就無需過多解釋了 上 源代碼

源碼下載

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Android實現(xiàn)后臺開啟服務(wù)默默拍照功能

    Android實現(xiàn)后臺開啟服務(wù)默默拍照功能

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)后臺開啟服務(wù)默默拍照功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Android自定義九宮格輸入框

    Android自定義九宮格輸入框

    這篇文章主要為大家詳細(xì)介紹了Android自定義九宮格輸入框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Android利用AsyncTask異步類實現(xiàn)網(wǎng)頁內(nèi)容放大縮小

    Android利用AsyncTask異步類實現(xiàn)網(wǎng)頁內(nèi)容放大縮小

    這篇文章主要為大家介紹了利用AsyncTask異步類實現(xiàn)網(wǎng)頁內(nèi)容放大縮小的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 詳解如何魔改Retrofit實例

    詳解如何魔改Retrofit實例

    這篇文章主要為大家介紹了詳解如何魔改Retrofit實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Android仿QQ空間主頁面的實現(xiàn)

    Android仿QQ空間主頁面的實現(xiàn)

    今天模仿安卓QQ空間,打開程序的啟動畫面和導(dǎo)航頁面我就不做了,大家可以模仿微信的那個做一下,很簡單。這次主要做一下主頁面的實現(xiàn),感興趣的朋友可以參考下
    2013-01-01
  • Android自定義View仿QQ健康界面

    Android自定義View仿QQ健康界面

    這篇文章主要為大家詳細(xì)介紹了Android自定義View仿QQ健康界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Android之rk3588?開發(fā)環(huán)境準(zhǔn)備及問題解決方法

    Android之rk3588?開發(fā)環(huán)境準(zhǔn)備及問題解決方法

    這篇文章主要介紹了Android中的rk3588?開發(fā)環(huán)境準(zhǔn)備,本文給大家分享遇到的問題及解決方法,本文給大家講解的非常詳細(xì)對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • Android自定義實現(xiàn)循環(huán)滾輪控件WheelView

    Android自定義實現(xiàn)循環(huán)滾輪控件WheelView

    滾輪布局WheelView大家經(jīng)常使用,比如在選擇生日的時候,風(fēng)格類似系統(tǒng)提供的DatePickerDialog,這篇文章主要為大家詳細(xì)介紹了Android自定義實現(xiàn)循環(huán)滾輪控件WheelView,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Android GPS定位詳解及實例代碼

    Android GPS定位詳解及實例代碼

    這篇文章主要介紹了Android GPS定位詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Android四大組件之廣播BroadcastReceiver詳解

    Android四大組件之廣播BroadcastReceiver詳解

    Android開發(fā)的四大組件分別是:活動(activity),用于表現(xiàn)功能;服務(wù)(service),后臺運行服務(wù),不提供界面呈現(xiàn);廣播接受者(Broadcast Receive),勇于接收廣播;內(nèi)容提供者(Content Provider),支持多個應(yīng)用中存儲和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫,本篇著重介紹廣播組件
    2021-11-11

最新評論