=============================
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之旅——迅雷广告条移除[看雪转载]相关推荐

  1. 迅雷5.0.0.72 广告条移除

    声明: 以下破解方法,只供个人学习之用. / 去广告原理: 这里当然是用 middlebeer 的方法 MoveWindow(hwndChild,0,0,0,0,true); 广告条的类名为 TGra ...

  2. 去除迅雷右侧资源信息栏和迅雷广告,以及迅雷的速度限制修改

    去除迅雷右侧资源信息栏和迅雷广告,以及迅雷的速度限制修改 1.找到迅雷安装文件夹(Thunder Network)---Thunder---profile---userconfig然后用记事本打开 2 ...

  3. [转贴]去除迅雷广告和弹出广告窗口

    清除默认配置状态弹出的广告: 1.在主界面点击"工具"-"配置",在"配置"窗口左边选择"高级"选项卡,把右边" ...

  4. 去掉迅雷广告_thunder5广告不见了~

    http://www.jifforever.cn/it/post/thunder5_ad.html 看一下就知道 广告一扫光,迅雷更清爽 迅雷虽然好用,但它每次运行时都会自动加载一些小广告和弹出窗口, ...

  5. 不是VIP用户也不怕 不需任何补丁屏蔽迅雷广告!

    今天这个技巧,仅供大家技术交流啦,不做VIP,也不打任何补丁,咱们自己动手去掉迅雷的广告(主面板广告和新建下载窗体的广告),当然,首先前提,你起码注册了普通的迅雷账号,能够登陆才行. 具体操作步骤: ...

  6. 提高你的迅雷速度,绝对值得一看

    QUOTE: 很多朋友都喜欢看电影,玩游戏.有个好的下载工具是必要的..迅雷 ,网快,bT,影音传送带   相信大家大多都使用,这四种.而相信大多数人都会使用迅雷,那是因为迅雷的速度比其它软件快的最主 ...

  7. 迅雷下载器-FDM,看2019新年大电影

    前言 这两天特意整理了一下2019新年的好电影,苦于没机会去影院看啊.只好另想奇招了,都知道版权是个问题,但有时候好不容易找到了资源却无法下载,很是苦恼.但是"亮确实有一计",找尽 ...

  8. 初级会计机考模拟系统计算机怎么用,新手必看:2018年初级会计机考系统操作指南图文详解...

    2018年初级会计职称考试时间为5月12日-20日,鉴于会计从业考试取消,大量零基础考生首次参加考试,网校特地为大家整理了机考系统操作指南,希望可以帮助广大考生提前熟悉无纸化考试界面哦. 注:以下内容 ...

  9. 手动去迅雷广告,加速迅雷启动方法

    经测试适用于Thunder5.8.3.541 1.打开迅雷安装目录X:/Program Files/Thunder Network/Thunder 2:进入"Program"子目录 ...

最新文章

  1. MySQL 超时解决方案mysql报错处理: could not be resolved: getnameinfo() returned error (code: -3)...
  2. ArcGIS中标注之一上下标、分数等特殊形式标注(转)
  3. PHP: to use scptask, you need to install the SSH extension.
  4. spark保存到mysql_Spark写入数据到MySQL
  5. 云联惠身份认证得多久_【转发扩散】你完成认证了吗?老来网APP也可以刷脸认证哦!...
  6. 后台数据到mysql怎样保持实时更新_MySQL是如何保证数据的完整性
  7. SpringBooot-基础1-构建项目
  8. 【Git/Github学习笔记】Git常用命令(代码拉取)
  9. 数组操作 from《FORTRAN95 程序设计》
  10. Unity VR太空射击游戏教程
  11. Unity提取模型动画
  12. 如何在 JavaScript 中使用SpreadJS导入和导出 Excel 文件
  13. 个人陈述怎么写计算机专业自招,高三自主招生个人陈述范文(最新)
  14. Jupyter notebook 报错 500 : Internal Server Error的解决方法
  15. 常用汉字的UNICODE和对应的繁体字
  16. 莫兰指数stata命令_【第六期】Regional Study 群日报
  17. STM32之bxCAN
  18. 一文入门USB设备的驱动编写方法
  19. windows7计算机配置要求,教你win7配置最低要求是什么
  20. 学习札记————问题札记

热门文章

  1. 掌握Linux常用命令,扫平面试需求障碍
  2. java vr 开发_VR:虚拟与现实
  3. python 少儿趣味编程下载_零基础学Python编程(少儿趣味版)
  4. 【JAVA预备】课程目录
  5. CURL下载文件简易进度条
  6. java中有哪些访问修饰符_java中四种访问修饰符
  7. CISP——身份鉴别
  8. 将caj文件整篇转换成Word的教程
  9. PHP输出菱形(一)
  10. php字符串用什么括起来,PHP的字符串型数据,可以用以下哪些符号括起来()。