Anti-leecher set based on the Xtreme mod (DLP) and the strict Chinese set (SDC). Modified for Qt to run on all platforms.
- Feature table for SDC variants
- Download a single SDC variant
- Releases page: Download all SDC variants in a signle package
- FAQs and other tips
- Changelog
- Checksum
This fork (ModderMule/specialdlp) builds the same SDC rules as a
cross-platform shared library (Windows, macOS, Linux; x64 and arm64) for eMuleQt.
The rule code in specialdlp/specialdlp/antiLeech.cpp stays as close to upstream as possible so upstream
updates merge cleanly. ATL/shlwapi are replaced by sdlp_compat.h.
- C ABI: see
include/specialdlp.h.- UTF-16 strings and
extern "C"functions with ansdlp_prefix. - The ABI version is checked at load.
- Each check returns NULL for a clean client, or a reason string in static storage.
- UTF-16 strings and
- Variants: one binary for all of them. Select one at runtime with
sdlp_set_variant()(lite, all-verycd, easymule, verycd-nickname or verycd-tag), instead of shipping one DLL per variant. - Not compatible with the Xtreme
antiLeech.dllexports:DLPCheckNameAndHashAndModtook MFCCString, which cannot cross a portable ABI. - Unbuilt leftovers:
specialdlpTester(Windows/MFC) stays in the tree as a reference, but is no longer built.
Build and test:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failureTest coverage:
tests/vectors.tsvholds positive and negative cases for every rule.- On Windows, CI also builds the original upstream DLLs and checks that the port returns the same result for every vector, for each variant.
- Tagged builds (
v*) publish per-platform archives plusSHA256SUMS.txt.