下载FLV影片的方法


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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值