只狼 做穿透部署过程,用于js/android加解密等

第一步: 访问git  : https://github.com/virjar/sekiro

第二步:访问:demoServer编译和部署 · Sekiro系统文档

第三步:部署服务器   Go HTTP File Server

第四步:访问

​​​快速上手 · Sekiro系统文档

第五步 :打开浏览器,f12 在source 标签中,找到   snipets,在脚本 中写入

https://sekiro.virjar.com/sekiro-doc/assets/sekiro_web_client.js    复制这里的内容,粘贴到下面的框里。

下面的示例也一同粘贴到上面框里。

就是如下代码

function SekiroClient(wsURL) {this.wsURL = wsURL;this.handlers = {};this.socket = {};// checkif (!wsURL) {throw new Error('wsURL can not be empty!!')}this.webSocketFactory = this.resolveWebSocketFactory();this.connect()
}SekiroClient.prototype.resolveWebSocketFactory = function () {if (typeof window === 'object') {var theWebSocket = window.WebSocket ? window.WebSocket : window.MozWebSocket;return function (wsURL) {function WindowWebSocketWrapper(wsURL) {this.mSocket = new theWebSocket(wsURL);}WindowWebSocketWrapper.prototype.close = function () {this.mSocket.close();};WindowWebSocketWrapper.prototype.onmessage = function (onMessageFunction) {this.mSocket.onmessage = onMessageFunction;};WindowWebSocketWrapper.prototype.onopen = function (onOpenFunction) {this.mSocket.onopen = onOpenFunction;};WindowWebSocketWrapper.prototype.onclose = function (onCloseFunction) {this.mSocket.onclose = onCloseFunction;};WindowWebSocketWrapper.prototype.send = function (message) {this.mSocket.send(message);};return new WindowWebSocketWrapper(wsURL);}}if (typeof weex === 'object') {// this is weex env : https://weex.apache.org/zh/docs/modules/websockets.htmltry {console.log("test webSocket for weex");var ws = weex.requireModule('webSocket');console.log("find webSocket for weex:" + ws);return function (wsURL) {try {ws.close();} catch (e) {}ws.WebSocket(wsURL, '');return ws;}} catch (e) {console.log(e);//ignore}}//TODO support ReactNativeif (typeof WebSocket === 'object') {return function (wsURL) {return new theWebSocket(wsURL);}}// weex 鍜� PC鐜鐨剋ebsocket API涓嶅畬鍏ㄤ竴鑷达紝鎵€浠ュ仛浜嗘娊璞″吋瀹�throw new Error("the js environment do not support websocket");
};SekiroClient.prototype.connect = function () {console.log('sekiro: begin of connect to wsURL: ' + this.wsURL);var _this = this;// 涓峜heck close锛岃// if (this.socket && this.socket.readyState === 1) {//     this.socket.close();// }try {this.socket = this.webSocketFactory(this.wsURL);} catch (e) {console.log("sekiro: create connection failed,reconnect after 2s");setTimeout(function () {_this.connect()}, 2000)}this.socket.onmessage(function (event) {_this.handleSekiroRequest(event.data)});this.socket.onopen(function (event) {console.log('sekiro: open a sekiro client connection')});this.socket.onclose(function (event) {console.log('sekiro: disconnected ,reconnection after 2s');setTimeout(function () {_this.connect()}, 2000)});
};SekiroClient.prototype.handleSekiroRequest = function (requestJson) {console.log("receive sekiro request: " + requestJson);var request = JSON.parse(requestJson);var seq = request['__sekiro_seq__'];if (!request['action']) {this.sendFailed(seq, 'need request param {action}');return}var action = request['action'];if (!this.handlers[action]) {this.sendFailed(seq, 'no action handler: ' + action + ' defined');return}var theHandler = this.handlers[action];var _this = this;try {theHandler(request, function (response) {try {_this.sendSuccess(seq, response)} catch (e) {_this.sendFailed(seq, "e:" + e);}}, function (errorMessage) {_this.sendFailed(seq, errorMessage)})} catch (e) {console.log("error: " + e);_this.sendFailed(seq, ":" + e);}
};SekiroClient.prototype.sendSuccess = function (seq, response) {var responseJson;if (typeof response == 'string') {try {responseJson = JSON.parse(response);} catch (e) {responseJson = {};responseJson['data'] = response;}} else if (typeof response == 'object') {responseJson = response;} else {responseJson = {};responseJson['data'] = response;}if (Array.isArray(responseJson)) {responseJson = {data: responseJson,code: 0}}if (responseJson['code']) {responseJson['code'] = 0;} else if (responseJson['status']) {responseJson['status'] = 0;} else {responseJson['status'] = 0;}responseJson['__sekiro_seq__'] = seq;var responseText = JSON.stringify(responseJson);console.log("response :" + responseText);this.socket.send(responseText);
};SekiroClient.prototype.sendFailed = function (seq, errorMessage) {if (typeof errorMessage != 'string') {errorMessage = JSON.stringify(errorMessage);}var responseJson = {};responseJson['message'] = errorMessage;responseJson['status'] = -1;responseJson['__sekiro_seq__'] = seq;var responseText = JSON.stringify(responseJson);console.log("sekiro: response :" + responseText);this.socket.send(responseText)
};SekiroClient.prototype.registerAction = function (action, handler) {if (typeof action !== 'string') {throw new Error("an action must be string");}if (typeof handler !== 'function') {throw new Error("a handler must be function");}console.log("sekiro: register action: " + action);this.handlers[action] = handler;return this;
};function guid() {function S4() {return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);}return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());}var client = new SekiroClient("ws://127.0.0.1:5620/business/register?group=ws-group&clientId=" + guid());client.registerAction("clientTime", function (request, resolve, reject) {resolve("SekiroTest:" + new Date());});client.registerAction("executeJs", function (request, resolve, reject) {var code = request['code'];if (!code) {reject("need param:{code}");return;}code = "return " + code;console.log("executeJs: " + code);try {var result = new Function(code)();resolve(result);} catch (e) {reject("error: " + e);}});

