一、背景

至于RPC是什么,本篇文章不做详细解答!请自行百度查看。

二、效果

远程服务器发送参数,本地客户端调用相关主函数,将返回结果发送给服务器!

输入相关变量返回相关Token!!!

三、实现

本文主要通过Websocket实现RPC调用!

3.1编写Websocket服务端

process.stdin.setEncoding('utf8');
var WebSocketServer = require('ws').Server,
wss = new WebSocketServer({ port: 8181 });// 读取输入
function readlineSync() {return new Promise((resolve, reject) => {process.stdin.resume();process.stdin.on('data', function (data) {process.stdin.pause(); // stops after one line readsresolve(data);});});
}
wss.on('connection', function (ws) {console.log('client connected');ws.on('message', function (message) {// var stockRequest = JSON.parse(message); //根据请求过来的数据来更新。console.log("收到消息:", message.toString());});!(async function(){while(true) {let url = await readlineSync();ws.send(url);  // 发送数据}})()
});

3.2Hook(编写Websocket客户端)

Hook!请看上一篇文章《[007]爬虫系列 | 没有油候&Fiddler如何Hook?!!!》

代码如下:

!(function(){window.tw_test = a;window.tw_n = n;var ws = new WebSocket("ws://127.0.0.1:8181");ws.onopen = function(res){}ws.onmessage = function(res) {console.log(res.data)ws.send(window.tw_test.call(window.tw_n, {url:res.data}));}
})()

四、CORS问题解决

有些时候,Hook会报错:CORS Error!解决方案如下:

添加:--user-data-dir="c:\ChromeDebug" --test-type --disable-web-security 

[007]爬虫系列 | RPC调用简单示例相关推荐

  1. [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(下)

    一.备注 在阅读此文章前,请先阅读前两篇 <[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)> <[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第 ...

  2. [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(中)

    一.备注 在阅读此文章前,请先阅读前一篇<[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)> 二.找参数来源(二) 在前一篇文章中,我们找出了Cookie ...

  3. [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第二题: js 混淆 - 动态Cookie

    一.题目 链接: <猿人学爬虫攻防大赛 | 第二题: js 混淆 - 动态Cookie> 二.分析 按照以往习惯,我们先按F12打开控制台,Network抓包,勾选preserve log ...

  4. [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)

    一.备注 由于此题目比较复杂(个人感觉哈!大佬别喷!),所以博主分析了一个上午,也就只能得出m的生成,所以还是分两天写吧!!! 二.题目 http://match.yuanrenxue.com/mat ...

  5. [007]爬虫系列 | so-json 过本地反调试

    一.背景 js[最牛加密]:https://www.sojson.com/jsobfuscator.html  本文主要介绍如何过: 正则防止格式化 禁止控制台输出 死循环 setInterval函数 ...

  6. [007]爬虫系列 | 没有油候Fiddler如何Hook?!!!

    一.找到首次加载的js 用源码面板打开 二.第一行打断点 格式化: 三.刷新网页 成功断点&执行hook!: 代码如下: (function() {'use strict';var cooki ...

  7. c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...

    用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...

  8. C# 创建、部署和调用WebService的简单示例

    C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...

  9. rabbitmq 简易RPC调用示例

    rabbitmq 简易RPC调用示例(后附go代码)) rabbimq 库代码获取 用例概述 客户端 服务端 rabbimq 库代码获取 https://github.com/streadway/am ...

  10. 使用Dubbo实现简单的RPC调用(Spring配置文件版)

    更多文章和资源欢迎访问:SuperCoder Blog 文章目录 更多文章和资源欢迎访问:[SuperCoder Blog](https://supercoder.com.cn) 前言 一.Dubbo ...

最新文章

  1. 洛谷——P1098 字符串的展开
  2. python使用函数的目的_python之函数基本使用
  3. Spring Security——简单第三方OAuth2登录自动配置——GitHub登录DEMO
  4. 哈夫曼编解码(C语言)
  5. Python笔记-Collection中Iterable、Iterator和Generator的区别
  6. JSP四大域对象与九大内置对象
  7. objective-c(初始化)
  8. 纠正Pandas中的缺失数据
  9. [转载] [转载] python中的Numpy库入门
  10. 需求方案撰写之售前方案
  11. sqlserver 获取当前操作的数据库名称
  12. Cleaning Bad Data in R R语言数据清理教程 Lynda课程中文字幕
  13. java 读取gzip_Java读取GZIP
  14. 百度导航5.0之后的坑
  15. 【转】电阻屏和电容屏之 二
  16. excel pandas 画图_pandas 进行excel绘图
  17. 三剑客 文本处理awk
  18. 学校关于配备计算机教室的申请,学校多媒体教室的申请书
  19. 风火之旅 需要的信息保存
  20. 关于灰度共生矩阵的一点知识(MATLAB)

热门文章

  1. ubuntu中录制gif
  2. PDF Reader Pro - 一款全能型PDF文件编辑器
  3. 华为发布鸿蒙Beta版公测,华为发布鸿蒙OS 2.0手机开发者Beta版:P40、Mate 30系列可申请公测...
  4. POS58打印机的操作
  5. 常用HSQL汇总(不定时添加)
  6. 免费视频素材下载(不定时更新)
  7. C语言 三角函数 时钟周期,三角函数的周期公式
  8. windows 下 Bitvise SSH Client 登陆服务器 显示matlab图形界面
  9. 深度学习中的激活函数及其作用
  10. 在css表格怎么居中对齐,css居中和对齐方法集锦