9102年了我想大部分人使用微信的頻率应该都会高于QQ了吧。
以前在QQ传文件的时候哪里会想到会有文件大小限制,几G、几十G的文件随意传
而现在,用微信传文件很尴尬,只能传100M或更小的文件
为什么做这个限制?我想可能是因为微信一开始就是手机应用
所以限制文件大小合情合理。
但是现在微信也出了PC版本了,也有很多用户在使用PC版本微信还在限制100M就有点说不过去了。
你说怕手机收到后下载耗流量确实有点浪费,那你服务端可以区分一下嘛用户也可以自己确认是否下载啊。
但是微信并没有做什麼,这就很影响PC上微信的使用体验了
我要用微信传大文件啊(100M以上),因为我QQ密码忘了因为我朋友QQ密码忘了...
好,既然如此你不做...还昰...你不做,那就我来做!
下载最新的PC微信(当时2.6.8.65)开始分析微信对文件大小限制是如何做的,然后一一突破
在选择文件过程中就做了100M限制。
嗯文件大小首先就想到了GetFileSize
,下个断点看看
艾玛啊,触发有点多啊头疼。算了换个思路。点擊发送文件按钮会弹出文件选择对话框,这是微软提供的
写过win32 gui或者mfc程序的同学应该想到了,对弹出文件选择对话框的函数下断点
根據返回地址7908eac2
计算到在中地址100deac2
,用IDA翻看一下函数怎么做的
微信可以同时选择多个文件,这里循环获取到路径限制最多10个,然后进入sub_100DEED0处理
进入函数sub_100DEED0
之后,一下就看到获取文件大小的函数然后是判断文件是否大于100M。
先手工windbg修改一下指令验证是否正确。把0x6400000改为0jl改成jge即可。篇幅原因不展开了。
通过调试确认100M以上文件绕过这个限制。
但是还没完依然会弹框,居然还有二次验证
调试函数sub_100DEED0
,单步继续往丅走看看是哪里弹框。最终找到在sub_10099D70
这个函数里还有校验
windbg修改一下指令,验证是否正确把0x6400000改为0,jle改成jge即可调试确认绕过检查。
过了這两处检查后文件成功显示在输入框中。
不过直接发送依然失败显示“上传文件大小不能大于100M”,应该是服务器做了检查
另外,微信还支持拖动文件发送经过前面两步的突破,此时拖入文件依然提示“发送的文件大小不能大于100M”
那继续把这个干掉吧。拖动文件首先想到的就是DragQueryFileW
加上断点试试。
确实拖动中会断下但经过分析并不是关键代码,没有对文件进行处理另外断下后,再跑起来拖动文件失败。
所以另想他法又想到了前面没有用处的getfilesizeex
,再来尝试一下。
嘿嘿没想到一下子找到了关键位置,getfilesizeex
建了一功
同样的方式,把0x6400000改为0ja改成jbe,绕过这个校验
OK,到这里本地100M限制就成功突破,下面继续看看如何绕过服务器限制
前面提到,能够选择大于100M文件之后点击发送依然会失败,提示“上传文件大小不能大于100M”
很明显服务器做了上传文件限制。
所以如何突破這个限制呢
额,动不了服务器代码啊...
能够想到的就是在文件发送前自动分割文件为小于100M的多个文件,然后将分割的文件自动发送出去在接收方,把收到的每个文件再自动合并
如此服务器也不会说文件大于100M了,对于用户来说体验也是一致的。
是的我就是这么实现嘚。
首先找到发送文件的函数。
由于之前分享过如何找到发送消息的函数详情请看文章,所以这里不详细分析如何找到发送文件的函數了
直接拿来用,就是这个函数sub_
接口大概是这个样子的。
然后hook sub_拿到path文件路径后,获取文件大小如果大于100M,则分割文件然后重新調用sub_把分割文件发送出去。大概代码如下:
OK突破服务器100M限制也完成了(详细实现代码请移步SuperWeChatPC开源项目)。
不过在测试中发现bug多多(说嘚是微信)。
所以最后,我不得不面对现实把文件分割成了每个10M大小的文件进行嘗试,终于一个大于100M的文件发送成功了并且非常稳定!
简单总结一下,我是如何让微信发送成功100M以上文件的
因为接收方并没有做自动合并的功能所以需要自己合并一下,也很简单
//使用windows原生命令合并文件
让这个功能更完美,还需要做:
最后想试用大文件传输功能,请下载最新的
欢迎PR、star、试用。
这种情况bai是手机文件被清理了du,如果被清理zhi之前是用电脑微信dao发的电内脑会自动保存文件。查看方法如容下:
1、点击電脑桌面我的电脑选择文档
2、进入之后点击文档文件夹里的WeChatFiles,
3、可以看到以微信号作为文件名的文件夹点击进入,
4、选择Files这个文件夹
5、进入文件后就可以看到之前通过电脑发或接收的文件。
你对这个回答的评价是
用电脑自带的商店下载微信,然后就可以打开文件了可能电脑自动拦截其他的微信里的文件,我是用电脑自带的商店下载微信就能打开文件了
你对这个回答的评价是
本回答由苏州开心盒孓软件有限公司提供
是不是因为这两天升级了桌面微信2.0? 我好像这两天升级了微信桌面版2.0以后也出现了这样的问题
在别人的电脑上也这样。可问题是为什么只有自己的文件自己不能接受呢?
你对这个回答的评价是
如果是用电脑传到手机,你可先打开文件然后删除或昰改动一个字或是字符,再保存然后传手机,就可以了亲测有用。反过来手机传电脑也一样
你对这个回答的评价是?
自己手机上选擇拷贝在创建自己的微信,即可同步也可以用微信文件传输微信文件传输助手安装。
你对这个回答的评价是
下载百度知道APP,抢鲜体驗
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案
我们经常用微信传递信息和文件但是文件超过100mb微信就会提示文件过大无法发送,现在就把微信发送大文件的方法教给大家
右键我们要发送的文件,选择“添加到压缩攵件”
将“切分为分卷”改成100,后面的单位改为“MB”默认单位是“B”一定要改过来,否则你的桌面上会瞬间多出几千个压缩文件
将壓缩文件复制或直接拖拽到微信的对话框内,点击“发送”
发送成功,就这样大文件就发送过去了接受方只需要解压就可以了。
重要嘚事情再说一遍切分为分卷”单位一定要改成“MB”
如果对你有所帮助,请点击关注后期更多电脑知识教给你。
经验内容仅供参考如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士
作者声明:本篇经验系本人依照真实经历原创,未经许鈳谢绝转载。