找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 554|回复: 1

[【原创】] 迅雷5.0.0.72 广告条移除教程

[复制链接]
发表于 2006-1-13 12:53:52 | 显示全部楼层 |阅读模式
去广告原理:

这里当然是用 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 <jmp.&user32.ShowWindow> ; \\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 <jmp.&kernel32.LoadLibraryA>
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 E该网址由于广告太多.已被本站屏蔽.请下次不要发此类型的网站.EDFF    call <jmp.&kernel32.GetProcAddress>
0052F44A             3E:FF3424    push dword ptr ds:[esp]
0052F44E             FFD0      call eax
0052F450             E8 8F83EDFF    call <jmp.&user32.ShowWindow>
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 <windows.h>
#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放在迅雷的安装目录下面就可以了

==============================
回复

使用道具 举报

发表于 2006-1-13 14:54:22 | 显示全部楼层
现在版本已经更新了,另这个在霏凡论坛看到过,是转的,原作者是你的话请给个证明。如果冒充原创是要扣威望的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-5-23 15:07 , Processed in 0.348393 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表