【2021春节】Android中级题

ida截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


function main(){
    var check_addr = Module.findExportByName('libnative-lib.so','Java_cn_pojie52_cm01_MainActivity_check');
    var so_addr = Module.findBaseAddress('libnative-lib.so');
    // if(check_addr != null){
    //     Interceptor.attach(check_addr,{
    //         onEnter:function(args){
    //             console.log( hexdump(args[1]));
    //         },onLeave:function(){

    //         }
    //     })
    // }

    var addr_b90 = so_addr.add(0xb90);
    var b90 = new NativeFunction(addr_b90,'int',['pointer','int','pointer']);
    var arg1 = Memory.allocUtf8String('123456789012345678901234567890');
    var arg2 = 30;
    var arg3 = Memory.allocUtf8String('areyousure??????');

    var result_b90 = b90(arg1,arg2,arg3);
    console.log(Memory.readByteArray(arg1,64));

    console.log(result_b90);


    // var addr_d90 = so_addr.add(0xd90);
 
    // var sub_d90 = new NativeFunction(addr_d90 , 'pointer', ['pointer', 'int' ]);

    // var arg1 = Memory.allocUtf8String('123456789012345678901234567890');

    // var arg2 = 30; 

    // var ret_d90 = sub_d90(arg1,arg2);

    // console.log(Memory.readByteArray(ret_d90,64));
    // console.log(ret_d90.readCString());


}

function hook_b90(){
    
    var so_addr = Module.findBaseAddress('libnative-lib.so');
    if(so_addr != null){
        var b90_addr = so_addr.add(0xb90);
        Interceptor.attach(b90_addr,{
            onEnter:function(args){
                this.arg0 = args[0];
                this.arg1 = args[1];
                this.arg2 = args[2];
                console.log(hexdump(args[0]));
                console.log(args[1]);
                console.log(hexdump(args[2]));
            },onLeave:function(retval){
                console.log('---------------------');
                console.log(hexdump(this.arg0));
                // console.log(retval);
            }
        })
    }
}

var destAddr = '';  //定位xsp地址
 
  
 
function inline_hook() {
 
    var so_addr = Module.findBaseAddress("libnative-lib.so");
 
     
 
     
 
    if (so_addr) {
 
        console.log("so_addr:", so_addr);
 
         
 
        var addr_b90 = so_addr.add(0xB90);
 
        var sub_b90 = new NativeFunction(addr_b90 , 'int', ['pointer', 'int', 'pointer']);
 
        Interceptor.attach(sub_b90, { 
 
            onEnter: function(args) 
 
            {  
 
            destAddr = args[0];

            console.log('onEnter B90');
            console.log('args[0]',hexdump(args[0]) ); 
 
            },
 
            //在hook函数之后执行的语句
 
            onLeave:function(retval)
 
            { 
 
            console.log('onLeave B90');
 
            } 
 
        }); 
 
 
 
      
 
        var addr_b2c = so_addr.add(0xb2c);
 
        console.log("The addr_b2c:", addr_b2c);
 
        Java.perform(function() {
 
            Interceptor.attach(addr_b2c, {
 
                onEnter: function(args) { 
                console.log("addr_b2c OnEnter :",  Memory.readByteArray(destAddr.sub(0x38),64) );
 
                }
 
            })
 
        })
 
    } 
 
}

function hook_x9(){
    var so_addr = Module.findBaseAddress('libnative-lib.so');
    var b30_addr = so_addr.add(0xb30);
    Interceptor.attach(b30_addr,{
        onEnter:function(args){
            console.log('x9=',hexdump(this.context.x9));
            console.log('x9->',Memory.readCString(this.context.x9) );
            // console.log('x8->',this.context.w10);
        },onLeave:function(retval){

        }
    })
}
setImmediate(hook_x9);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值