第十三课、frida速成:参数调用返回值

查看 96|回复 7
作者:胡凯莉   
第十三课、frida速成:参数调用返回值objection定位
  • frida-ps -U |grep -i jun
  • cd .objection
  • mv objection.log  objection0221.log
  • objection -g com.example.junior  explore
  • android hooking list activities   
  • android intent launch_activity com.example.junior.ClickActivity
  • android hooking list class_methods com.example.junior.util.Utils         查看类中的方法
  • android hooking watch class_method com.example.junior.util.Utils.dip2px --dump-args --dump-backtrace --dump-return
  • objection就分析到这里 然后frida启动修改参数返回值
    frida代码分析修改参数返回值function main(){
        Java.perform(function(){//java code write here
            console.log("hooking==>");
            Java.use("com.example.junior.util.Utils").dip2px.implementation = function(context,float){
                var result = this.dip2px(context,float);
                console.log("context,float==>",context,float);
                return result;
    ​
            }
        })
    }
    ​
    ​
    setImmediate(main)
  • frida -UF -l 230221.js
  • 修改代码后 Ctrl + S 立即生效
  • 加上智姐姐写的调用栈
  • console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
  • function main(){
        Java.perform(function(){//java code write here
            console.log("hooking==>");
            Java.use("com.example.junior.util.Utils").dip2px.implementation = function(context,float){
    ​
                return null;
    ​
            }
        })
    }
    ​
    ​
    setImmediate(main)
  • 不执行 直接返回null
  • 修改参数

  • hook的两个原则
  • 离数据越近越好
  • 离动作越近越好

  • android.widget.TextView; 是这个类中的函数
    修改参数function Screen(){
        Java.perform(function(){
            Java.use("android.widget.TextView").setText.overload('java.lang.CharSequence').implementation = function(txt){
    ​
                var javaString = Java.use("java.lang.String")
                var newstring = javaString.$new("demoli")
    ​
    ​
                var res = this.setText(newstring)
                console.log("res======>",res)
                console.log("txt======>",txt)
                console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
                return res;
            }
        })
    }

    参数, 返回值

  • 78zhanghao87   

    大佬啊,连发好几篇,佩服佩服
    walykyy   

    厉害啊,看名字是个MM吗?
    快乐大笨   

    新的挑战
    xueshanshi2   

    hook so层的会么?
    shuahtbcfff   

    学习了,谢谢楼主
    amwquhwqas128   

    感谢分享的大佬
    superworker2022   

    系列课程的必须好好收藏~
    您需要登录后才可以回帖 登录 | 立即注册