当前位置:网站首页>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 .
边栏推荐
- 屏下指纹价格战再起,二线厂商今年有望拿下30%市场?
- Proportional solenoid valve control valve 4-20mA to 0-165ma/330ma signal isolation amplifier
- Duty cycle switch output high speed pulse counter rtumodbus module ibf63
- Communication between client and server based on rsocket protocol
- 记项目 常用js方法
- Baidu proposes a dynamic self distillation method to realize dense paragraph retrieval by combining interactive model and double tower model
- Software architecture and design (VII) -- interactive architecture
- Shell programming specifications and variables
- 5路DI/DO继电器输出远程IO采集模块Modbus TCP/IBF95
- 9. Related data accumulation task definition
猜你喜欢

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

软件架构与设计(六)-----层次结构体

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

Duty cycle switch output high speed pulse counter rtumodbus module ibf63
![[delete specified number leetcode]](/img/16/b40492d8414a363a3a24f00b4afd47.png)
[delete specified number leetcode]

Matlab exports high-definition pictures without distortion in word compression and PDF conversion

Docker container implements MySQL master-slave replication

Docker implements redis cluster mode hash slot partition for 100 million level data storage

Shell编程规范与变量

生命的感悟
随机推荐
Learn about the native application management platform of rainbow cloud
Rust 入门指南(rustup, cargo)
跟我学Rx编程——Concat
Software architecture and design (VI) -- hierarchy
MLX90640 红外热成像仪测温传感器模块开发笔记(八)
Matlab does not overwrite importing Excel
Using SYSTEMd to manage services
Flutter中是使用RxDart代替Stateful
Multifunctional mixed signal AI acquisition / switching value di/do acquisition to rs485/232/modbus module
Software architecture and design (VII) -- interactive architecture
阿里云的rds mysql 只读实例在哪里创建
Camera continuous shooting automatic test shell script
samba服务器如何配置
9. Related data accumulation task definition
记:数值向上取整十,整百,整千,整万
Summary and arrangement of postgraduate entrance examination information of 211 colleges and universities nationwide
The price war of off screen fingerprints has resumed, and second-line manufacturers are expected to win 30% of the market this year?
Principle and application of low cost / small volume module rs485/232 to analog signal ibf33
Rxdart is used instead of stateful in fluent
Stateflow logic system modeling