C#/.net 下载服务器FTP 中的exe文件 出现“缓存”问题!该怎么解决呀?

绝版PC 2019-06-24 07:05:07

问题:服务器跟换了一个exe文件,部分客户端下载的还是之前的exe(大部分客户端正常)
同样路径方法下 下载非exe 文件正常!!!!!!

是客户端问题还是服务端问题?
是代码问题还是客户端电脑问题?
string UpdateFile = lvUpdateList.Items[i].Text.Trim();
string updateFileUrl = updateUrl + lvUpdateList.Items[i].Text.Trim();
long fileLength = 0;

WebRequest webReq = WebRequest.Create(updateFileUrl);
WebResponse webRes = webReq.GetResponse();
fileLength = webRes.ContentLength;

lbState.Text = "正在下载更新文件,请稍后...";
pbDownFile.Value = 0;
pbDownFile.Maximum = (int)fileLength;

Stream srm = webRes.GetResponseStream();
StreamReader srmReader = new StreamReader(srm);
byte[] bufferbyte = new byte[fileLength];
int allByte = (int)bufferbyte.Length;
int startByte = 0;
while (fileLength > 0)
{
Application.DoEvents();
int downByte = srm.Read(bufferbyte, startByte, allByte);
if (downByte == 0) { break; };
startByte += downByte;
allByte -= downByte;
pbDownFile.Value += downByte;

float part = (float)startByte / 1024;
float total = (float)bufferbyte.Length / 1024;
int percent = Convert.ToInt32((part / total) * 100);

this.lvUpdateList.Items[i].SubItems[2].Text = percent.ToString() + "%";

}

string tempPath = tempUpdatePath + UpdateFile;
CreateDirtory(tempPath);
FileStream fs = new FileStream(tempPath, FileMode.OpenOrCreate, FileAccess.Write);
fs.Write(bufferbyte, 0, bufferbyte.Length);
srm.Close();
srmReader.Close();
fs.Close();
...全文
1470 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2019-06-25
  • 打赏
  • 举报
回复
url后面增加时间戳,和随机数都可以。
绝版PC 2019-06-25
  • 打赏
  • 举报
回复
引用 2 楼 娃都会打酱油了 的回复:
你用的get请求吧?get请求有浏览器缓存问题,所以要么你在参数后面加时间戳,要么改成post,或者你下载地址改为由你的指定处理程序返回,在那个返回中指定不使用浏览器缓存
这方法不行看楼下我发的图..
绝版PC 2019-06-25
  • 打赏
  • 举报
回复
引用 1 楼 jinkuang45 的回复:
最简单的解决办法就是 updateFileUrl =updateFileUrl +"?"+DateTime.Now.ToString("yyyyMMddHHmmss");

给URL加上一个时间戳参数, 这样改变了URL ,就不存在缓存的可能了
这方法不行看楼下我发的图..
绝版PC 2019-06-25
  • 打赏
  • 举报
回复
用了你这方法不行! 感觉应该是网络代理商的问题

我直接用ie ip下载 59.xxx.xx.x/xxx文件 但ie 却返回的另一IP下的文件


还有招吗?
  • 打赏
  • 举报
回复
你用的get请求吧?get请求有浏览器缓存问题,所以要么你在参数后面加时间戳,要么改成post,或者你下载地址改为由你的指定处理程序返回,在那个返回中指定不使用浏览器缓存
冰川711 2019-06-24
  • 打赏
  • 举报
回复
最简单的解决办法就是 updateFileUrl =updateFileUrl +"?"+DateTime.Now.ToString("yyyyMMddHHmmss"); 给URL加上一个时间戳参数, 这样改变了URL ,就不存在缓存的可能了
内容概要:本文详细记录了对一个Android ARM64静态ELF文件字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文步骤进行动态分析与算法验证,深入理解每一步的推理依据。

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