论一次针对某直播平台的flash逆向

4399 Flash游戏逆向 通过阅读这些由高级语言编写而成的代码,找到我们需要修改的东西(比如血量、攻击力等)对应的代码段,对该段代码进行修改,保存,然后再次打开下载下来的游戏,即可以发现我们游玩的是已经按照我们需要的想法进行更改后的游戏。组成该游戏的基础代码都在“脚本”栏目中,其中的frame文件存放了关键代码,定位“HP”字节,我们可以查找到需要修改的代码段的具体位置,修改对应的P代码资源,对修改后的.swf 文件进行保存。在反编译完成之后,我们就可以在软件中看见小游戏的框架,和构成代码,即可对它进行修改。 阅读详情

看到论坛有定制单,需要对某直播平台进行分析。遂入手。

第一步,开启wireshark抓包。一般直播平台,登录是HTTP协议,而用户行为包括送花,发言等则是webSocket协议,在充分利用资源的同时,提高了效率。在对这个直播平台抓包的过程中,只发现了登录的HTTP数据包,而并未发现送花、发言的webSocket数据包。但是发现了一个swf文件。猜想可能是利用flash文件,通过tcp协议进行传输。

下载swf文件。载入到JPEXS中进行分析。因为逆向出来的资源没办法直接导入flash中进行调试。所以下文仅涉及到静态分析,对于动态部分,若有人精通,请与我联系。

首先,在js中寻找相关函数,没有什么大的发现,跟踪调试也比较麻烦,不如先直接通览逆向出来的swf文件。打开swf文件,发现目录说明较为齐全,代码也并未经过混淆,这带来了一个好的开始。

着重关注脚本这一目标。

首先在SPlayer中,进行了初始化,而SPlayer又是继承自simplemvc.view.SpriteView。跟进未发现有用信息。我们查看其他目录,在ggcj.player.service.SingleService中发现了几个可能有用的函数,首先是getCasListFromUrl函数。这个函数进行了HTTP请求获取服务器IP地址和端口,接着startConnectCAS函数便尝试连接获取到的第一个IP,连接成功则进行socketProxyConnectHandler,该函数调用了S1039函数,而S1039函数则携带用户信息进行了认证。在ggcj.player.service.SingleService中还发现了一些以P和S开头命名的函数,通过分析,P开头的函数,是flash推送给JS的消息,而S开头的函数则是JS推送给flash的消息。

此外,还发现了jsCallFla及flaCallJs函数。这两个函数分别是js调用flash及flash调用js的函数。以jsCallFlash函数为例进行说明。

从代码中可以看到,一共实现了八个接口,那么在js中,也肯定有八个方法与其对应,这个随后进行分析。以发送消息即sendMessage为例进行分析,跟进sendMessage函数,

发现最后调用了S1007函数,继续跟进S1007,具体的代码便出来了:

这种传输协议让我想起了QQ的传输协议,很是类似。看到这儿便理解了S1007这个函数名,1007具体是代表了命令号。首先,设定_loc8这个字节数组的字节排序方式为小端排序。简单普及一下小端排序,即低位在前,高位在后。以十六进制0x12345678为例。大端排序,结果即为0x12345678,小端排序,结果则为0x78563412。接着呢,写入了一个短整数1007,而这个1007,正是函数名中S1007所涉及到的。服务器收到客户端的消息,首先判断开头代码是多少,是1007,即认为该条消息为发送信息的消息。具体其他分析添加在了注释里面。数据包封装完成之后,被传送到了下一步,即socketProxy.sendBytes函数,进入socketProxy.sendBytes函数,该函数调用encode函数完成了包头的添加,数据的拼装及加密的任务:

通过对encode函数分析,发现数据包头都是由03020101220001开头,以060504结尾。中间则写入了是否加密,内容长度,短整数型0以及内容(也可能是加密过的内容,从encode函数开头可以看到,加密方式为AES加密,模式为ECB,NoPadding,密钥为:66CBC149-A49F-48F9-B17A-6A3EA9B4)。抓包也同样验证了这一点

到这儿,该swf文件分析已经比较深入了。在重构代码的时候,发现自己手头的AES算法与该文件中采用的AES有出入,因为对算法研究不是很深入。便放弃了自己重新写用户各种功能。如果可以直接调用flash文件,代码构建起来应该会很简单。

