IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> RPC及其自动化 -> 正文阅读

[网络协议]RPC及其自动化

修改DEMO

package com.roysue.demo02;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;



public class MainActivity extends AppCompatActivity {

    private String total = "hello";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        while(true){
            try{
                Thread.sleep(1000);
            } catch(InterruptedException e) {
                e.printStackTrace();
            }
            fun(50, 30);
            Log.d("rOysue.String", fun("LoWeRcAsE Me!!!!!!!"));
        }
    }
    void fun(int x, int y){
        Log.d("rOysue.sum", String.valueOf(x+y));
    }
    String fun(String x){
        return x.toLowerCase();
    }

    void secret(){
        total += " ##secretFunc";
        Log.d("rOysue.secret", "this is secret func");
    }
    static void staticSecret(){
        Log.d("rOysue.secret", "this is static secret func");
    }

}

代码清单 4.js

function CallSecretFunc() {
    Java.perform(function(){

        Java.choose('com.roysue.demo02.MainActivity',{
            onMatch:function(instance){
                instance.secret()
            },
            onComplete:function(){

            }

        })

    })
}
function getTotalValue(){
    Java.perform(function(){
        var MainActivity = Java.use('com.roysue.demo02.MainActivity')
        Java.choose('com.roysue.demo02.MainActivity',{
            onMatch:function(instance){
                console.log('total value = ', instance.total.value)
            },
            onComplete:function(){
                console.log('search Complete')
            }
        })
    })
}
setImmediate(getTotalValue)

rpc.exports = {
    callsecretfunc :  CallSecretFunc,
    gettotalvalue : getTotalValue
};

在确认函数没有写错且功能达到预期后,接下来开始RPC远程调用。将CallSecretFunc()函数和getTotalValue()函数导出,使得外部可以进行调用。在尾部加上RPC相关代码:

rpc.exports = {
? ? callsecretfunc : ?CallSecretFunc,
? ? gettotalvalue : getTotalValue
};

这部分代码实现的功能是将?CallSecretFunc()函数和getTotalValue()函数分别导出为callsecretfunc和gettotalvalue。需要注意的是,导出名不可以有大写字母或者下划线。接下来在外部就可以调用这两个函数了。

代码清单 loader.py

import frida, sys

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

device = frida.get_usb_device()  #获取usb设备句柄
process = device.attach('demo02') #获取给定包名的app进程

#获取js脚本内容
with open('4.js') as f:
    jscode = f.read()
script = process.create_script(jscode) #把JS脚本塞进process

script.on('message', on_message)  #注册自己消息对应的函数,当JS想输出时会通过指定on_message进行
script.load()

command = ""
while 1 == 1:
    command = input("\nEnter Command:\n1: Exit\n2: Call secret function\n3: Get Total Value\nchoice:")
    if command == "1":
        break
    #RPC远程调用
    elif command == "2":
        script.exports.callsecretfunc()
    elif command == "3":
        script.exports.gettotalvalue()

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 12:18:36  更:2022-01-28 12:20:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:36:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码