-
-
[原创]diy迅雷的开放引擎
-
发表于:
2011-12-20 22:47
10067
-
【文章标题】: diy迅雷的开放引擎
【文章作者】: Netsd
【作者邮箱】: yezhu_love@163.com
【软件名称】: 迅雷开放引擎
【下载地址】: http://thunderplatform.xunlei.com/
【加壳方式】: 无
【保护方式】: 无
【编写语言】: VC
【使用工具】: od vs2008
【操作平台】: win32
【软件介绍】: 依托迅雷强大的下载加速技术,加速下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
PS:本文只是从技术角度进行分析,无意侵犯迅雷的版权,也没对迅雷的文件,进行任何的修改。
迅雷,开放的一个极其简单的下载引擎,不过看起来扭扭捏捏的,开放的不够彻底,每次用使用,还总自动来个托盘,提示安装迅雷可以加速,右键点下,还不能退出。左键单击- -!那更是坑爹,直接开始下载迅雷了。更要命的是,这东西还搞共享的托盘。牢骚发了一堆,直接进入正题吧。下面就直接搞掉托盘和共享一个托盘的问题。
下面是下载的链接:http://thunderplatform.xunlei.com/
这次走的是IAT HOOK的路子,不patch文件,还有数字签名,看着安全。。。
开始的时候,直接断Shell_NotifyIconW,能看到关键字符串。用IAT HOOK搞之,修改图标,发现能正常的显示,设置后的图标。后面发现在先开起其他实例的情况下,我自己的托盘就不出来了。也就是上面说的,共享了一个托盘。
下面就主要去patch那个东西。跨进程的首先考虑窗口和共享内存的东西
10039F0D push XLDownlo.1003BBBC xl_open_downlaod_engine_mutex
10039F28 push XLDownlo.1003BBF8 xl_open_downlaod_engine_share_memory
10039F43 push XLDownlo.1003BC48 xl_open_downlaod_engine_task_tray_icon_wnd_name
10039F5E push XLDownlo.1003BCA8 xl_tasknumber_and_speed
10039FB3 push XLDownlo.1003C800 DownloadServerNeedFileList.dat
10039FCE push XLDownlo.1003C840 xl_open_download_engine_temp_folder
LPCTSTR lpNetsdFileMap = _T("Netsd_xl_open_downlaod_engine_share_memory");
ATOM ret = 0;
LPCWSTR lpXlTrayIconClassName = L"xl_open_downlaod_engine_task_tray_icon";
LPCWSTR lpHookXlTrayClass = L"Netsd_TrayIcon";
ATOM WINAPI CTestProject2Dlg::Hook_RegisterClassExW(WNDCLASSEX *lpwcx)
{
if(lpwcx && (StrCmpW(lpwcx->lpszClassName,lpXlTrayIconClassName) == 0))
{
lpwcx->lpszClassName = lpHookXlTrayClass;
ret = RegisterClassExW(lpwcx);
return ret;
}
else
{
return RegisterClassExW(lpwcx);
}
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!