|

本帖最后由 袁煜914 于 2021-7-27 13:32 编辑
开头:
我最近突然玩着游戏突然想到,如果能下载这些小游戏,不就能离线下载玩小游戏了吗?说干就干,于是就看看如何才能下载这小游戏。
就比如这个4399小游戏为例子展开分析:
http://www.4399.com/flash/45034_4.htm
第一步:
同时Ctrl+Shirt+I(审查元素)进入审查元素界面,对着游戏界面再次点击审查元素
就会出现一个“//sbig.4399.com/4399swf/upload_swf/ftp2/haibo/20101218/2.swf”
,点击进入你就会看到要下载swf游戏。
第二步
但是这样远远不够,因为我们制作小软件不能直接调用审查元素里面的元素,有可能是js动态加载(网页源代码+js加载),所以我们再看看网页源代码里面有没有这个swf的链接,“Ctrl+F”搜索“.swf”

可以看到有2个,这两个swf链接都是一样的,但都是只有两个一半的swf链接,还有两个需要我们自己寻找零散的链接元素拼凑成一个完整的swf链接。
审查元素时,你看到那些,在源代码中找不到的代码,是在浏览器执行js动态生成的。
通过审查元素看到的就是最终的html代码。即:源代码 + 网页js渲染
第三步
我也讲不太明白,就是抓个包分析分析,
这些网址吧,基本能直接获取到的情况,就直接用获取到的,
直接获取不到的情况,就看看抓包源头,或者是看看能不能通过抓包数据拼接起来。
swf链接的开头部分,是用这个链接里面的内容拼接的“http://www.4399.com/js/servers12.js”,
var webServer = "sbig.4399.com/4399swf"; (swf链接前半段链接)
var sPicServer = "img.4399.net:8080";(小游戏图片前半段链接)
而“js/servers12.js”这个链接,可以从“http://www.4399.com/flash/45034_4.htm”
源码里面直接获取,
然后拼接一下,就是最后的swf链接。
简单一些来说就是:
A:js源码里面的swf前半段链接
B:搜索.swf获取到的链接
A+B=完整的swf链接
结尾
易语言完整源码在这里:
https://yuanyu.lanzoui.com/iAnKVjrgyne (需要用到精易模块)
易语言成品在这里:
https://www.52pojie.cn/thread-1338326-1-1.html
PS
好像我就只有这样才能贡献一下论坛了!软件和原理都很简单,如果文章写的不好或不对的地方请提出来,大家一起共同提升!感谢大家的支持!
源码:
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 编辑框1.内容 = 到文本 (到字节集 (网页_访问 (编辑框8.内容 )) )正则_匹配批量 (编辑框1.内容 )编辑框3.内容 = 到文本 (网页_访问 (编辑框2.内容 )) 编辑框4.内容 = 文本_取出中间文本 (编辑框3.内容, “var webServer = ” + #引号, #引号 )编辑框6.内容 = 文本_取出中间文本 (编辑框1.内容, “var str1 = '”, “'”)编辑框5.内容 = 编辑框4.内容 + 编辑框6.内容 变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_正则 | 正则表达式类 | | | 局_匹配数 | 整数型 | | | 局_计次 | 整数型 | | | 局_子匹配数 | 整数型 | | |
如果真 (局_正则. 创建 (“/js/server.*.js”, 源文本, 假, 假, 真, 真) = 假)返回 (0 )局_匹配数 = 局_正则.取匹配数量 () 如果真 (局_匹配数 = 0 )返回 (0 )局_子匹配数 = 局_正则.取子匹配数量 () 计次循环首 (局_匹配数, 局_计次 ) 如果 (局_子匹配数 > 0 )编辑框2.内容 = 局_正则. 取子匹配文本 (局_计次, 1, ) 编辑框2.内容 = “http://www.4399.com” + 局_正则. 取匹配文本 (局_计次, ) 计次循环尾 ()返回 (局_匹配数 )
|
评分
-
查看全部评分
|