第六步:运行浏览器中的脚本

第七步:在浏览器中 访问: http://127.0.0.1:5620/business-demo/invoke?group=ws-group&action=clientTime

得到如下的返回 信息就算成功了。

// 20221102074607
// http://127.0.0.1:5620/business-demo/invoke?group=ws-group&action=clientTime{"__sekiro_seq__": 2,"clientId": "ef076b70-40fb-4d6c-0296-abad81d964c4","data": "SekiroTest:Wed Nov 02 2022 07:46:06 GMT+0800 (中国标准时间)","status": 0
}

01 Sekiro服务器部署和第一个示例部署成功,js逆向和加解密相关推荐

  1. 01、pyqt入门使用--01布局、基本组件、第一个示例、qtdesigner大概使用

    01.本系列使用pyqt5作为教材创建项目   --安装 pyqt5 和 pyqt5-tools[这个就是为了使用qtdesigner这个工具] 两个包   --进入Lib\site-packages ...

  2. 购买弹性云服务器怎么部署网站,购买后怎么部署自己的云服务器

    购买后怎么部署自己的云服务器 内容精选 换一换 SSL证书对部署的服务器没有任何限制,无论是华为云或其他云厂商的服务器,还是线下云服务器.获取证书文件后,您可根据自己的需求将SSL证书部署到网站对应的 ...

  3. esb 和mq_使用保险丝结构管理MQ和ESB的大型部署,第一部分

    esb 和mq FuseSource最近发布了ActiveMQ和ServiceMix发行版的企业版. 其中的一些主要功能包括增量修补 , 自定义平台安装程序和第三方验证 . 新企业版附带的最酷的功能之 ...

  4. 云服务器(CentOS 7)上面部署Node.js环境

    云服务器(CentOS 7)上面部署Node.js环境 文章目录 云服务器(CentOS 7)上面部署Node.js环境 背景信息 步骤一:部署Node.js环境 部署Node.js环境 步骤二:部署 ...

  5. K8S集群应用市场安装部署:第一篇

    这里是引用 操作系统要求 服务器配置信息 基础环境部署 3.1. NTP时钟源同步 3.2. 关闭firewalld服务 3.3. 关闭SElinux服务 3.4. 系统调优配置 3.5. 开启IP转 ...

  6. 窥视新视觉效果图CineCast,这是我们的第一个示例游戏,以及来自Unite Los Angeles的更多内容

    Unite Los Angeles has begun and let me tell you, it has already been one for the books. Want to find ...

  7. 腾讯云轻量服务器WordPress建站宝塔一键部署

    ​本文介绍如何通过腾讯云轻量服务器Wordpress建站,安装宝塔实现Wordpress一键部署. 第一步:购买腾讯云轻量服务器 推荐购买的配置为1核心2G,如果需要安装Woocommerce,建议使 ...

  8. 【django云服务器部署】django+uwsgi+nginx 部署的完整流程

    本篇博客完整地记录了我从购买服务器到完成部署的全过程,需要的朋友可以参考一下我的流程,看这一篇文章就能成功部署项目啦. 写这个的本意是为备忘( 保姆级步骤),同时由于我在最开始部署项目时,没有找到一个 ...

  9. git钩子放服务器_使用 git post-receive 钩子部署服务端代码

    在 git 中提交服务器源码的时候,如果能够直接更新到测试服务器,并且重启服务使其生效,会节省懒惰的程序员们大量的时间. git 的 Server-side hook (服务端钩子/挂钩)可以用来做件 ...

最新文章

  1. 李国杰院士等:未来移动通信系统中的通信与计算融合
  2. 使用Entity Framework和WCF Ria Services开发SilverLight之4:Map之主外键映射
  3. C语言中()和【】的区别?
  4. linux中and运算符文件重定向,linux 重定向问题详解
  5. android按下enter键如何让光标跳到下一个edittext,我们如何知道光标已经移动到edittext的下一行android...
  6. 【POJ - 1001 】Exponentiation (Java大数,高精度)
  7. Dubbo 注册中心 之 Zookeeper
  8. SonicWall 又爆已遭利用的 0day?!
  9. SEO关键词优化:如何理解被百度快速索引?
  10. IPFS python api 示例
  11. CTFshou wed文件上传
  12. 浅谈IT行业中的隐私泄露问题
  13. java捕获唯一约束异常_java – 捕获JPA上唯一约束的原因
  14. 动态规划学习心得分享
  15. Java微信小程序开发- 校园报修系统
  16. 【FME实战教程】003:FME读取地理空间数据(矢量、栅格、点云、三维模型、数据库、地理服务)大全
  17. Fluka 安装及 pydicom
  18. oracle日期转换为季度,ORACLE时间字段取年、月、日、季度
  19. 可能是iOS上最好用的定时器,现在限时免费
  20. C语言初学者编程规范—命名规则

热门文章

  1. 好玩的AI创意项目大放送,快来pick你心中的第一吧!
  2. [oeasy]python0094_视频游戏_双人网球_pong_atari_mos_6502_雅达利_米洛华
  3. SD卡之FATFS库移植
  4. eclipse启动问题:filed to load the jni shared library
  5. 2021年安全员-C证(陕西省)考试内容及安全员-C证(陕西省)试题及解析
  6. 第一次使用github
  7. 微信小程序实现物流信息(进度展示)
  8. emlc——让MATLAB的代码进入单片机
  9. shader 卡通积雪场景
  10. 今天,你想换工作了吗?