Cocos2d-JS 基于HTTP网络通信

Android逆向实战:解密Cocos2d-js游戏so文件与Frida动态Hook网络加密 在移动应用安全与协议分析领域,理解应用如何保护其核心逻辑与通信数据是基础课题。许多应用,特别是使用Cocos2d-js等混合引擎开发的游戏,会将JavaScript业务逻辑编译为字节码并封装在原生动态库(如libcocos2djs.so)中,同时实施网络通信加密,这构成了逆向分析的主要挑战。其原理在于通过代码混淆与数据加密,增加静态分析的难度,以保护知识产权和防止协议篡改。掌握Hook技术,尤其是利用Frida框架进行动态代码插桩,具有极高的技术价值,它允许分析者在应用运行时实时拦截函数调用、修改内存与参数 阅读详情
现在有很多游戏需要网络通信,客户端服务器结构网络和点对点结构网络。
考虑到跨平台的需要,Cocos2d-JS引擎主要采用C/S结构网络。P2P结构网络一般采用蓝牙通信,特定平台一般提供了访问P2P的本地API。如IOS的Game Kit,但是这些API不能使用在具有跨平台特性的Cocos2d-JS引擎。
网络结构
网络结构是网络的构建方式,目前流行的有客户端服务器结构网络和点对点结构网络。
客户端服务器结构网络
客户端服务器结构网络是一种主从结构网络。服务器一般处于等待状态,如果有客户端请求,服务器响应请求,建立连接,提供服务。服务器是被动的,客户端是主动的。
点对点结构网络
点对点结构网络也叫对等结构网络,每个节点之间是对等的。
HTTP与HTTPS
客户端服务器应用层最主要采用的是HTTP和HTTPS等传输协议。因此有必要介绍一下HTTP和HTTPS。
1.HTTP
HTTP是超文本传输协议,Internet的基本协议是TCP/IP,目前广泛采用的是HTTP、HTTPS、FTP、Archie Gopher等是建立在TCP/IP之上的应用层协议,不同的协议对应着不同的应用。
HTTP是一个属于应用层的面向对象的协议。由于其简洁,快速的方式。适用于分布式超文本信息传输。
HTTP协议共定义了8种请求方法,OPTIONS,HEAD,GET,POST,PUT,DELETE,TRACE和CONNECT.作为Web服务器,至少需实现GET和HEAD方法,其他方法都是可选的。
GET方法是向指定的资源发出去请求,发送的信息显示在URL后面。GET方法应该只用在读取数据,如静态图片等数据。
POST方法是向指定资源提交数据,请求服务器进行处理。
GET方法像是使用明信片给别人写信,“信内容”写在外面,接触到的人都可以看到,不安全。POST方法像是把“信内容”装入到信封中给别人写信,接触到的人都看不到,因此是安全的。
HTTPS
HTTPS即安全产文本传输协议,是超文本传输协议和SSL的组合。提供加密通信及对网络服务器身份的鉴定。
简单地说。HTTPS是HTTP的升级版。与HTTPS的区别是,HTTPS使用https://代替http://,HTTPS使用端口443,而HTTP使用端口80和TCP/IP进行通信。SSL使用40位关键字作为RC4流加密算法。这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证。如果需要,用户可以确认发送者是谁。
使用XMLHttpRequest对象开发客户端
在Web前端开发中有一种异步刷新技术-AJAX。
AJAX的核心是JavaScript对象XMLHTTPRequest,该对象在Internet Explore5中首次引入,它是一种支持异步请求的技术。借助于XMLHttpRequest对象可以使用JavaScript语言向服务器提出请求并处理响应。
使用XMLHttpRequest对象
由于在Web中使用XMLHttpRequest对象发出HTTP请求和普遍,Cocos2d-JS引擎对其平台进行了移植。可以在cocos2d-JS JSB本地平台和Cocos2d-html的web平台中使用了XMLHttpRequest对象。
XMLHttpRequest对象中常用的函数和属性如下

