当前位置:网站首页>A failed cracking experience
A failed cracking experience
2022-07-28 15:52:00 【I'm not a code God】
Entrusted by others , Want to go to a website “ get ” Live video stream on it , And make use of , Although it finally failed , But the cracking process is still worth sharing with you , Hope to inspire you .
Live video streaming is nothing more than RTMP Protocol encapsulated Flv perhaps mp4, perhaps HLS, Of course, there is my unique technology (websocket Transmit raw data , adopt js Decode and play ). However, the technology encountered this time is very tricky , It ended in failure .
chrome Open the live screen of the website , Don't talk much ,F12 Call up the console , Locate the live screen Dom Elements , At first glance, it's a Flash Elements , Key parameters passed Flashvars Pass to flash, These parameters are passed in clear text , It's mainly userId,videoId. It seems to be going well .
If it is Flash player , Then the following way is to decompile . take out 10 The tools found in the hoard in have fallen behind , A lot of searches on the Internet , Found a free powerful tool , open swf file , There is no confusion , Code at a glance . It seems to be going well .
Not much code , After careful analysis , It was found that RTMPE Agreement to play . Although I have specialized in Flash And live video , But I really didn't study RTMPE agreement , This is a RTMP A variation of the agreement , stay RMTP The protocol is encrypted . This encryption doesn't matter , Another verification work was also done , It bothered me all day .
Before the video is played , The player also did one thing to guard against theft . Now let me explain in detail .
1. stay RTMPE After connecting to the server successfully ——NetConnection.Connect.Success
2. adopt RPC A method was called GetLive, This method returns a ByteArray object ———— It can be understood as binary stream
3. Put the binary object load To Loader And allow it to access the parent SWF Code permissions for
Here's a little explanation , This operation is Flash Load another Flash The process of ,Loader Object can be loaded directly swf Of URL, Or load a binary object directly from memory as described above , Such passage RTMPE Agreed RPC Mode to transmit a SWF The binary format of is quite hidden , And because of RTMPE Encryption of the Protocol , So you can't know this operation process by capturing packets .
I simulate this process , Before disconnecting , adopt fileReference Object will this ByteArray Objects are stored on the hard disk . Then open it through the decompile tool , See this SWF Source code of the document . In this source code, it does such an operation
4. This is loaded SWF It carries a string , And take this string as RPC The method name of initiates the request again , And get the actual name of the video stream from the server .
5. Lord SWF Play the video through the name of this video stream
The above process is fully understood , The following is the cracking process . First, decompile SWF Make local modifications , Intended to remove some of these visual elements ( through RPC Back to ByteArray Loaded onto the screen ), As long as I modified SWF, The connection will be disconnected soon . So I just wrote a new one myself Flash player , But the same fate .
On baidu search RTMPE、bing search 、 Over the wall Google search , There is not much information .
the second day , Continue to study , As far as I can guess , The server must be right SWF The document itself is verified , If two files are different, even if one byte is different , So the file Hash It must be different . This is the principle of many download tools for verification . Then I opened it Adobe Check the official article RTMPE Description of the agreement , See light suddenly :FMS You can use RTMPE Protocol pair swf Document validation , If not specified swf The client file will reject the connection .
So can you forge a client , Send verification information ? In theory , But you need to understand FlashPlayer Encryption process and generation principle of verification information . even so , We also need to solve dynamic loading SWF The problem of , That needs to be realized FlashPlayer The main function of , Such a workload is almost unrealistic . So the website has effectively resisted people like me who want to crawl its resources through these methods . I am willing to bow to the disadvantage .
边栏推荐
- Daily news on July 28, 2022: Science: AI has made another breakthrough in protein design, and can design specific functional proteins
- An article about rsocket protocol
- Matlab exports high-definition pictures without distortion in word compression and PDF conversion
- 软件架构与设计(九)-----基于组件的架构
- Software architecture and design (II) -- Architecture Model
- 取组合数问题
- The price war of off screen fingerprints has resumed, and second-line manufacturers are expected to win 30% of the market this year?
- Baidu proposes a dynamic self distillation method to realize dense paragraph retrieval by combining interactive model and double tower model
- Learn about the native application management platform of rainbow cloud
- 软件架构与设计(六)-----层次结构体
猜你喜欢

如何快速接入统一的认证鉴权体系

【微信小程序开发(七)】订阅消息

DNS域名解析协议

Easyexcel complex header export (one to many)

多功能混合信号AI采集/开关量DI/DO采集转RS485/232/MODBUS模块

Endnote is associated with word

About the pictures inserted in the word document, only the following part is displayed

Software architecture and design (VI) -- hierarchy
![[channel attention mechanism] senet](/img/e6/261ca0ae5a38c26e74de27d90993f7.jpg)
[channel attention mechanism] senet

Communication between client and server based on rsocket protocol
随机推荐
How to configure Samba server
取组合数问题
Software architecture and design (V) -- data centric architecture
虚拟机之NAT模式下设置静态IP
Principle and application of low cost / small volume module rs485/232 to analog signal ibf33
热敏电阻PT100,NTC转0-10V/4-20mA转换器
记:数字累加动画
monkey压力测试
Flowable workflow all business concepts
比例电磁阀控制阀4-20mA转0-165mA/330mA信号隔离放大器
Framework customization series (10) -- systemui customization status bar statusbar and navigation bar tutorial
PyQt5快速开发与实战 5.1 表格与树
Software architecture and design (II) -- Architecture Model
Flutter中是使用RxDart代替Stateful
How to build opengrok code server
占空比开关量输出高速脉冲计数器RTUModbus模块IBF63
The price war of off screen fingerprints has resumed, and second-line manufacturers are expected to win 30% of the market this year?
String (3)
5-channel di/do relay output remote IO acquisition module Modbus tcp/ibf95
Framework customization series (VI) -- shield fallbackhome mobile phone from pop-up during startup and directly enter the launcher