有了这个想法,便想到了ShockwaveFlash对象。利用这个可以实现对flash函数的调用。想要调用ShockwaveFlash中的各种方法,我们首先需要明白,js调用flash,只能传递字符串。因此,在js端,肯定有函数负责将传递的信息编码为xml格式,然后调用flash。到这一步,需要深入去分析js文件了。在送花sendFlower函数下断点,在步入的过程中,发现了许多有用的信息。首先是各个接口:

在js中同样发现了jsCallFla及flaCallJs函数,与flash文件相交互的接口:

最后跟踪到了

VM2144这个文件里面,就实现了对参数的xml格式化以及传递工作。

最后请求的例程如下:

<invoke name="jsCallFla" returntype="javascript"><arguments><string>OperateOtherUser</string><array><property id="0"><string>10754665956</string></property><property id="1"><number>5</number></property><property id="2"><number>10</number></property></array></arguments></invoke>

可以看到首先定义了接口的名字是jsCallFla,返回类型是js。接着说明了调用方法为OperateOtherUser,后面array即为参数。

分析到这儿,整个的流程便完毕了。

在以往的分析过程中,大多数的直播平台采用了http与ws协议相结合的方式。这个平台采用了flash加密。现在因为flash的一些特性,Adobe要和Flash说了再见。在我看来,用flash一定程度上可能说加强了数据安全性。但是本质上,依然面临数据窃听等的风险。不如wss协议更加的安全可靠。其次,用到了flash对用户的行为进行了加密,说明该公司对安全有一定的重视。但是代码的直观则将这层安全防护的安全性大打折扣。在flash中,针对代码,应该进行必要的混淆处理,swf文件也应该进行加密处理。可以大大增强安全性能。在加密的过程中,使用AES加密并不能很好的保证用户数据的安全。应该使用非对称加密(如RSA)进行传输,或者可以仿照之前遇到的一个案例,采用ecdh密钥协商体系。更为关键的,如果采用wss协议,这些问题基本可以避免,更加的安全可靠。

【Flash逆向调试之一】环境搭建 一、基础环境说明 系统:win7_x64 浏览器:FireFox(火狐浏览器),(chrome浏览器日志输出环境我没配置出来,如有朋友配置出来请私信告知,我重新修改) 分析软件:JPEXS(需要JAVA支持,请自行安装JAVA环境) 这个软件应该有许多BUG,以及功能简陋,但是应该是市面上最好用的FLASH分析软件了。FLASH分析环境简陋,请大家忍受啊!!! 下载地址:https:// 阅读详情

相关推荐

【Flash逆向调试之三】几个比较有用的注入代码

