在在线网站检查、修改并触发onclick函数以获取旧版固件
解决三阳AF 135mm F1.8 FE旧版固件下载问题
问题背景
你修改下载按钮的onclick参数(将FnFileDownload('964','5')改为FnFileDownload('964','4'))后仍下载v5固件,大概率是网站后端对请求参数做了校验,或者FnFileDownload函数内部有逻辑覆盖了你传入的版本号(比如从页面隐藏元素或固定位置读取最新版本)。
控制台尝试方案
查看函数真实逻辑
在浏览器控制台输入以下代码,查看FnFileDownload的内部实现,确认参数是否被实际使用:console.log(FnFileDownload.toString());通过输出的源码,判断函数是直接用参数发起请求,还是有额外校验逻辑。
直接调用修改后的函数
如果函数本身无额外校验,直接在控制台执行修改后的调用:FnFileDownload('964', '4'); // 尝试下载v4 FnFileDownload('964', '3'); // 尝试下载v3手动构造下载请求
如果函数内部有参数覆盖,通过浏览器网络面板抓取v5固件的下载请求,记录请求的URL、方法、请求头和参数,再手动构造请求替换版本号:
示例(需替换为实际请求信息):// 假设请求为POST接口,参数包含fileId和version fetch('/en/support/download-process.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': document.cookie // 带上会话cookie避免权限问题 }, body: 'fileId=964&version=4' }).then(response => response.blob()) .then(blob => { const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = 'samyang_135mm_f1.8_fe_v4.bin'; link.click(); URL.revokeObjectURL(link.href); });处理CSRF校验
如果请求因CSRF失败,需从页面隐藏输入框(如<input name="csrf_token">)或cookie中获取CSRF token,添加到请求参数或请求头中。
注意事项
如果以上方法均无效,说明网站后端可能限制仅能下载最新版本固件,这种情况下无法通过控制台代码实现旧版固件下载,需寻找其他用户备份资源。
内容的提问来源于stack exchange,提问作者Michael Roach
相关产品推荐
相关产品推荐

