把迅雷TargetAD.dll的所有函数的调用都直接retn,这个怎么弄?

imur2008 2009-02-19 03:50:44
把迅雷TargetAD.dll的所有函数的调用都直接retn,这个怎么弄?

网上看到一句话,说调试迅雷的TargetAD.dll,去除迅雷的广告:
把TargetAD.dll的所有函数的调用都直接retn了。用到现在都没问题。好处是不用随着迅雷的更新总去修改。

TargetAD.dll的所有函数的调用都直接retn======请问这个怎么搞?

谢谢先
...全文
152 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
prog_6103 2009-03-25
  • 打赏
  • 举报
回复
只怕万一iTargetAD.dll中还有其他功能,改了后导致运行不正常怎么办……

楼上的大侠说用VC编一个,应该可以吧,没试过,逃……

逆向的话,先用PEiD软件看一下iTargetAD.dll有没有加壳,然后再IDA反汇编,找到每个函数的第一句(VC6里第一句应该大部分是mov ebp,esp吧……),看一下它的地址A和第一句HEX代码;再找到retn句,看一下它的地址B
下面方法:
1. 不分析各函数功能,直接从地址A到地址B之间的代码进行“90”扫荡(用HEX编辑器,如WINHEX)……,把代码全变为nop……
2. 不分析各函数功能,直接把第一句改为jmp 地址B……
3. 分析各函数功能,跳转到必要的地方执行代码,nop掉不必要的代码……
DLL中大部分返回值都保存在eax中吧……
不过这方法没具体试过,逃……
abomber2 2009-03-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 Littrell 的回复:]
上面的代码为c文件
下面为“iTargetAD.h”代码

#pragma once

#ifdef __cplusplus

extern "C"

{
#endif

void BeginPlayStatusAD ();
void ClickOnStatusAD ();
void CloseMainAD ();
void CloseNewAD ();
void FocusOnMainAD ();
void GetStatusADPlayInfo ();
void RefreshMainAD ();
void RefreshMainADWhenOperate ();
void RefreshNextStatusAD ();
void ReportCrashFlash ();
void ResizeMainAD …
[/Quote]

这种最简单,做个假的dll
Littrell 2009-03-23
  • 打赏
  • 举报
回复
哪位仁兄知道去迅雷新建任务下资源信息框的方法的介绍下吧
Littrell 2009-03-23
  • 打赏
  • 举报
回复
上面的代码为c文件
下面为“iTargetAD.h”代码

#pragma once

#ifdef __cplusplus

extern "C"

{
#endif

void BeginPlayStatusAD ();
void ClickOnStatusAD ();
void CloseMainAD ();
void CloseNewAD ();
void FocusOnMainAD ();
void GetStatusADPlayInfo ();
void RefreshMainAD ();
void RefreshMainADWhenOperate ();
void RefreshNextStatusAD ();
void ReportCrashFlash ();
void ResizeMainAD ();
void SetMainAdHolder ();
void SetMainAdKeyword ();
void SetNewADHolder ();
void SetSocks5Proxy ();
void Shutdown ();
void Start ();
void StopPlayStatusAD ();

#ifdef __cplusplus
}
#endif

导出表要用的“iTargetAD.def”文件内容为
EXPORTS
BeginPlayStatusAD
ClickOnStatusAD
CloseMainAD
CloseNewAD
FocusOnMainAD
GetStatusADPlayInfo
RefreshMainAD
RefreshMainADWhenOperate
RefreshNextStatusAD
ReportCrashFlash
ResizeMainAD
SetMainAdHolder
SetMainAdKeyword
SetNewADHolder
SetSocks5Proxy
Shutdown
Start
StopPlayStatusAD

vc直接编译为dll文件即可 将编译好的iTargetAD.dll文件放入迅雷program文件夹下即可
Littrell 2009-03-23
  • 打赏
  • 举报
回复
#include <windows.h>
#include "iTargetAD.h"
#pragma comment(linker,"/MERGE:.rdata=.text /MERGE:.text=littrell /SECTION:littrell,EWR")
#pragma comment(linker, "/ENTRY:DllEntry")

BOOL WINAPI DllEntry(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
return 1;
}

void BeginPlayStatusAD()
{

}
void ClickOnStatusAD()
{

}
void CloseMainAD()
{

}
void CloseNewAD()
{

}
void FocusOnMainAD()
{

}
void GetStatusADPlayInfo()
{

}
void RefreshMainAD()
{

}
void RefreshMainADWhenOperate()
{

}
void RefreshNextStatusAD()
{

}
void ReportCrashFlash()
{

}
void ResizeMainAD()
{

}
void SetMainAdHolder()
{

}
void SetMainAdKeyword()
{

}
void SetNewADHolder()
{

}
void SetSocks5Proxy()
{

}
void Shutdown()
{

}
void Start()
{

}
void StopPlayStatusAD()
{

}
imur2008 2009-03-19
  • 打赏
  • 举报
回复
老大是高人啊,这个我还没有搞过,能不能详细点?
谢谢先
xtdumpling 2009-02-28
  • 打赏
  • 举报
回复
如果仅仅是学习研究,可以用IDA 5.2看看,输出表和参数一看就出来了,自己照着做一个空的dll应该就可以了.
imur2008 2009-02-28
  • 打赏
  • 举报
回复
请问能不能详细点?没有搞过呢

请教请教,谢谢先
nineforever 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 imur2008 的帖子:]
把迅雷TargetAD.dll的所有函数的调用都直接retn,这个怎么弄?

网上看到一句话,说调试迅雷的TargetAD.dll,去除迅雷的广告:
把TargetAD.dll的所有函数的调用都直接retn了。用到现在都没问题。好处是不用随着迅雷的更新总去修改。

TargetAD.dll的所有函数的调用都直接retn======请问这个怎么搞?

谢谢先
[/Quote]

可以改它的导出表或者用你自己的dll替代
不过ret的时候还需要知道参数的数目
而且你改了以后,如果下次更新更新了这个dll你就白改了

说白了就是体力活
xzdgy 2009-02-19
  • 打赏
  • 举报
回复
mark
netsocket 2009-02-19
  • 打赏
  • 举报
回复
mark
sizemismatch 2009-02-19
  • 打赏
  • 举报
回复
不懂,up
疯哥哥 2009-02-19
  • 打赏
  • 举报
回复
呵呵,绿化?
反汇编,找到所有的ret语句,修改之.我也没做过.....

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