吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2675|回复: 30
收起左侧

[Web逆向] C#实现某视频地址的解析及下载

  [复制链接]
wanxu 发表于 2023-3-22 10:56
首先声明文章借鉴 @billsmiless 大佬的   文章地址是:python实现某视频地址的解析及下载(全集下载) - 『脱壳破解区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn


看了大佬的文章以后自己研究了一下发现请求一直会403,请求错误
困惑了比较久,刚要放弃但是发现了转机
api请求.jpg
首先请求的时候要带上Origin这个参数
vkey参数.jpg
计算vkey的时候会跳转到圈2的地方,这个地方点击单步会进入keyen
keyen.jpg
把圈2这个vkey改成圈1这个参数名即可,在计算的时候sign和keyen传递的都是从html中获取的vkey
这样计算出来的值就与发起请求时候的一样了
1679451450189.jpg
这是计算的示例,大家自行参考




然后我用C#写了下载的小程序,没有原作者的python写的强,没有多集下载的这一块功能,大家根据需要自己改造把

[C#] 纯文本查看 复制代码
 string VideoUrl = "视频url";
                Dictionary<string, string> header = new Dictionary<string, string>();
                header.Add("UserAgent", "你的UserAgent");
//HttpRequest封装的HttpClient,参数都在外面声明的
                string html = await HttpRequest.Get("https://123123.com/?url=" + VideoUrl, header);
                // time
                var time = Regex.Match(html, "var time = '(.*?)'").ToString();
                time = Regex.Match(time, "'(.*?)'").ToString().Replace("'", "");

                //vkey
                var vkey = Regex.Match(html, "var vkey = '(.*?)'").ToString();
                vkey = Regex.Match(vkey, "'(.*?)'").ToString().Replace("'", "");

                //计算两个必要参数
//Nuget包:Microsoft.ClearScript.V8
                JSHelper jSHelper = new JSHelper(FileHelper.GetApplicationPath("JS\\crypto.js"));
                string keyFrom = jSHelper.signV8(vkey);
                string vkeyFrom = jSHelper.keyenV8(vkey);


                Dictionary<string, string> form = new Dictionary<string, string>();
                form.Add("url", VideoUrl);
                form.Add("time", time);
                form.Add("ua", "0");
                form.Add("key", keyFrom);
                form.Add("vkey", vkeyFrom);
                var content = new FormUrlEncodedContent(form);
                header.Add("origin", "https://jx.xmflv.com");
                dynamic downJson = (await HttpRequest.Post("https:/123123.com/api.php", content, header)).ConvertTodynamic();
                if (downJson.code != "200")
                {
                    throw new Exception("当前接口返回异常!");
                }
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Title = "选择保存地址,取消将不保存!";
                saveFileDialog.Filter = $"this FileType(*.{downJson.type})|*.{downJson.type}";
                saveFileDialog.RestoreDirectory = true;
                saveFileDialog.InitialDirectory = FileHelper.GetDesktopPath();
                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
//NuGet包:Downloader  如果不会用的话直接把这行注释了把下面的取消注释
                     await Task.Run(async () => await DownloadVideoFile.DownloadAsync((string)downJson.url, saveFileDialog.FileName));
                    //if (!File.Exists(saveFileDialog.FileName))
                    //{
                    //    using (var web = new WebClient())
                    //    {
                    //        try
                    //        {
                    //            await web.DownloadFileTaskAsync((string)downJson.url, saveFileDialog.FileName);
                    //        }
                    //        catch
                    //        {
                    //            if (File.Exists(saveFileDialog.FileName))
                    //            {
                    //                File.Delete(saveFileDialog.FileName);
                    //            }
                    //            throw;
                    //        }
                    //    }
                    //}
                    MessageBox.Show("100% Done");

上述代码借鉴了一些第三方库,代码中已经注明了,可能还需要根据实际大家自行修改一下啦

附上一张运行的软件截图
1679452710815.jpg

有啥错误欢迎大家留言指正!


免费评分

参与人数 7吾爱币 +13 热心值 +6 收起 理由
jwdwm01 + 1 + 1 我很赞同!
吾不爱 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
涛之雨 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zxc0011 + 1 + 1 我很赞同!
esnows + 2 + 1 感谢大神,坐等后续全集下载
surk52 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
ctmaomao + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| wanxu 发表于 2023-3-24 13:44
1.png 2.png
更新内容有:多集下载,切片下载
多集下载接口信息获取失败时,复制出来失败链接,选择单集下载即可!
链接: https://pan.baidu.com/s/1QEvFILoK0p-4BoF9llvr_A 提取码: bbdz 复制这段内容后打开百度网盘手机App,操作更方便哦
文件夹中点击DownloadVideo.exe打开软件
@ctmaomao

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
esnows + 2 + 1 收到,测试成功,谢谢

查看全部评分

weiyanli 发表于 2023-3-23 15:23
 楼主| wanxu 发表于 2023-3-22 16:26
ctmaomao 发表于 2023-3-22 15:58
运行发现需要clearscript v8, 也就是说需要先装visual studio 然后再装这个包。 求问有没有什么办法,不 ...

不好意思啦,当时只安装试了试打开没问题,每点击下载,链接: https://pan.baidu.com/s/1ZbvxExpw69Qw6NvlQetYvA 提取码: qaah 复制这段内容后打开百度网盘手机App,操作更方便哦
这是新的地址里边有一个点我打开可以正常运行没有问题啦,如果运行不了就去下载一下.NET Framework 4.7.2的运行时了,后续我会出一个下载多个的
 楼主| wanxu 发表于 2023-3-22 10:56
附上下载链接,ali不能分享该类型文件,烦请老铁帮忙转存吧,
这是用vs发布的安装程序,如果安装后不能运行的话就安装一下.net fremework 4.7.2的运行时吧
因为写的时winform程序,不能在mac,linux上运行!
链接: https://pan.baidu.com/s/12NHy6a6klouX-dYbg3zSFA 提取码: stek 复制这段内容后打开百度网盘手机App,操作更方便哦
ctmaomao 发表于 2023-3-22 15:58
wanxu 发表于 2023-3-22 10:56
附上下载链接,ali不能分享该类型文件,烦请老铁帮忙转存吧,
这是用vs发布的安装程序,如果安装后不能运行的 ...

运行发现需要clearscript v8, 也就是说需要先装visual studio 然后再装这个包。 求问有没有什么办法,不装这一大堆东西,直接运行呀。
报错对话框如下
System.TypeLoadException: Cannot load ClearScript V8 library. Load failure
information for ClearScriptV8.win-x86.dll:
C:\Users\Robertz\AppData\Local\Apps\2.0\RWDK6CVE.QHY\HPPTNVYN.7TW\do
wn.tion 3e50c1c0353d88cf 0001.0000 e15563a071c27d81\runtimes\win-x86\nativ
e\ClearScriptV8.win-x86.dll:找不到指定的模块。
C:\Users\Robertz\AppData\Local\Apps\2.0\RWDK6CVE.QHY\HPPTNVYN.7TW\do
wn.tion 3e50c1c0353d88cf 0001.0000 e15563a071c27d81\ClearScriptV8.win-x86.d
:找不到指定的模块。
在 Microsoft.ClearScript.V8.V8Proxy.LoadNativeLibrary(String baseName, String
olatform, String architecture, String extension)
在 Microsoft.ClearScript.V8.V8Proxy.LoadNativeAssembly)
在 Microsoft.ClearScript.V8.V8Proxy.OnEntityHolderCreated()
在 Microsoft.ClearScript.V8.SplitProxy.V8EntityHolder.ctor(String name, Func'1
acquireHandle)
在 Microsoft.ClearScript.V8.SplitProxy.V8lsolateProxylmpl.ctor(String name,
V8RuntimeConstraints constraints, V8RuntimeFlags flags, Int32 debugPort)
在 Microsoft.ClearScript.V8.V8Runtime.ctor(String name, V8RuntimeConstraints
constraints, V8RuntimeFlags flags, Int32 debugPort)
在 Microsoft.ClearScript.V8.V8ScriptEngine.ctor(V8Runtime runtime, String
name, V8RuntimeConstraints constraints, V8ScriptEngineFlags flags, Int32
debugPort)
在 Microsoft.ClearScript.V8.V8ScriptEngine.ctor)
在 Rainbow.Core.JSHelper.signV8(String a)
在 DownloadVido.DownloadVideo.<btn Download Click>d _5.MoveNext
fsone 发表于 2023-3-22 16:00
赞一个,你分析的是用什么工具的?
wobzhidao 发表于 2023-3-22 16:20
请问这个是下载什么视频的啊
HuskyHappy 发表于 2023-3-22 16:21
学习学习
 楼主| wanxu 发表于 2023-3-22 16:27
fsone 发表于 2023-3-22 16:00
赞一个,你分析的是用什么工具的?

edge浏览器,都一样的
LEle1 发表于 2023-3-22 16:41
我很赞同!
Niklaus 发表于 2023-3-22 20:19
分享的文件已经被删除了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-6 00:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表