一、找到加密函数位置

二、在其下面注入ws服务

(1)注入准备

资源>>替换>>随便选一个空文件夹



(2)进行注入

进行(1)操作后可直接编辑js代码了,做以下修改

(function() {var ws = new WebSocket("ws://127.0.0.1:8080")ws.onmessage = function(evt) {console.log("收到消息:" + evt.data);if (evt.data == "exit") {wx.close();} else {ws.send(encrypt(evt.data));}}}
)();

红框为插入的代码

修改完成后按 ctrl+s 进行保存,出现下载紫色点表示成功。

保存成功后,把所有断点去掉,运行下面python代码,然后刷新页面,即可进行python调用了。

三、开启ws服务,python进行调用

注意:先运行python代码再去刷新页面

import sys
import asyncio
import websocketsasync def receive_message(websocket):while True:send_text = input("请输入要加密的字符串:")if send_text == "exit":print("退出!")await websocket.send(send_text)await websocket.close()sys.exit()else:await websocket.send(send_text)response_text = await websocket.recv()print("加密结果:", response_text)start_server = websockets.serve(receive_message, "127.0.0.1", 8080)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

四、测试效果

python测试效果,注:部署到服务器用flask写个接口就可以提供远程调用啦

谷歌控制台效果

四、部署到服务器

到服务器上也是按上面过程,ws注入不变,只修改python代码,然后用flask提供远程调用。

(1)开启ws服务

同样是进行ws注入后,运行下面代码,再刷新页面

python代码

import asyncio
import websocketsconnected = set()
async def server(websocket):connected.add(websocket)try:async for message in websocket:for conn in connected:if conn != websocket:await conn.send(message)finally:connected.remove(websocket)start_server = websockets.serve(server, "127.0.0.1", 8080)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

(2)开启flask服务

开启ws服务,刷新页面后,即可运行flask提供远程调用了

flask代码

import asyncio
import websockets
from flask import Flask,request
app = Flask(__name__)
loop = asyncio.get_event_loop()async def hello(message):# 连接 websocket 并发送消息 获取相应async with websockets.connect("ws://127.0.0.1:8080") as websocket:await websocket.send(message)return await websocket.recv()def get_encrypt(message):return str(loop.run_until_complete(hello(message)))@app.route('/',methods = ['POST', 'GET'])
def hello_world():if request.method == 'GET':encrypt_txt = request.args.get('encrypt_txt')return get_encrypt(encrypt_txt)if __name__ == '__main__':app.run(host="0.0.0.0",port=80,debug=True)

(3)测试效果

测试效果不错,基本0.05s返回,预估每秒50并发无压力。

js逆向之rpc远程调用(你强任你强,我无视一切)相关推荐

  1. 学习笔记-RPC远程调用概念和实例

    RPC远程调用概念和实例 一定要注意顺序,先hook,然后invoke,再rpc 逆向三段: 第三段RPC:Remote Procedure Call 远程调用 FRIDA精髓:远程调动 frida( ...

  2. 徒手撸框架--实现 RPC 远程调用

    微服务,已经是每个互联网开发者必须掌握的一项技术.而 RPC 框架,是构成微服务最重要的组成部分之一.趁最近有时间.又看了看 dubbo 的源码.dubbo 为了做到灵活和解耦,使用了大量的设计模式和 ...

  3. java socket 远程调用_使用Socket反射Java流操作进行方法的远程调用(模拟RPC远程调用)...

    写在前面 阅读本文首先得具备基本的Socket.反射.Java流操作的基本API使用知识:否则本文你可能看不懂... 服务端的端口监听 进行远程调用,那就必须得有客户端和服务端.服务端负责提供服务,客 ...

  4. Rpc远程调用框架的设计与实现(2)

    接上: 3   基于Json的前后端数据交互 3.1   轻量级的数据交换形式 3.1.1    什么是Json Json(JavaScript Object Notation) 是一种轻量级的数据交 ...

  5. Rpc远程调用框架的设计与实现(1)

    Rpc远程调用框架的设计与实现 1   Rpc远程调用框架设计概述 1.1  研究背景 1.1.1传统的Web开发方式 在传统的Web应用程序中,一般都是采取请求→刷新→显示的模式.即每当用户通过单击 ...

  6. 从 0 到 1:全面理解 RPC 远程调用!

    作者 | Python编程时光 责编 | 胡巍巍 什么是RPC呢?百度百科给出的解释是这样的:"RPC(Remote Procedure Call Protocol)--远程过程调用协议,它 ...

  7. python rpc调用_从0到1:全面理解 RPC 远程调用

    上一篇关于 WSGI 的硬核长文,不知道有多少同学,能够从头看到尾的,不管你们有没有看得很过瘾,反正我是写得很爽,总有一种将一样知识吃透了的错觉. 今天我又给自己挖坑了,打算将 rpc 远程调用的知识 ...

  8. androidAsync fridaManager 实现某宝 sgmain 70102 rpc 远程调用

    仅供学习研究 .请勿用于非法用途,本人将不承担任何法律责任. 前言 使用 AndroidAsync + FridaManager 实现 frida 脚本持久化 rpc 远程调用 AndroidAsyn ...

  9. zookeeper 密码_「附源码」Dubbo+Zookeeper 的 RPC 远程调用框架

    技术博文,及时送达 作者 | 码农云帆哥 链接 | blog.csdn.net/sinat_27933301 上一篇:从零搭建创业公司后台技术栈 这是一个基于Dubbo+Zookeeper 的 RPC ...

最新文章

  1. IDEA插件-生成对象所有set方法--->GenerateAllSetter
  2. matlab for循环_从零开始的matlab学习笔记——(5)循环
  3. Redis缓存穿透、击穿、雪崩及主从复制
  4. python生成姓名,python自动生成姓名
  5. Linux操作系统下双网卡路由表配置
  6. Android项目开发实战—倒计时[Handler,Timer,TimerTask,Message]
  7. 本人计划继续写飞鸽传书,支持的人有吗?
  8. SolidEdge 如何绘制局部视图 局部放大图
  9. 安装插件设置Intellij IDEA背景图片
  10. 计算机网络的体系结构
  11. iOS-实现验证码倒计时功能(1)
  12. 注册登录时本地图片验证码
  13. Pycharm 简单设置成官方中文版
  14. 直播行业市场分析:2022年构建多元化的直播生态体系
  15. 基于频域的数字图像水印算法设计
  16. 回退到首页,返回浏览器窗口历史第一页 js
  17. ArcGIS中相对高程的提取
  18. win7系统64位系统怎么计算机配置,电脑装64位系统有什么要求|64位系统安装条件是什么...
  19. 创新式开发探索(三) —— 反思自己的开发活动
  20. 容器服务ACK+容器网络文件系统CNFS快速搭建NGINX网站(体验有礼)

热门文章

  1. 团体程序设计天梯赛----pta 练习集
  2. 充一次电使用一年的手机_手机用一年,要用多少电费,这个你们算过吗?
  3. Android音频开发(7):音乐可视化-FFT频谱图
  4. 移动端 Iphone拍照变横问题的解决
  5. Android Studio教程 简介与入门(资料比较旧,但有一定参考价值)
  6. 【力扣每日一题】691. 贴纸拼词
  7. String类型转 Map
  8. 网易非人学园手游即将公测,一起来看看玩家对非人学园的评价吧
  9. JAVA 产生随机数 排序 输出显示
  10. yolov3从头实现(三)-- yolov3标签制作