Hook案例

Hook案例——以某音作为案例

参考:

xposed模块开发步骤总结  https://blog.csdn.net/csdn_lqr/article/details/52245132

 

魅族手机Xposed框架安装真的艰险,显示降Android版本至6.0

后自带的root还是不完整,只能凑合着用了,安装Xposed Installed,安装框架

 

在eclipse中创建安卓项目,不需要MainActivity,

1.导入jar,该jar(XposedBridge.jar)包可以在手机安装xp后里找到,导入路径需在lib下,注意而不是libs,然后右键jar包Build Path => Add to Build Path

 

2.要成功xposed模块,被xposed识别,一般需要在清单文件中标识该三个元数据(meta-data)

Hook案例_第1张图片


        
        
        

 

3.指定入口

在assets目录下新建一个名为xposed_init的文件。

然后在xposed_init中写入某个IXposedHookLoadPackage子类的完整类名,如:com.dyxposed.Dyhook

Hook案例_第2张图片

 

接下来就可以写hook的代码了

Hook案例_第3张图片

详细代码见文末

运行:

在调试的手机上安卓这个apk或者run as android application 进行安装改HOOK模块

安装后,在xp框架中找到这个安装后的模块打钩,后有提示reboot后将会生效,软重启即可(软重启自然比硬重启快的,但是手机完整root问题,作者只能硬重启…)

重启后用adb logcat中就可以看到HOOK结果啦

Hook案例_第4张图片


 

public class Dyhook implements IXposedHookLoadPackage {

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
    if("com.ss.android.ugc.aweme".equals(loadPackageParam.packageName)) {
        Class clazz = null;
        try {
            clazz = loadPackageParam.classLoader.loadClass("com.ss.android.common.applog.UserInfo");
            Log.i("result","load class:"+clazz);
        }catch(Exception e) {
            Log.i("result","load class err:"+Log.getStackTraceString(e));
        }

       
        XposedHelpers.findAndHookMethod("com.ss.android.common.applog.UserInfo",
                loadPackageParam.classLoader,"getUserInfo",int.class,
                String.class,String[].class,new XC_MethodHook() {

            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable{
                super.afterHookedMethod(param);
                try {
                   StringBuilder res= new StringBuilder();
                   String[] temp = (String[])param.args[2];
                   if(temp != null) {
                       for(int i =0;i

 

你可能感兴趣的:(安卓逆向)