最近,本人在北方网看到一个好的视频讲座,是天津北方网的田蕴章先生的书法讲座——每日一题每日一字,总想把他下到本机上可以随时随地观看,并想刻盘保存收藏,但采用技术进行了控制,直接用页面显示的FLV地址是下不了的,经过这几天的钻研探索,终于搞到手了。

其实能在电脑上看的,肯定可以复制下来的,只要能找到内容数据在内存上的位置,就行了,下面将我这几天的心得及所走的弯路写出来,希望能给大家一个提示。

首先,我自已写了个文件变化监视器,用.net中的FileSystemWatcher实现,很简单,一二十分钟就能搞定,都是组件自带的功能,但也有缺憾,就是只能偷看,不能拦截和控制操作,如果能够拦截或控制,那就没下文了。反复播放视频,利用这个程序,终于发现播放时下载的视频文件在Temp目录下,文件名为flaXXXX.tmp,其中四个X为随机生成的字符。但这个文件既不能复制,当然也不能打开,而且IE结束就自动消失了。这只能杀进IE进程,才能找到这个文件打开的句柄,然后再读出来放到写到另一个文件中,相当于复制文件,也就大功告成了。

这个关键在写个系统拦截的钩子,杀入IE进程,然后拦截API函数.这里主要是CreateFile 和CloseHandle两个函数,其实拦截一个就行了.系统钩子很简单,就是用SetwindowsHookex函数,就行了,关键是拦截系统API,我主要用到的方法是改写API函数开头的5个字节,第一个字节为0xe9这是jump指令的机器码,紧跟四个字节是位置偏移,这是通过查找到的API函数和自己写出的替换函数地址间的差来确定,用WriteProcessMemory写入五个字节的跳转指令就行了.这样系统执行CloseHandle时,就自动跳到了自己写的替换函数上去了,自己写的函数与要拦截的函数参数必须完全一样,这样系统本准备传到API函数中的参数就自动到了替换的函数中去了,也就得到了文件的句柄,想做什么都可以了.

下载FLV影片的方法相关推荐

  1. 下载FLV资源的几种办法

    下载FLV资源的几种办法 1.利用sniffer,这类工具很多,比如HttpDetect/URLHelper/HttpLook等.将其开启,再打开有flv视频的网页,就能过滤到flv资源,真实URL很 ...

  2. 下载yutube视频的方法 超方便

    下载yutube视频的方法 超方便 Keepvid.com这个网站非常爽,只要把youtube相应视频的url填入,它就会自动提取出flv文件供下载了,而且速度还很快.keepvid支持大部分流行视频 ...

  3. 维棠下载flv出错 kmplayer背黑锅

    维棠下载flv出错 kmplayer背黑锅 用维棠FLV视频下载软件从某在线视频网站下载了一部电视剧,用kmplayer播放时有几集出错: 未找到可用于流呈现的筛选器组合error Num:80040 ...

  4. php获取视频的真实地址,PHP获取youku视频真实flv文件地址的方法,

    PHP获取youku视频真实flv文件地址的方法, 本文实例讲述了PHP获取youku视频真实flv文件地址的方法.分享给大家供大家参考.具体分析如下: 有一站长要我帮助它做一个可以自动测试出youk ...

  5. php 当前页面下载文件,php实现当前页面点击下载文件的简单方法

    php实现当前页面点击下载文件的简单方法 发布于 2017-08-02 17:44:21 | 80 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  6. Maven国内阿里镜像(Maven下载慢的解决方法)

    Maven国内阿里镜像(Maven下载慢的解决方法) 参考文章: (1)Maven国内阿里镜像(Maven下载慢的解决方法) (2)https://www.cnblogs.com/xiongxx/p/ ...

  7. python3 安装包 源码包 下载慢问题 解决方法

    目录 问题 解决方法1 选择国内镜像源 解决方法2 使用下载器 问题 python官网下载地址:https://www.python.org/downloads/ 国内下载特别慢 解决方法1 选择国内 ...

  8. python视频下载-python动态视频下载器的实现方法

    这里向大家分享一下python爬虫的一些应用,主要是用爬虫配合简单的GUI界面实现视频,音乐和小说的下载器.今天就先介绍如何实现一个动态视频下载器. 爬取电影天堂视频 首先介绍的是python爬取电影 ...

  9. php 网页内容下载,php实现当前页面点击下载文件的简单方法

    php控制器中代码 public function downFile($path = ''){ if(!$path) header("Location: /"); download ...

最新文章

  1. Linux下的Ubuntu16.04系统配置并使用USB转串口(串口转USB),最终使用python的serial和pyserial包实现串口的打开并读取数据
  2. Redis|Sentinel 高可用架构
  3. 清华大学python镜像_使用清华开源镜像安装tensorflow
  4. 【数据库系统】为什么使用SQL而非C/C++的函数库执行数据库查询操作
  5. [Python] numpy.ndenumerate() 获得一对数组坐标和值
  6. 下一跳配置的原则--ensp
  7. 水星路由器怎么设置虚拟服务器,水星路由器怎么设置图解教程
  8. 怎么发现愿景和目标 | 进击
  9. TB-02 Kit开发板及TB系列BLE蓝牙模块固件及天猫精灵三元组串口烧录工具操作方法说明及固件市场介绍(基于泰凌微TLSR8258芯片)
  10. lucene4.0与IKAnalyzer的冲突
  11. android 9.0的模拟器,exagear模拟器最新版安卓9.0
  12. paypal IPN and PDT
  13. TCP拥塞控制算法BBR源码分析
  14. 七星彩长奖表图_2020海南七星彩奖表图最新
  15. 为什么高防CDN将成为网站安全防护的必备?
  16. python compare()_Python Decimal compare()用法及代码示例
  17. HTML5开发APP页面(动效篇)
  18. abb机器人建立工件坐标系_ABB机器人培训-定义坐标系.ppt
  19. Python图形界面开发教程-课程笔记-2022-2-14
  20. 微软azure waf简介

热门文章

  1. 建立自己的闪电网络通道
  2. 电子科技大学计算机专业培养方案,电子科技大学计算机科学与技术学科2012博士研究生培养方案.pdf...
  3. 古代野兽 Ancient Beast:优质开源游戏项目
  4. 阿里云正在从IBM商业模式走向AWS商业模式
  5. 阿里巴巴风鸣:敲着代码,操着产品、运营的心
  6. 【蒲公英学术】内容包含:冰湖灾害监测评价、国土空间、生态系统服务评估、VSD模型、机器学习
  7. 量化数据源Tushare!高校师生可用 -- (1)
  8. 别浪费自己的高学历!
  9. OKR跟进的四象限法则
  10. 艾森豪威尔四象限法则