美文网首页
frida简单实用脚本的使用

frida简单实用脚本的使用

作者: 萌木盖 | 来源:发表于2019-09-25 14:44 被阅读0次

在公众号[跟小雅一起学逆向]看到的 具体怎么用还不知道,先保存上以后再看
下面是python脚本,然后根据需求该js代码就可

import frida, sys

def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)

jscode = """
    Java.perform(function () {
    // Function to hook is defined here
    var http = Java.use('com.cmstop.ctmediacloud.util.SignUtil');
    http.getSignStr.implementation = function (a1,a2,a3) {
            send("start");
            send("参数1:"+a1);
            send("参数2:"+a2);
            send("参数3:"+a3);
            var result = this.getSignStr(a1,a2,a3)
            send("结果:"+result);
            send("end");
            return result;
        };
    });
"""

process = frida.get_usb_device().attach('com.baotounews.api.m')
script = process.create_script(jscode)
script.on('message', on_message)
print('[*] Running CTF')
script.load()
sys.stdin.read()

js代码

  • Android中使用StringBuffer,
    StringBuilder这两个类操作字符串,Hook其toString方法并打印堆栈,在很多情况下可以定位到加密字段的生成堆栈。
console.log("加载脚本成功!");
Java.perform(function x() {
    //定位StringBuilder,StringBuffer类
    const stringbuilder = Java.use("java.lang.StringBuilder");
    const stringbuffer = Java.use("java.lang.StringBuffer");

    //定位方法
    const toString = "toString";


    // 使用log类和Exception类产生堆栈
    var jAndroidLog = Java.use("android.util.Log");
    var jException = Java.use("java.lang.Exception");

    stringbuilder[toString].implementation = function(){
        //执行原逻辑
        const result = this[toString]();
        // 打印返回的字符串内容
        console.log(result);

        // 只有长度大于30时,才打印堆栈
        if (result.length > 30) {
            // 抛出异常。打印堆栈
            console.log(jAndroidLog.getStackTraceString(jException.$new()));
        }

        //return出去
        return result;
    };

    stringbuffer[toString].implementation = function() {
        //执行原逻辑
        const result = this[toString]();
        // 打印返回的字符串内容
        console.log(result);
        // 只有长度大于30时,才打印堆栈
        if (result.length > 30) {
            // 抛出异常。打印堆栈
            console.log(jAndroidLog.getStackTraceString(jException.$new()));
        }
        //return出去
        return result;
    }

});
  • Hook 用于字符串比较的方法,同样可以得到大量信息,需要注意的是,代码没有做优化,应该加上堆栈调用+输出筛选,否则遇到较大的应用会崩溃。
console.log("加载脚本成功!");
Java.perform(function x() {
    //定位类
    const str = Java.use('java.lang.String');
    const objectClass = 'java.lang.Object';
    console.log("已经定位到目标类");//定位类成功!
    // 在这里更改类的方法的实现(implementation)
    str.equals.overload(objectClass).implementation = function(obj) {
        //打印传入的参数
        var response = str.equals.overload(objectClass).call(this, obj);
        console.log(str.toString.call(this) + ' == ' + obj.toString() + ' ? ' + response);


        //return出去
        return response;
    }

});
  • 加密算法中,明文调用getBytes方法转换为字节数组,Hook并打印堆栈可以快速定位
console.log("加载脚本成功!");
Java.perform(function x() {
    //定位类
    const str = Java.use('java.lang.String');

    console.log("已经定位到目标类");//定位类成功!
    // 在这里更改类的方法的实现(implementation)
    str.getBytes.overload().implementation = function() {

        var response = this["getBytes"]();
        console.log(this.toString());
        //return出去
        return response;
    }

});

相关文章

  • frida简单实用脚本的使用

    在公众号[跟小雅一起学逆向]看到的 具体怎么用还不知道,先保存上以后再看下面是python脚本,然后根据需求该...

  • Frida简单使用

    最近在学习使用Frida,主要是Android 7之后,Xposed不大容易安装。写这篇文章,方便之后用的时候,直...

  • FRIDA 实用手册

    FRIDA 实用手册 本文目的是作为工具类文章,收集整理了一些 FRIDA 的使用技巧和用例,方便同学们在开发使用...

  • Frida Snippet

    记录常用的Frida的脚本 template

  • frida-dexdump 真机&模拟器 一键安装+执行

    这周尝试在android上使用frida-dexdump去获取加固的apk里的dex,写了两个版本的脚本,方便大家...

  • PHP多进程

    PHP多进程 1.多开几个进程,这种方式简单实用,推荐,比如说使用shell脚本: 2.pcntl扩展 php多进...

  • ios逆向之Frida-ios-dump一键砸壳

    安装 frida frida 的安装很简单,我是直接 Google 搜索 frida ,然后根据官网上的文档进行安...

  • Frida安装与简单使用

    环境配置 本机的Python版本为Python3Frida GitHub下载地址[https://github.c...

  • shell实用脚本(探测内网存活主机)

    探测内网网段存活主机的实用脚本(很简单好用) 虽然很简单,但是很好用。

  • frida-iOS-dump 一键砸壳

    手机安装frida Mac安装frida 下载frida-ios-dump 使用手机登录ssh 砸壳 1. 手机安...

网友评论

      本文标题:frida简单实用脚本的使用

      本文链接:https://www.haomeiwen.com/subject/msziuctx.html