1.插入日志代码 findpropstrict Qname(PackageNamespace(""),"trace") pushstring "=====================================================================================================" callpropvoid Qname(P

非鱼 5442

逆向破解flash视频url

今天来看一个swf格式的加密url逆向解析的例子: 简介 网页链接http://www.tvsky.tv/Industry/Show/278/33875/ 通过浏览器加载进度条长度可以找到视频的地址: 视频详情:http://tvskysp.tvsky.tv:8082/hangyepindao/lvyou/16.flv 全局搜索视频详情中的部分关键元素也没有获得关键的信息: 鼠标指到视频上,...

无名之辈 3621

流媒体建设及部署指导

例如,在处理RTSP请求时,ZLMediaKit采用了异步非阻塞的方式,这大大提升了服务器处理并发请求的能力,使得即使是面对大量用户的直播场景,也能保持良好的性能表现。无论是哪种协议,ZLMediaKit都致力于提供最佳的用户体验,通过灵活的配置选项,用户可以根据具体需求选择最合适的传输方式,确保每个场景下都能获得最优的播放效果。协议支持完善:支持的RTMP协议确保了直播内容的快速传输,同时还具备动态调整码率的功能,可以根据网络状况自动调节视频质量,从而在保证流畅播放的同时,也兼顾了画质的清晰度;

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 2041

物联网安全实战:固件逆向与设备劫持的攻防解析

在嵌入式系统与物联网领域,固件作为设备的核心软件,其安全性直接关系到整个系统的稳定与可信。固件逆向工程是安全研究中的关键技术,通过静态与动态分析手段,深入理解设备运行逻辑,从而识别潜在漏洞。这项技术的价值在于,它不仅能帮助攻击者发现利用路径,更是防御方构建安全基线的基石。从工程实践角度看,固件安全涉及加密存储、安全启动、签名验证等多层防护,旨在确保设备从启动到运行的完整信任链。典型的应用场景包括智能家居、工业控制和网络设备,其中设备劫持风险尤为突出,常导致数据泄露或设备被控。本文聚焦于固件逆向工程与设备劫持

weixin_30879833的博客 435

【Flash逆向调试之二】JPEXS的使用技巧说明

一、基础环境说明 系统:win7_x64 浏览器:FireFox(火狐浏览器),(chrome浏览器日志输出环境我没配置出来,如有朋友配置出来请私信告知,我重新修改) 分析软件:JPEXS(需要JAVA支持,请自行安装JAVA环境) 这个软件应该有许多BUG,以及功能简陋,但是应该是市面上最好用的FLASH分析软件了。FLASH分析环境简陋,请大家忍受啊!!! 下

非鱼 1万+

Flash游戏逆向工程实战:从《魔塔》入手掌握反编译与修改

逆向工程(Reverse Engineering)是理解软件内部运行机制的重要技术手段,它通过分析程序的二进制代码或中间表示,还原其设计逻辑与数据结构。其核心原理在于将编译后的可执行文件进行反编译、反汇编,从而获取可读的源代码或字节码,进而分析程序的算法、数据流与控制流。这项技术在软件安全分析、漏洞挖掘、遗留系统维护以及技术考古等领域具有极高价值。以经典的Flash游戏(.swf文件)为例,其基于ActionScript语言,可通过工具链进行资源提取与代码还原,是学习逆向思维的绝佳载体。通过分析游戏变量(如

weixin_33393017的博客 317

终极mGBA模拟器完整指南:从零开始玩转经典游戏

mGBA是一款功能强大的开源Game Boy Advance模拟器,能够让你在现代设备上完美运行GBA、GB和GBC游戏。作为目前最精准、最快速的GBA模拟器之一,mGBA不仅提供了出色的兼容性,还拥有许多其他模拟器不具备的高级功能。无论你是想重温童年经典,还是探索从未体验过的GBA游戏世界,这篇指南都将帮助你快速上手并充分发挥mGBA的全部潜力。 ## 为什么mGBA是你的最佳选择 在众多G

gitblog_00072的博客 734

swf逆向神器

Flash Decompiler Trillix和JPEXS.

机器学习能力诊断图谱:16道产线级面试题解析

机器学习不是公式堆砌,而是对数据生成机制、模型假设、评估逻辑与业务目标之间因果链的系统性理解。本文围绕真实工业场景中高频出现的模型线上失效、特征漂移、评估指标失真、弱监督构建等核心问题,深入剖析其背后的统计原理与工程约束。重点涵盖AUC与F1冲突的本质原因、LightGBM在无GPU环境下的鲁棒性优势、日志流中时间序列建模与弱监督信号构建方法论等关键技术点,强调从‘知识记忆’转向‘决策路径’的能力跃迁。适用于算法工程师能力自检、技术团队校准及AI项目落地风险防控。

weixin_30700977的博客 296

flash逆向工具

flash 逆向工具, 具体使用你懂得。

反编译swf(Flash Decompiler Trillix)

中文很强大的反编译swf软件,导出包含脚本非常好用。ps使用规则打开swf文件后选择转换,指定转换目录,点击全部转换。转换完后就可以用ps软件打开。

对网页游戏《卧龙吟》的分析2----- 采用工具对预登陆flash进行逆向获取源代码

预登陆flash文件名为 Preloader.1.4.3.2.swf  下载到本地后faxia

_Witch__的专栏 6385

flash游戏开发之 如何反编译.swf文件得到actionscript3 as3源代码.zip

flash游戏开发之 如何反编译.swf文件得到actionscript3 as3源代码.zip

网页媒体嗅探神器猫抓:4步学会视频下载,M3U8也能一键合并

还在对着网页视频干瞪眼吗?猫抓(cat-catch)这款开源的浏览器扩展,把**网页媒体嗅探**和视频下载变成了一件轻轻松松的小事。装上它,网页里藏着的视频、音频、流媒体链接全都无所遁形,点几下就能稳稳保存到本地。 ## 它凭什么值得装?先看三个日常崩溃瞬间 先别急着下载,说说我为什么把它当宝贝。 第一个瞬间:报了个在线课程,想缓存下来反复看,右键菜单却只有"另存为网页",保存回来的是一堆没

gitblog_00825的博客 1610

双卡RTX 3090实战:基于vLLM高效部署Qwen2.5-14B BF16大模型的完整指南

本文提供了在双卡RTX 3090上使用vLLM推理框架高效部署Qwen2.5-14B BF16大模型的完整实战指南。内容涵盖硬件配置、系统环境准备、vLLM核心原理与安装、模型获取、详细部署步骤(包括脚本启动与API服务),以及性能调优与避坑技巧,旨在帮助开发者充分利用硬件性能,实现稳定、高速的本地大模型推理服务。

yy01234的博客 1512

RGB接口电容触摸屏驱动(一)模块介绍

RGB接口电容触摸屏驱动(一)模块介绍

杰克拉力船长个人博客 7876

3步精通SWF反编译:开源工具实现Flash逆向工程深度解析

SWF反编译作为Flash逆向工程的核心技术,在现代多媒体遗产维护中发挥着关键作用。JPEXS Free Flash Decompiler作为一款开源工具,提供了从SWF文件解析到ActionScript代码重构的完整解决方案。本文将通过系统化方法,帮助中级开发者掌握Flash逆向工程的核心技术栈。 ## 快速入门:环境配置与项目构建 ### 系统环境要求 JPEXS基于Java开发,确保跨

gitblog_01080的博客 461

基于RK3588与FPGA的SDI视频处理系统:从MIPI CSI-2输入到DSI输出的全链路解析

本文深入解析了基于RK3588与FPGA的SDI视频处理系统全链路。系统利用FPGA作为高速接口转换与流管理核心,将SDI信号转换为MIPI CSI-2数据流送入RK3588进行智能图像处理与AI分析,处理结果再通过MIPI DSI回传,最终由FPGA控制编码为SDI输出,实现了专业视频接口与强大算力的高效协同。

s1t2u3的博客 667

SWF游戏软件逆向基础知识1

第1节 在遇到SWF文件,游戏资源分析用得到 swf文件的整体结构是 header + body的组成。 文件的开始是一个[文件头] 它的结构如下: 字节 名称 说明 1 Signature “F”表示非加密格式,“C”表示加密格式 1 Signature “W”无特殊意义 1 Signature “S”无特殊意义 1 Version 版本号,它表示对应

蘑菇哥 1054

win10系统下使用Mask_Rcnn训练自己的数据

版权所有,翻版必究。https://mp.youkuaiyun.com/console/editor/html/106094147 运行环境:WIN10,pycharm,相应的CUDA,CUDNN,tensorflow1.15.0,tensorflow-gpu-1.14.0,Anaconda3 第一步:Mask RCNN开源项目:https://github.com/matterport/Mask_RCNN 第一步:数据准备 首先安装labelme进行数据的标注。安装方法pip install labe

fightingxyz的博客 1750

视频教程-Ps教程之神奇的Photoshop自动化技术-Photoshop

Ps教程之神奇的Photoshop自动化技术 10年以上IT行业工作经验、三...

weixin_28812857的博客 1474

MCU】可怕,别人把我MCU固件给反汇编了!(逆向)J-FLASH通过下面的选项路径,即可读取所选Flash区域或者所有Flash区域(Entire Chip)安装IDA Pro逆向工具

本文主要跟大家分享一个简单逆向stm32固件程序的实例,为了让大家在一款成熟的产品中去考虑加密这一块的技术,不然分分钟被别人copy! 直接读取固件 这里以stm32单片机进行演示,如果MCU没有做flash读取或者熔断保护,则可以通过jlink等烧写工具直接读取其Flash上的固件,操作如下: 01 打开J-Flash软件并选择创建一个新的工程,并点击Start J-Flash: 02 选择所对应的芯片类型,并点击连接芯片,并显示连接成功。 ...

二进制模----细微行动改变影响世界 3717

GBase8a-GDCA认证考试-复习参考题

为提升产品服务水平定期举办GBase产品认证培训,培训更多GBase数据库专业人员,满足用户快速成长的业务需求,建设GBase产品生态。请注意甄别,根据所学知识综合判断,正确率97%(97分)。

weixin_41826637的博客 2374
上一篇: XXTEA的实现(javascript版本)
下一篇: 腾讯QQ协议分析文档
袁赛因不花
博客等级 码龄10年 82粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值