首页
社区
课程
招聘
[旧帖] [原创]360的P2P下载接口 0.00雪花
发表于: 2014-3-17 14:23 1733

[旧帖] [原创]360的P2P下载接口 0.00雪花

2014-3-17 14:23
1733
之前在论坛里面看到了有前辈发帖介绍怎样使用 360的下载接口,但是只有建立下载任务,不能够控制任务状态,查看网速,为了满足自己的欲望,嘿嘿,因此花了不少时间来找剩余的函数接口,望各位大牛指正。好了,不废话,现在上函数原型。
//启动下载器
int _StartRun();// 启动下载器,无参数
//停止下载器
int _StopRun();//停止运行下载器,无参数
//建立任务,开始下载
int _ PPStartTask(
LPSZSTR szDownUrl,//下载URL
LPSZSTR szFilePaht,//下载文件的存放 完整路径
int nUnknow1,//0
int nUnknow2,//0
int nUnknow3,//0
int nUnknow4,//0
int nUnknow5//0
); 
//暂停/停止任务
int PPStopTask(
DWORD nTaskID//包含任务的ID
);
//开启P2P下载
int _EnabledP2P(
BOOL bEnabled//指定是否启用P2P下载
);
//设置下载速度   0:不限速
int PPSetConfig(
IN  LPVOID lpPreperties;//指向一个属性的结构体
DWORD nUnknow;//未知参数,始终为0
);
//获取指定任务的任务信息
int  _PPQueryTask3(
IN DWORD nTaskID//包含指定将要获取的任务ID信息
,OUT LPVOID lpTask //指向一个用来返回任务信息的结构体
);
//移除指定的任务
int PPRemoveTask(
IN DWORD nTaskID   //传入要移除的任务ID
);

上面的函数当中,为Unknow的参数,是我也不知道是个什么作用,可以不用管,里面用到了两个结构体,同样结构体里面Unknow 还是不清楚是什么东东
typedef struct _TASK
{
  DWORD nUnknown1;
  ULONG64 nTotalBytes;//下载文件的总大小,单位:字节
  ULONG64 nDownloadedBytes; //已下载字节数,单位:字节
  ULONG64 nUnknow2;
  ULONG64 nUnknow3;
  DWORD nUnknow4;
  DWORD nDownloadSpeed; //当前任务下载速度,单位:字节
  DWORD nUploadSpeed; //当前任务上传速度,单位:字节
  DWORD nUnknow5;
  DWORD nUnknow6;
  DWORD nUnknow7;
  DWORD nUnknow8;
  WCHAR wFilePath[512];//文件下载全路径
  WCHAR wUnknow[1024];  
}TASK,*PTASK;

typedef struct _CONFIG
{
  DWORD nType;// 指定为0xC,可能不同的系统有所不同
  DWORD nDownSpeed; //指定限制的下载速度,单位:字节
  DWORD nUploadSpeed; //指定上传的速度,单位:字节
  CHAR  cUnknown2[180];
}CONFIG,*PCONFIG;

下面穿插上各个函数的使用示例
用到的全局变量
HMODULE hModule;//全局变量
DWORD g_nTaskID;//全局变量

        //启动下载器
        wchar_t wDllPath[MAX_PATH] = { 0 };
  GetModuleFileName(NULL, wDllPath, MAX_PATH);
  PathRemoveFileSpec(wDllPath);
  wcscat(wDllPath, L"\\LiveUpd360.dll");
  hModule = LoadLibrary(wDllPath);

  if (0 == hModule)
  {
    return false;
  }

  DWORD StartRun = (DWORD)GetProcAddress(hModule, "_StartRun");
  DWORD EnableP2P = (DWORD)GetProcAddress(hModule, "_EnableP2P");  
  _asm
  {
    mov eax, StartRun
    call eax

    push 1
    mov eax, EnableP2P
    call eax
    add esp,0x4
  }

        //建立任务,自动开始下载
        DWORD PPStartTask = (DWORD)GetProcAddress(hModule, "PPStartTask");
  wchar_t wFilePath[MAX_PATH] = L"c://test/test.exe";
wchar_t wDownUrl[1024] = L"pdown://http://cdn.browser.aliyun.com/download/bin/YunOSzhushou-2.7.0.3458.exe";
  _asm
  {
    push 0
    push 0
    push 0
    push 0
    push 0x14
    lea eax, dword ptr wFilePath
    push eax
    lea ebx, dword ptr wDownUrl
    push ebx    
    mov ebx, PPStartTask
    call ebx//新建任务,开始下载
    add esp, 1ch
    
    mov g_nTaskID, eax//保存任务ID
  }

        //获取指定任务的信息
        TASK *task = new TASK();
    DWORD _PPQueryTask3 = (DWORD)GetProcAddress(hModule, "_PPQueryTask3");
    _asm
    {
      mov eax, eax
      mov ebx, ebx
      mov eax, eax

      mov ebx, task
      push ebx
      mov eax, g_nTaskID
      push eax
      mov eax, _PPQueryTask3
      call eax
      add esp, 8h
    }

        //停止/暂停 任务
        DWORD PPStopTask = (DWORD)GetProcAddress(hModule, "PPStopTask");
  _asm
  {
    mov ebx, dword ptr g_nTaskID
    push ebx
    mov eax, PPStopTask
    call eax    
  }

        //设置下载器属性,这里只能设置下载/上传速度,单位为字节

        PCONFIG pConfig = new CONFIG();
  pConfig->nUnknow1 = 0xC;
  pConfig->nDownSpeed = 200*1024;
  pConfig->nUploadSpeed = 10 * 1024;
  memset(pConfig->cUnknown2, 0, 180);

  TASK *task = new TASK();
  DWORD PPSetConfig = (DWORD)GetProcAddress(hModule, "PPSetConfig");
  _asm
  {
    push 0
    mov eax, pConfig
    push eax

    mov eax, PPSetConfig
    call eax
    add esp, 8h
  }
  delete task;
  delete pConfig;
        
        //移除指定的任务,同时会删除源文件,可用于暂停,下载中的任务,不用于已完成的任务
        DWORD PPRemoveTask = (DWORD)GetProcAddress(hModule, "PPRemoveTask");
  _asm
  {
    mov ebx, dword ptr g_nTaskID
    push ebx
    mov eax, PPRemoveTask
    call eax
  }



里面的_PPQueryTask3 这个函数,只有现在新版的360 里面才包含的有,老版的没有,这里我奉上对应的DLL。

这是本人第一次发帖,如有不周正之处还请原谅;如果还有什么不太清楚的地方,请回帖,谢谢。
另外,求邀请码,求优秀!!!!

360Liveup.7z

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
纯帮顶。
2014-3-17 14:31
0
雪    币: 328
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
非常感谢
2014-3-17 14:34
0
雪    币: 2496
活跃值: (221)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
帮顶.thanks.
2014-3-19 08:49
0
游客
登录 | 注册 方可回帖
返回
//