| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- # -*- coding:utf-8 -*-
- import sys
- __author__ = 'Snow'
- import frida
- app = "武林闲侠"
- dev = frida.get_remote_device()
- # pid = dev.spawn(app)
- session = dev.attach(app)
- src = """
- setImmediate(function(){
- Java.perform(function(){
- send("starting script");
- //var Toast = Java.use("android.widget.Toast");
- // 获取 context
- //var currentApplication = Java.use("android.app.ActivityThread").currentApplication();
- //var context = currentApplication.getApplicationContext();
- // 在主线程中运行回调
- //Java.scheduleOnMainThread(function(){
- // Toast.makeText(context, "Hello frida!", Toast.LENGTH_LONG.value).show();
- //});
- var TypedArray = Java.use("android.content.res.TypedArray");
- TypedArray.hasValue.implementation = function(var1){
- var result = this.hasValue(var1);
- send("hook hasValue index="+var1);
- send("hook hasValue mData=" + this.mData.value);
- send("hook hasValue result="+result);
- return result;
- };
- var Activity = Java.use("android.app.Activity");
- Activity.onCreate.overload("android.os.Bundle").implementation = function(var1){
- send("hook onCreate activity="+this);
- this.onCreate(var1);
- };
- var AppCompatDelegateImpl = Java.use("androidx.appcompat.app.AppCompatDelegateImpl");
- AppCompatDelegateImpl.createSubDecor.implementation = function(){
- send("hook createSubDecor");
- var result = this.createSubDecor();
- console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()));
- return result;
- };
- //var Context = Java.use("android.content.Context");
- //Context.obtainStyledAttributes.overload("[I").implementation = function(var1){
- // var result = this.obtainStyledAttributes(var1);
- // send("obtainStyledAttributes param1="+var1);
- // console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()));
- // return result;
- //};
- });
- });
- """
- def on_message(message,data):
- print("[-] {}".format(message))
- script = session.create_script(src)
- script.on("message", on_message)
- script.load()
- # dev.resume(app)
- sys.stdin.read()
|