一次初级的PEdiy之旅——迅雷广告条移除[看雪转载]
THUNDER SOFTWARE Thunder 4.7.3.53 PEdiy Tutorial
=============================
=============================
程序说明
什么是迅雷?
迅雷是一款新型的基于P2SP技术的下载软件。它使得您的下载更稳定和更迅速。
要进一步了解迅雷,就要了解到什么是P2SP。
我想大多数人对P2P并不陌生,P2P的下载概念,简单点说,
就是下载不再象传统方式那样只能依赖服务器,内容的传递可以在网络上的各个终端机器中进行。
P2SP除了包含P2P以外,P2SP的“S”是指服务器。
P2SP有效地把原本孤立的服务器和其镜像资源以及P2P资源整合到了一起。
也就是说,在下载的稳定性和下载的速度上,都比传统的P2P或P2S有了非常大的提高。
=============================
=============================
破解说明
保护方式:
Freeware+Advertisement
破解目的:
最近迅雷在网上大行其道,其下载速度确实不凡。
不过本人一直使用本本,屏幕太小,Thunder的广告条窗口让俺本来就小小的屏幕变的更小了。
郁闷中,想起以前的FlashGet等下载软件都有人对其进行过修改,去掉了广告条。
我也自己试试,看看能不能来个简单的DIY。
破解结果:
通过修改3个字节,修改掉广告条窗口。
可惜的是,播放广告内容的函数好像和整个软件的功能有关,
不敢随便乱改,就让它在消失的窗口里播放去吧,^_^。
=============================
=============================
破解分析
1. PEiD检测主程序Thunder.exe,无壳,VC6编译。
2. 因为是DIY,与加密解密无关,以往使用的加密算法检测就省略了。
3. 用OllyDbg载入Thunder.exe,搜索当前模块中的名称。
因为要DIY的与窗口有关,搜索MoveWindow API,没有发现,看来程序使用的MFC封装。
在MFC库里寻找,发现MFC42.#4299_CWnd::MoveWindow。
对所有参考设断,共29处。
F9运行,程序中断第一个MFC42.#4299_CWnd::MoveWindow处。
向下查看源码,发现了4个连续的DeferWindowPos
挨个分析MFC42.#4299_CWnd::MoveWindow和DeferWindowPos的参数,
正好与程序开始显示的窗口大小结构相同。
修改第1个DeferWindowPos的参数,使其高度为零。
修改第2个DeferWindowPos的参数,使其高度使原第1、2个DeferWindowPos高度的和(C0+103);
原点位置为原第1个DeferWindowPos的原点(0,0)。
F9,继续运行,,取消其他MFC42.#4299_CWnd::MoveWindow断点。
程序运行,广告条消失,修改成功!
=============================
=============================
源码分析
通过对MFC42.#4299_CWnd::MoveWindow设断,一步跟踪到以下代码:
0041ED4C |. E8 CD9E0800 call <jmp.&MFC42.#4299_CWnd::MoveWindow> ; --->中断在这里
0041ED51 |. 6A 04 push 4 ; /Count = 4
0041ED53 |. FF15 508F5500 call dword ptr ds:[<&USER32.BeginDeferWindowPos>; \BeginDeferWindowPos
0041ED59 |. 8D75 CC lea esi,dword ptr ss:[ebp-34] ; --->开始定义窗口位置,个数为4
0041ED5C |. 8D7D EC lea edi,dword ptr ss:[ebp-14]
0041ED5F |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041ED60 |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041ED61 |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041ED62 |. 8945 FC mov dword ptr ss:[ebp-4],eax
0041ED65 |. 8D83 D0000000 lea eax,dword ptr ds:[ebx+D0]
0041ED6B |. 85C0 test eax,eax
0041ED6D |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041ED6E |. 74 03 je short Thunder.0041ED73
0041ED70 |. 8B40 20 mov eax,dword ptr ds:[eax+20]
0041ED73 |> 6A 04 push 4 ; /Flags = SWP_NOZORDER
0041ED75 |. 6A 3C push 3C ; |
0041ED77 |. 59 pop ecx ; |--->修改为00
0041ED78 |. 2B4D F0 sub ecx,dword ptr ss:[ebp-10] ; |
0041ED7B |. 51 push ecx ; |Height=3C->00
0041ED7C |. 8B4D F4 mov ecx,dword ptr ss:[ebp-C] ; |
0041ED7F |. 2B4D EC sub ecx,dword ptr ss:[ebp-14] ; |
0041ED82 |. 51 push ecx ; |Width
0041ED83 |. FF75 F0 push dword ptr ss:[ebp-10] ; |Y=0
0041ED86 |. FF75 EC push dword ptr ss:[ebp-14] ; |X=0
0041ED89 |. 6A 00 push 0 ; |hAfterWnd = HWND_TOP
0041ED8B |. 50 push eax ; |hWnd
0041ED8C |. FF75 FC push dword ptr ss:[ebp-4] ; |hDefer
0041ED8F |. FF15 4C8F5500 call dword ptr ds:[<&USER32.DeferWindowPos>] ; \DeferWindowPos
0041ED95 |. 8D75 CC lea esi,dword ptr ss:[ebp-34] ; --->广告条窗口
0041ED98 |. 8D7D EC lea edi,dword ptr ss:[ebp-14]
0041ED9B |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041ED9C |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041ED9D |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041ED9E |. 8D83 68010000 lea eax,dword ptr ds:[ebx+168]
0041EDA4 |. 85C0 test eax,eax
0041EDA6 |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041EDA7 |. 74 03 je short Thunder.0041EDAC
0041EDA9 |. 8B40 20 mov eax,dword ptr ds:[eax+20]
0041EDAC |> 8B4D F4 mov ecx,dword ptr ss:[ebp-C]
0041EDAF |. 6A 04 push 4 ; /Flags = SWP_NOZORDER
0041EDB1 |. 2B4D EC sub ecx,dword ptr ss:[ebp-14] ; |
0041EDB4 |. 68 03010000 push 103 ; |Height = 103 (259.)--->修改为13F(103+3C)
0041EDB9 |. 51 push ecx ; |Width
0041EDBA |. 6A 3C push 3C ; |Y = 3C (60.)--->修改为00
0041EDBC |. FF75 EC push dword ptr ss:[ebp-14] ; |X
0041EDBF |. 6A 00 push 0 ; |hAfterWnd = HWND_TOP
0041EDC1 |. 50 push eax ; |hWnd
0041EDC2 |. FF75 FC push dword ptr ss:[ebp-4] ; |hDefer
0041EDC5 |. FF15 4C8F5500 call dword ptr ds:[<&USER32.DeferWindowPos>] ; \DeferWindowPos
0041EDCB |. 8D75 CC lea esi,dword ptr ss:[ebp-34] ; --->下载项目窗口
0041EDCE |. 8D7D EC lea edi,dword ptr ss:[ebp-14]
0041EDD1 |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041EDD2 |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041EDD3 |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041EDD4 |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041EDD5 |. 8B45 F4 mov eax,dword ptr ss:[ebp-C]
0041EDD8 |. 8D8B 3C1C0000 lea ecx,dword ptr ds:[ebx+1C3C]
0041EDDE |. 48 dec eax
0041EDDF |. 85C9 test ecx,ecx
0041EDE1 |. 8945 F4 mov dword ptr ss:[ebp-C],eax
0041EDE4 |. 74 03 je short Thunder.0041EDE9
0041EDE6 |. 8B49 20 mov ecx,dword ptr ds:[ecx+20]
0041EDE9 |> 2B45 EC sub eax,dword ptr ss:[ebp-14]
0041EDEC |. 6A 04 push 4 ; /Flags = SWP_NOZORDER
0041EDEE |. 68 C0000000 push 0C0 ; |Height = C0 (192.)
0041EDF3 |. 50 push eax ; |Width
0041EDF4 |. 68 3F010000 push 13F ; |Y = 13F (319.)
0041EDF9 |. FF75 EC push dword ptr ss:[ebp-14] ; |X
0041EDFC |. 6A 00 push 0 ; |hAfterWnd = HWND_TOP
0041EDFE |. 51 push ecx ; |hWnd
0041EDFF |. FF75 FC push dword ptr ss:[ebp-4] ; |hDefer
0041EE02 |. FF15 4C8F5500 call dword ptr ds:[<&USER32.DeferWindowPos>] ; \DeferWindowPos
0041EE08 |. 8D75 CC lea esi,dword ptr ss:[ebp-34]
0041EE0B |. 8D7D EC lea edi,dword ptr ss:[ebp-14]
0041EE0E |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041EE0F |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041EE10 |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041EE11 |. A5 movs dword ptr es:[edi],dword ptr ds:[esi]
0041EE12 |. 8B45 F4 mov eax,dword ptr ss:[ebp-C]
0041EE15 |. 81C3 A41B0000 add ebx,1BA4
0041EE1B |. 85DB test ebx,ebx
0041EE1D |. 8D48 FF lea ecx,dword ptr ds:[eax-1]
0041EE20 |. 74 03 je short Thunder.0041EE25
0041EE22 |. 8B5B 20 mov ebx,dword ptr ds:[ebx+20]
0041EE25 |> 6A 04 push 4 ; /Flags = SWP_NOZORDER
0041EE27 |. 2BC1 sub eax,ecx ; |
0041EE29 |. 68 C0000000 push 0C0 ; |Height = C0 (192.)
0041EE2E |. 50 push eax ; |Width
0041EE2F |. 68 3F010000 push 13F ; |Y = 13F (319.)
0041EE34 |. 51 push ecx ; |X
0041EE35 |. 6A 00 push 0 ; |hAfterWnd = HWND_TOP
0041EE37 |. 53 push ebx ; |hWnd
0041EE38 |. FF75 FC push dword ptr ss:[ebp-4] ; |hDefer
0041EE3B |. FF15 4C8F5500 call dword ptr ds:[<&USER32.DeferWindowPos>] ; \DeferWindowPos
0041EE41 |. FF75 FC push dword ptr ss:[ebp-4] ; /hDefer
0041EE44 |. FF15 548F5500 call dword ptr ds:[<&USER32.EndDeferWindowPos>] ; \EndDeferWindowPos
0041EE4A |. 5F pop edi
0041EE4B |. 5E pop esi
0041EE4C |. 5B pop ebx
0041EE4D |. C9 leave
0041EE4E \. C3 retn
=============================
=============================
PEdiy
用UltraEdit修改相应代码:
1ED76处3C->00
1EDB5处03->3F
1EDBB处3C->00
=============================
=============================
Greets
感谢PEiD/C32ASM/OllyDbg及其插件的开发、修改者,没有他们的杰出工作也就没有本文。
=============================
=============================
MrBeer[CCG]
19/Jul/2005
=============================
一次初级的PEdiy之旅——迅雷广告条移除[看雪转载]相关推荐
- 迅雷5.0.0.72 广告条移除
声明: 以下破解方法,只供个人学习之用. / 去广告原理: 这里当然是用 middlebeer 的方法 MoveWindow(hwndChild,0,0,0,0,true); 广告条的类名为 TGra ...
- 去除迅雷右侧资源信息栏和迅雷广告,以及迅雷的速度限制修改
去除迅雷右侧资源信息栏和迅雷广告,以及迅雷的速度限制修改 1.找到迅雷安装文件夹(Thunder Network)---Thunder---profile---userconfig然后用记事本打开 2 ...
- [转贴]去除迅雷广告和弹出广告窗口
清除默认配置状态弹出的广告: 1.在主界面点击"工具"-"配置",在"配置"窗口左边选择"高级"选项卡,把右边" ...
- 去掉迅雷广告_thunder5广告不见了~
http://www.jifforever.cn/it/post/thunder5_ad.html 看一下就知道 广告一扫光,迅雷更清爽 迅雷虽然好用,但它每次运行时都会自动加载一些小广告和弹出窗口, ...
- 不是VIP用户也不怕 不需任何补丁屏蔽迅雷广告!
今天这个技巧,仅供大家技术交流啦,不做VIP,也不打任何补丁,咱们自己动手去掉迅雷的广告(主面板广告和新建下载窗体的广告),当然,首先前提,你起码注册了普通的迅雷账号,能够登陆才行. 具体操作步骤: ...
- 提高你的迅雷速度,绝对值得一看
QUOTE: 很多朋友都喜欢看电影,玩游戏.有个好的下载工具是必要的..迅雷 ,网快,bT,影音传送带 相信大家大多都使用,这四种.而相信大多数人都会使用迅雷,那是因为迅雷的速度比其它软件快的最主 ...
- 迅雷下载器-FDM,看2019新年大电影
前言 这两天特意整理了一下2019新年的好电影,苦于没机会去影院看啊.只好另想奇招了,都知道版权是个问题,但有时候好不容易找到了资源却无法下载,很是苦恼.但是"亮确实有一计",找尽 ...
- 初级会计机考模拟系统计算机怎么用,新手必看:2018年初级会计机考系统操作指南图文详解...
2018年初级会计职称考试时间为5月12日-20日,鉴于会计从业考试取消,大量零基础考生首次参加考试,网校特地为大家整理了机考系统操作指南,希望可以帮助广大考生提前熟悉无纸化考试界面哦. 注:以下内容 ...
- 手动去迅雷广告,加速迅雷启动方法
经测试适用于Thunder5.8.3.541 1.打开迅雷安装目录X:/Program Files/Thunder Network/Thunder 2:进入"Program"子目录 ...
最新文章
- MySQL 超时解决方案mysql报错处理: could not be resolved: getnameinfo() returned error (code: -3)...
- ArcGIS中标注之一上下标、分数等特殊形式标注(转)
- PHP: to use scptask, you need to install the SSH extension.
- spark保存到mysql_Spark写入数据到MySQL
- 云联惠身份认证得多久_【转发扩散】你完成认证了吗?老来网APP也可以刷脸认证哦!...
- 后台数据到mysql怎样保持实时更新_MySQL是如何保证数据的完整性
- SpringBooot-基础1-构建项目
- 【Git/Github学习笔记】Git常用命令(代码拉取)
- 数组操作 from《FORTRAN95 程序设计》
- Unity VR太空射击游戏教程
- Unity提取模型动画
- 如何在 JavaScript 中使用SpreadJS导入和导出 Excel 文件
- 个人陈述怎么写计算机专业自招,高三自主招生个人陈述范文(最新)
- Jupyter notebook 报错 500 : Internal Server Error的解决方法
- 常用汉字的UNICODE和对应的繁体字
- 莫兰指数stata命令_【第六期】Regional Study 群日报
- STM32之bxCAN
- 一文入门USB设备的驱动编写方法
- windows7计算机配置要求,教你win7配置最低要求是什么
- 学习札记————问题札记