其中,open和send函数,以及onreadystatechange属性是HTTP请求的关键。open函数有5个参数可以使用。
(1)request-type 发送请求的类型。典型的值是GET或POST。也可以发送HEAD请求。
(2)url 要请求连接的URL
(3)asynch 如果希望使用异步连接,则为true,否则为false。该参数是可选的,默认为true
(4)username:如果需要身份验证,则可以在此指定用户名,该可选参数没有默认值。
(5)password:如果需要身份验证,则可以在此指定口令,该可选参数没有默认值。
XML HttpRequest中有5种就绪状态:
(1)0:请求没有发出,在调用open()函数之前为该状态
(2)1:请求已经建立但还没有发出,在调用send()函数之前为该状态
(3)2:请求已经发出正在处理中
(4)3:请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应
(5)4:响应已经完成,可以访问服务器响应并使用它
代码第8行中xhr.status==200判断HTTP状态码。常见的HTTP状态码如下:
(1)401:表示所访问数据禁止访问
(2)403:表示所访问数据收到保护
(3)404:表示错误的URL请求,表示请求的服务器资源不存在
(4)200:表示一切顺利
如果就绪状态是4而且状态码是200即可处理服务器的数据。
第9行代码通过XMLHttpRequest对象的responseText属性获得从服务器返回的数据。第10行代码使用send()函数发送数据
数据交换格式
数据交换格式是在两个程序之间对话的”语音“。
数据交换格式就像两个人在聊天,采用彼此都能听得懂的语言。
数据交换格式主要分为CSV格式,XML格式和JSON格式。
CSV格式是一种简单的逗号分隔交换方式。
原始数据:

XML数据格式:

JSON数据格式:

文档结构
构成JSON文档两种结构:对象和数组。对象是”名称/值“对集合,它类似于Obejective-C中的字典类型。数组是一连串元素的集合。
数组是值的有序集合,一个数组以”[“(左中括号)开始,”]“(右中括号)结束,值之间使用”,”(逗号)分隔。
在JSON对象和数组中值可以是双引号括起来的字符串、数值、true、false、null、对象或者数组,而且这些结构可以嵌套。
JSON解码与编码
JSON解码
JSON解码主要是通过JSON.parse(jsonStr)函数实现的,由于JSON有对象和数组之分,因此解码JSON字符串时,返回的结构有可能是JSON对象或JSON数组。
JSON编码
JSON编码是将JSON对象或JSON数组变为JSON字符串解析,以便于存储和网络中数据的传输。JSON编码主要是通过JSON.stringify(jsonObj)函数实现的。

上述代码第1行是创建并初始化JSON对象。注意与下面代码的区别,下面代码右值是在单引号之间的,这说明下面代码jsonStr是字符串变量,而上述代码第1行右值没有放在单引号之间。前后使用{...}括起来,这说明jsonObj表示的是JSON对象。

与上述代码第1行类似,第2行代码的jsonArray变量表示的是JSON数组,它的右值前后使用[…]括起来,这是JSON数组与JSON对象的区别。无论JSON数组还是JSON对象编码都是使用var jsonStr=JSON.stringify(jsonObj)语句实现的。
日志输出结果如下:

从日志输出结果可以看出,JSON对象和JSON数组与JSON字符串的区别


Cocos2d-x第三方库生态:跨平台游戏开发的效率与品质利器 在跨平台游戏开发中,第三方库扮演着至关重要的角色。它们作为核心引擎的功能延伸,其原理在于通过封装和桥接,为开发者提供开箱即用的解决方案,从而填补引擎原生能力的空白。从技术价值看,成熟的第三方库不仅能大幅提升开发效率、降低技术风险,还能通过统一的抽象层显著降低多平台适配的维护成本。在应用场景上,无论是网络通信、UI组件、物理特效,还是广告、支付等平台SDK集成,第三方库都是实现复杂功能、优化游戏表现的关键。本文聚焦于Cocos2d-x生态,深入探讨了如何高效集成和管理**网络通信库**与**UI组件库**等核 阅读详情

相关推荐

cocos creator简单链接socket实现注册demo

发送的是json数据,只是简单的实现,用到socket、http通信

cocosjs使用http请求

