01 Sekiro服务器部署和第一个示例部署成功,js逆向和加解密
只狼 做穿透部署过程,用于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逆向和加解密相关推荐
- 01、pyqt入门使用--01布局、基本组件、第一个示例、qtdesigner大概使用
01.本系列使用pyqt5作为教材创建项目 --安装 pyqt5 和 pyqt5-tools[这个就是为了使用qtdesigner这个工具] 两个包 --进入Lib\site-packages ...
- 购买弹性云服务器怎么部署网站,购买后怎么部署自己的云服务器
购买后怎么部署自己的云服务器 内容精选 换一换 SSL证书对部署的服务器没有任何限制,无论是华为云或其他云厂商的服务器,还是线下云服务器.获取证书文件后,您可根据自己的需求将SSL证书部署到网站对应的 ...
- esb 和mq_使用保险丝结构管理MQ和ESB的大型部署,第一部分
esb 和mq FuseSource最近发布了ActiveMQ和ServiceMix发行版的企业版. 其中的一些主要功能包括增量修补 , 自定义平台安装程序和第三方验证 . 新企业版附带的最酷的功能之 ...
- 云服务器(CentOS 7)上面部署Node.js环境
云服务器(CentOS 7)上面部署Node.js环境 文章目录 云服务器(CentOS 7)上面部署Node.js环境 背景信息 步骤一:部署Node.js环境 部署Node.js环境 步骤二:部署 ...
- K8S集群应用市场安装部署:第一篇
这里是引用 操作系统要求 服务器配置信息 基础环境部署 3.1. NTP时钟源同步 3.2. 关闭firewalld服务 3.3. 关闭SElinux服务 3.4. 系统调优配置 3.5. 开启IP转 ...
- 窥视新视觉效果图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 ...
- 腾讯云轻量服务器WordPress建站宝塔一键部署
本文介绍如何通过腾讯云轻量服务器Wordpress建站,安装宝塔实现Wordpress一键部署. 第一步:购买腾讯云轻量服务器 推荐购买的配置为1核心2G,如果需要安装Woocommerce,建议使 ...
- 【django云服务器部署】django+uwsgi+nginx 部署的完整流程
本篇博客完整地记录了我从购买服务器到完成部署的全过程,需要的朋友可以参考一下我的流程,看这一篇文章就能成功部署项目啦. 写这个的本意是为备忘( 保姆级步骤),同时由于我在最开始部署项目时,没有找到一个 ...
- git钩子放服务器_使用 git post-receive 钩子部署服务端代码
在 git 中提交服务器源码的时候,如果能够直接更新到测试服务器,并且重启服务使其生效,会节省懒惰的程序员们大量的时间. git 的 Server-side hook (服务端钩子/挂钩)可以用来做件 ...
最新文章
- 李国杰院士等:未来移动通信系统中的通信与计算融合
- 使用Entity Framework和WCF Ria Services开发SilverLight之4:Map之主外键映射
- C语言中()和【】的区别?
- linux中and运算符文件重定向,linux 重定向问题详解
- android按下enter键如何让光标跳到下一个edittext,我们如何知道光标已经移动到edittext的下一行android...
- 【POJ - 1001 】Exponentiation (Java大数,高精度)
- Dubbo 注册中心 之 Zookeeper
- SonicWall 又爆已遭利用的 0day?!
- SEO关键词优化:如何理解被百度快速索引?
- IPFS python api 示例
- CTFshou wed文件上传
- 浅谈IT行业中的隐私泄露问题
- java捕获唯一约束异常_java – 捕获JPA上唯一约束的原因
- 动态规划学习心得分享
- Java微信小程序开发- 校园报修系统
- 【FME实战教程】003:FME读取地理空间数据(矢量、栅格、点云、三维模型、数据库、地理服务)大全
- Fluka 安装及 pydicom
- oracle日期转换为季度,ORACLE时间字段取年、月、日、季度
- 可能是iOS上最好用的定时器,现在限时免费
- C语言初学者编程规范—命名规则
热门文章
- 好玩的AI创意项目大放送,快来pick你心中的第一吧!
- [oeasy]python0094_视频游戏_双人网球_pong_atari_mos_6502_雅达利_米洛华
- SD卡之FATFS库移植
- eclipse启动问题:filed to load the jni shared library
- 2021年安全员-C证(陕西省)考试内容及安全员-C证(陕西省)试题及解析
- 第一次使用github
- 微信小程序实现物流信息(进度展示)
- emlc——让MATLAB的代码进入单片机
- shader 卡通积雪场景
- 今天,你想换工作了吗?