Skip to content
chengr28 edited this page Feb 18, 2014 · 5 revisions
  1. Summary 本文将介绍编译 libantiLeech 的方法
  2. Labels Phase-Deploy

Table of Contents

内容介绍

DLP 就是 Dynamic Leecher Protection(动态吸血保护)的简称。所谓动态就是可以在运行时升级和改变吸血客户端的特征库,然而在 amule-dlp 的稳定版本中,反吸血功能却是被静态的链接进了可执行文件里,因此“动态”是不可能实现的了。 目前,amule-dlp 有一个开发分支在进行真正可以动态加载的 antiLeech 的开发。欲知详情,请移步 https://github.com/persmule/amule-dlp

  • 目前 libantiLeech 只在 GNU/Linux 下测试,但在 Mac OS X 下经过适当修改也可用
    (我在一年前成功实现过一次,但忘了方法 :-p)
  • libantiLeech is only tested under GNU/Linux at present,but can also be used under Mac OS X with proper modification
    (I have done it successfully one year ago, but I forget how :-p).

获得源代码

  • 动态加载的 amule-dlp 被分为两个部分:一为 amule-dlp 包括了 aMule 代码和用于加载 libantiLeech 的代码;另一部分为 libantiLeech 包括绝大多数用于检测吸血骡的代码,所以我们需要分别取出这两个部分的代码。
  • Dynamic amule-dlp have 2 parts: amule-dlp including loading code of libantiLeech and libantiLeech library which have leecher database.

取出 amule-dlp 代码

目前版本库的 master 分支正是这个支持动态加载的最新版本,因此使用不加额外参数的

 $ git clone

复制出的本地版本库即可。

取出 libantiLeech 代码

编译 amule-dlp

编译 libantiLeech

参见 https://github.com/persmule/amule-dlp.antiLeech/wiki/Building

使用 amule-dlp

  • 运行 aMule 如果在主日志中会出现 "Succeed loading antiLeech",则说明动态加载的 amule-dlp 已经正常工作了。
  • 在 aMule 的运行中,您可以按以下步骤动态地更换 libantiLeech.

动态替换 libantiLeech

  • 把原来的 libantiLeech.so 从安装位置删除或移除。然后把新的 libantiLeech.so 复制到指定位置。
    警告:不要直接用新的 libantiLeech.so 覆盖旧的版本,这样将会造成 amule-dlp 崩溃!
    Warning: NEVER overwrite libantiLeech.so with a newer version. It will cause amule-dlp to crash!
  • 将要让 amule-dlp 重新加载 libantiLeech. 您可以通过 amule 的 DLP 设置对话框重新加载 libantiLeech ,亦可使用 amulecmd 通过远程控制加载 libantiLeech
下面将详细介绍两种方法:
  • 在 aMule 中
    点击“设置”,进入 "DLP" 选项卡,点击“重新加载 antiLeech ”按钮,amule-dlp 会弹出一个对话框来说明 libantiLeech 是否成功加载。
  • 通过 amulecmd 远程控制
    首先确保您可以使用 amulecmd 连接上 amule 或 amuled. 在 amulecmd$ 提示符下执行以下命令:
 $ reload antileech

如果成功加载了 libantiLeech ,amulecmd 会提示操作成功,否则 amulecmd 提示出现未知错误。要在出错时确定出错原因,请在 amulecmd$ 提示符使用以下命令查看 amule-dlp 的日志:

 $ show log