var httpHelper = {}; httpHelper.get = function(url, callback){ var xhr = cc.loader.getXMLHttpRequest(); console.log("Status: Send Get Request to ", url); xhr.open("GET", url, true); xhr.

9527的专栏 1659

用R搞定生态溯源:MixSIAR贝叶斯混合模型从安装到出图的保姆级教程

本文提供了一份详细的MixSIAR贝叶斯混合模型教程,涵盖从R环境配置、数据预处理到模型参数设置和可视化分析的完整流程。通过实战案例和常见问题解决方案,帮助生态学研究者快速掌握混合模型在生态溯源中的应用,提升数据分析效率。

weixin_42531516的博客 467

cocos2dx js webview接入第三方h5游戏,并返回app中

接入第三方h5游戏。 1.使用浏览器打开,但是无法返回到app中,此方法是最后的选择。 2.使用webview 内嵌入h5游戏(部分api可能不太一样)。 ⑴. var webView = new ccui.WebView(url); // url为h5游戏 cc.director.getRunningScene().addChild(webView); ⑵. 这里主要有2个API...

u012641270的专栏 2243

因果表示学习 (Causal Representation Learning, CRL)

传统的机器学习,尤其是深度学习,非常擅长学习数据中的相关性 (Correlation)。但它常常会走“捷径”,学到一些虚假的、不稳定的“表面联系”。一个AI模型在学习识别“牛”时,如果训练数据里所有的牛都在绿色的草地上,模型很可能会学到一个错误的规则:“牛 = 四条腿的生物 + 绿色背景”。你给它一张牛在海滩上的照片,它就可能不认识了。因果表示学习的目标,就是让模型超越这种表面相关性,去学习数据背后。

Xuxiansir的博客 1183

LibTV本地部署:AI漫剧创作完整解决方案与实战指南

如果你正在关注AI漫剧创作这个赛道,可能会发现一个有趣的现象:市面上的AI视频工具要么功能单一,要么云端服务昂贵且存在内容审核风险。而今天要介绍的LibTV本地部署方案,或许能为你打开一扇新的大门。 这个方案的核心是Seedance2.0与豆包AI的本地化集成,它真正解决的是创作者对内容自主权、成本控制和创作效率的三重需求。与红果、抖音等平台提供的标准化AI工具相比,本地部署意味着你可以完全掌控生成过程,不受平台规则限制,更重要的是——所有数据都在本地,不存在内容泄露风险。 1. 这篇文章真正要解决的问题

weixin_28745309的博客 526

cocos-js Http方式网络请求

网络结构网络结构是网络的构建方式,目前流行的有客户端服务器结构网络和点对点结构网络。客户端服务器结构网络客户端服务器结构网络是一种主从结构网络。服务器一般处于等待状态,如果有客户端请求,服务器响应请求,建立连接,提供服务。服务器是被动的,客户端是主动的。点对点结构网络点对点结构网络也叫对等结构网络,每个节点之间是对等的。 考虑到跨平台的需要,Cocos2d-JS引擎主要采用C/S结

路飞小迷弟的博客 8620

【同花顺公式编辑教程】第3章 获取数据

学习同花顺公式编辑器,其提供的数据有量价数据以及财务数据。在本章中,我们讲解了编辑器执行代码的原理,并给出了可调用数据的汇总表。

LiaoYi2016218的博客 1万+

Node.js 网络通信(二)01-构建TCP服务——TCP全名为传输控制协议,属于传输层协议,如http协议 & 显著特征是在传输之前需要三次握手形成会话 & Socket通信模型

TCP 必须建立连接(三次握手建立连接)才能通信TCP 只是负责数据的传输,不关心传输的数据格式问题如果需要使用 TCP 通信完成某种功能,则需要制定数据格式协议,或者使用第三方协议Socket 就是与之通信的另一端,通过 Socket 接收或是发送数据Socket 通信模型。

weixin_44867717的博客 1323

深入解析docx4j:从Word到PDF的高保真转换实战

本文深入解析了如何使用纯Java开源库docx4j实现Word到PDF的高保真转换。针对中文环境,重点讲解了字体映射原理、Linux服务器字体部署方案,并提供了完整的代码示例和配置方法。同时,文章涵盖了表格、图片处理、性能优化及生产环境部署指南,帮助Java开发者构建稳定、可控的文档转换服务。

weixin_29237635的博客 674

基于Matlab的自动泊车系统开发:利用模糊控制实现智能停车解决方案的详细教程

Matlab是一种广泛应用于科学计算、工程建模与仿真的编程语言,其强大的工具箱和简洁的编程语法,使其成为开发自动泊车系统的理想选择。在开始编写代码之前,我们需要搭建Matlab的工作环境,并熟悉相关的工具箱,如Fuzzy Logic Toolbox,用于实现模糊控制。首先,确保你已经安装了Matlab软件,并加载了必要的工具箱。接下来,我们将逐步讲解如何在Matlab中实现自动泊车系统。

qq_38334677的博客 663

《Cocos2d-x实战 JS卷 Cocos2d-JS开发》上线了

感谢大家一直以来的支持! 各大商店均开始销售:京东:http://item.jd.com/11659698.html当当:http://product.dangdang.com/23659808.html《Cocos2d-x实战 JS卷 Cocos2d-JS开发》源码及样章下载地址:源码下载地址:http://51work6.com/forum.php?mod=viewthre...

weixin_30411819的博客 194

科研生产力革命:手把手教你打造基于大模型的Research Agent(文献调研+论文写作+思路激发)

本文介绍了如何利用Research Agent(科研智能体)提升科研效率。Research Agent能自主完成文献检索、信息整合和报告生成全流程,省去50%以上的基础工作时间。文章详细讲解了搭建运行环境的方法,包括工具准备和MetaGPT配置,并提供了两种实战方案:基础版Search-O1和专业版MetaGPT Research Agent。此外,还介绍了如何为垂直领域定制Agent,以及优化检索效果、改善报告逻辑等技巧。最后列举了学术研究、行业分析、内容创作和个人学习四大应用场景,帮助用户将AI从聊天工

LXY_LOVE36的博客 267

cocos2d js 网络通信相关信息

现在有很多游戏需要网络通信,客户端服务器结构网络和点对点结构网络。 考虑到跨平台的需要,Cocos2d-JS引擎主要采用C/S结构网络。P2P结构网络一般采用蓝牙通信,特定平台一般提供了访问P2P的本地API。如IOS的Game Kit,但是这些API不能使用在具有跨平台特性的Cocos2d-JS引擎。 网络结构 网络结构是网络的构建方式,目前流行的有客户端服务器结构网络和点对点结构网络。

vivi_12的博客 489

Spring AI 实战:第五章、Spring AI本地模型部署之省钱小能手

白嫖的快乐你想象不到经过这番折腾,我们成功实现了零成本使用大模型完全本地运行保障隐私可视化访问Java生态无缝集成但可能有的小伙伴要吐槽,怎么换个底层模型这次就新建一个工程了呢?不能在以前的工程上开发吗?这样也太不优雅了吧~,我知道你很急,但先别急,等下一章节再来解决这个问题。为什么程序员特别喜欢Ollama?因为它就像一只温顺的羊驼——不花钱还能24小时产出代码!

liaokailin的专栏 922

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Cocos2d-x 游戏逆向分析文档

目标应用: 使用 Cocos2d-x + JavaScriptCore 的 iOS 游戏逆向工具: 开发了完整的 Frida 工具包和原生 Tweak分析深度: 从脚本拦截到游戏逻辑分析的完整链条实用性: 工具稳定可用,已修复多个关键 Bug。

zzq7797的博客 908

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Cocos2d-JS/Ajax用Protobuf与NodeJS/Java通信

原文地址:http://www.iclojure.com/blog/articles/2016/04/29/cocos2d-js-ajax-protobuf-nodejs-java Google的Protobuf Protobuf全称为“Protocol Buffers”,是Google开源出来的一个序列化协议并配备多种编程语言的实现(Java、C、C++、Python等,甚至...

dianjian2844的博客 389

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

《Cocos2d-x实战 Lua卷》上线了

感谢大家一直以来的支持!各大商店均开始销售:京东:http://item.jd.com/11659697.html当当:http://product.dangdang.com/23659810.html《Cocos2d-x实战 Lua卷》源码及样章下载地址:源码下载地址: http://51work6.com/forum.php?mod=viewthread&tid=1198&a...

weixin_30439031的博客 179

逆向分析手游通信加密:基于Frida动态Hook与算法还原实战

在移动应用安全与协议分析领域,加密技术是保障数据传输机密性的核心机制。其原理是通过特定算法和密钥对明文进行变换,生成不可读的密文,防止中间人窃听与篡改。这项技术的工程价值在于,它使得开发者能够在开放网络环境中构建可信的通信通道,广泛应用于登录认证、支付交易、实时对战等敏感场景。对于采用Cocos2d-js等跨平台引擎的手游,其核心加解密逻辑常以Native代码形式封装在so库中。本文聚焦于如何运用Frida这一动态插桩工具,结合静态分析,对libcocos2djs.so中的加密函数进行定位、Hook与算法逆

weixin_33910137的博客 470

cocos creator 安卓原生平台环境_30+顶级互联网公司高薪诚聘 Cocos 人才

除了游戏之外,近年来,Cocos 被应用于越来越多的领域,例如数字娱乐、数字文创、在线教育、虚拟展会、电商等等。Cocos 人才在市场上也拥有更多的就业选择空间,各大招聘网站上,Cocos 岗位需求持续上升。今日,C姐为大家收集了近期国内知名互联网企业的热招岗位,按先后顺序,分别推荐在线教育类、视频类、文创内容类、电商类和游戏类公司,欢迎各位千里马投递简历!暂时不找新工作,也可以看看当前...

weixin_28728425的博客 2402

《Cocos2d-x实战 C++卷》上线了-源码-样章-感谢大家的支持

《Cocos2d-x实战C++卷》上线了 感谢大家一直以来的支持! 全面介绍Cocos开发技巧,采用Cocos2d-x3.2版本,并且详细介绍跨平台移植已经多平台发布细节。 ·各大商店均开始销售: 京东:http://item.jd.com/11584534.html 亚马逊:http://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%...

weixin_30678349的博客 266

[Cocos2d-x]在Cocos2d-x 3.x如何通过版本号WebSocket连接server数据的传输

WebSocket首先新建一个空的目录,通过npm安装nodejs-websocket:npm install nodejs-websocket 新建app.js文件:var ws = require("nodejs-websocket"); ws.createServer(function(conn){ conn.on("text", function (str) { ...

weixin_30920091的博客 73

Cocos2dx 游戏开发坚持百日基本功-IDE介绍-2

**基础 UI 组件**:提供按钮(Button)、标签(Label)、文本框(TextField)、滚动视图(ScrollView)、进度条(ProgressBar)等常用 UI 控件。- **场景(Scene)系统**:通过导演(Director)管理多个场景的切换(如菜单场景、游戏场景、结算场景),支持淡入淡出、滑动等过渡效果。- **节点(Node)树结构**:所有游戏对象(精灵、图层、UI 组件)均继承自 Node,支持父子关系嵌套,便于统一管理位置、缩放、旋转等属性。

寒寒豆豆软件公司的博客 385

开工啦~年后众多知名企业热招 Cocos 人才,虎年新开局!

醒醒,节后开工!不知道有多少小伙伴还在和「节后综合症」缠斗呢C 姐精选了近段时间部分知名企业的 Cocos 相关热招岗位,覆盖全国多城市,打响虎年「第一枪」!有需要的小伙伴速速看过来啦~腾讯Cocos Creator开发工程师25k-50k·16薪/ 上海 /不限 /本科岗位描述:1年以上游戏行业相关经验;至少用 Cocos Creator 开发过一款以上完整的上线游戏;熟练使用 Java...

Cocos的博客 585

本土开源时代,盘点那些重量级的国产开源项目

为什么80%的码农都做不了架构师?>>> ...

weixin_33971977的博客 289
上一篇: Cocos2d-JS 数据持久化
下一篇: Cocos2d-JS 性能优化
AiCoding_D
博客等级 码龄11年 4粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值