首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
 Dreamweaver | Flash
 Fireworks  | Frontpage
 HTML/CSS  | Javascript
 Photoshop  | CorelDraw
 AuotoCAD   | Illustrator
 Freehand
 3DMax    | Authorware
 Director   | Maya
 PP点点通 | 迅雷 | BT
 eMule | FlashGet | Nero
 Ghost | Outlook | IE
 Maxthon | Office
 QQ | MSN | 网易泡泡
 Skype | 雅虎通 | 新浪UC

最新文章

您现在的位置: 中国IT实验室 >> 工具软件 >> 迅雷 >> 正文

迅雷5.0.0.72 广告条移除教程


ChinaItLab  2006-5-10  佚名  保存本文  推荐给好友  收藏本站


◆ 网页平面多媒体培训、认证考试免费咨询热线:400-700-5807   进入网络咨询平台

去广告原理:

这里当然是用 middlebeer 的方法 MoveWindow(hwndChild,0,0,0,0,true);
广告条的类名为 TGradualPanel

去广告分析
1. PEiD检测主程序Thunder.exe,无壳,Borland Delphi 6.0 - 7.0 编译。

2. 用ollydbg载入 Thunder.exe 然后下断点bpx ShowWindow

00495474                     .  50               push eax
00495475                     .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
00495478                     .  E8 F38DFEFF      call Thunder1.0047E270
0049547D                     .  50               push eax          ; |hWnd   在这下面断下
0049547E                     .  E8 6123F7FF      call   ; \ShowWindow
00495483                     .  E9 05010000      jmp Thunder1.0049558D
00495488                     >  33C0             xor eax,eax

将上面代码改为
00495478                     .  E8 F38DFEFF      call Thunder.0047E270
0049547D                     .  50               push eax      
0049547E                        E9 AD9F0900      jmp Thunder.0052F430--->这里面没有代码
00495483                     .  E9 05010000      jmp Thunder.0049558D


在52f430 加入我们的代码
---------------
这里要注意了,在调用函数时,不能在ollydbg 里面直接汇编,这样的话在不同的操作系统里面就会出问题了
这里我们按Ctrl+N 在打开的窗体里面找到我们要调用的函数,(如果没有找到那么我们就要用lordpe在原程序
添加要调用的函数的输入表),找到之后我们再选择它之后再回车,找到如下面

地址       反汇编                                    注释
00406ED4   jmp dword ptr ds:[<&kernel32.LoadLibrary  kernel32.LoadLibraryA-->在这里按回车就到了下面


00406ED4   $- FF25 68535300    jmp dword ptr ds:[<&kernel32.LoadL>;  kernel32.LoadLibraryA
如果我们要调用LoadLibraryA 就call 00406ED4  吧!

----------------------------->
0052F430                            68 68F45200      push Thunder.0052F468              ;  ASCII "w.dll"
0052F435                            E8 9A7AEDFF      call
0052F43A                            83F8 00          cmp eax,0
0052F43D                            74 11            je short Thunder.0052F450
0052F43F                            68 60F45200      push Thunder.0052F460              ;  ASCII "move"
0052F444                            50               push eax
0052F445                            E8 E21EEDFF      call
0052F44A                            3E:FF3424        push dword ptr ds:[esp]
0052F44E                            FFD0             call eax
0052F450                            E8 8F83EDFF      call
0052F455                          ^ E9 2960F6FF      jmp Thunder.00495483
0052F45A                            90               nop

下面为上面代码的二进制

68 68 F4 52 00 E8 9A 7A ED FF 83 F8 00 74 11 68 60 F4 52 00 50 E8 E2 1E ED FF 3E FF 34 24 FF D0
E8 8F 83 ED FF E9 29 60 F6 FF 90 6C 00 00 00 00 6D 6F 76 65 00 00 00 00 77 2E 64 6C 6C 00 00 00

下面 w.dll 的原代码w.cpp:
----------------------------------------------------------
#include
#pragma comment(linker, "/ENTRY:EntryPoint")
//#pragma comment(linker,"/ALIGN:0x400")
int a=0;
INT APIENTRY move(HWND);
BOOL CALLBACK EnumChildProc(HWND,LPARAM);
BOOL EntryPoint()
{
  return 1;
}
INT APIENTRY move(HWND handle)
{
  char c[100];
  GetClassName(handle,c,100);
  if(strcmp(c,"TfrmMain")==0) //如果传入的句柄为主窗的就列举子窗体
  {
    EnumChildWindows(handle,EnumChildProc,NULL);
  }
  return 0;
}
BOOL CALLBACK EnumChildProc(HWND hwndChild,LPARAM lParam)
{
  static int a=0;
  char cl[100];
  GetClassName(hwndChild,cl,100);
  if(strcmp(cl,"TGradualPanel")==0)//如果子窗体的类名为 TGradualPanel 则
  {
    if(a==0 ||a==11)//子窗体的序列
    MoveWindow(hwndChild,0,0,0,0,true);
    a++;
    if(a==12)
    {
    return 0;//这里是停止列举子窗体
    }
  }
  return 1;
}
-------------------------------

下面为build.bat


cl w.cpp w.def /link /subsystem:windows /dll /out:w.dll /base:0x1C000000 /NOLOGO /machine:X86 /release user32.lib
del w.obj
del w.exp
pause
------------------------
下面为w.def
-------------------
LIBRARY  w

EXPORTS
  move   @1
--------------------------
用法:按上面方法改好
然后将w.dll放在迅雷的安装目录下面就可以了

【责编:Peng】


 相关文章  推荐文章
不要高温要高速  迅雷盛夏加速完全攻略
针对微软作相应调整  迅雷解决新半开连接数
快乐自己作主 欣赏迅雷看看不拘一格
迅雷软件助手1.0发布--支持软件备份升级
拒绝缓冲 妙招实现迅雷看看高速播放
宁缺勿滥  在迅雷看看中享受高质影视
随心所欲  学会实用迅雷看看控制技巧
品质保证  迅雷给用户安全正版体验
新增雷友聊天功能:迅雷5.7.11.486发布
很快很节能 WEB迅雷导入和定时下载
 文章评论
  精彩友情推荐
 Asp源码 PHP源码  IDC资讯大全
 CGI源码 JSP源码  机房品质万里行
 建站书籍教程  IDC托管必备知识
 服务器软件 .net源码  全国IDC报价
 建站工具软件  网站推广优化