VirtualLocation icon indicating copy to clipboard operation
VirtualLocation copied to clipboard

关于loadClass类名和方法名的问题

Open imtypist opened this issue 7 years ago • 1 comments

楼主是不是只对高德地图做了hook,我想问的是就是你怎么知道高德地图是通过com.amap.api.location.AMapLocation这个类以及类下面的方法获取的经纬度呢?如何知道这个具体的类名以及方法名,希望能请教一下~ 比如我需要hook百度地图或者腾讯地图应该怎么去找这个类名和方法名呢,我之前看了网上的好多hook gps的例子(比如这个),就是对很多locationmanager类进行hook,但是我实测都不起作用,是不是高德的应用做了什么特殊处理? 刚学习xposed小白,希望可以得到您的回答,谢谢!

/**
     * 修改高德地图的经纬度值
     * @param
     * @throws ClassNotFoundException
     */
    public static void findMethodAmapLongitudeAndLatitude(ClassLoader classLoader) {
        try {
            Class aMapLocationClazz = classLoader.loadClass("com.amap.api.location.AMapLocation");
            XposedHelpers.findAndHookMethod(aMapLocationClazz, "getLongitude", new Object[]{new XC_MethodHook() {
                protected void beforeHookedMethod(MethodHookParam arg3) throws Throwable {
                    arg3.setResult(Double.valueOf(AppApplication.mMockGps.mLongitude));
                    Log.d(TAG, "修改高德地图的经纬度值:" + AppApplication.mMockGps.mLongitude + ":" + AppApplication.mMockGps.mLatitude);
                }
            }});

imtypist avatar Apr 16 '18 10:04 imtypist

Hook的入口点确实要花时间分析,像高德地图的挂钩拦截入口点是通过查看高德地图SDK,这样就很清楚需要Hook的函数了

littleRich avatar Apr 20 '18 05:04 littleRich