You are on page 1of 20

Introduction:

------------Hadu is a CardSharing Client plugin for DVB softwares on PC computers using DVB
TV-Cards (Windows).
It works as a MD plugin, a DVBCore plugin or as a DVBViewer plugin.
Currently, it only supports the CCCam protocol.
*********************************************************************
*
DISCLAIMER:
*
* It is illegal to view pay-TV channels without a valid subscription.
*
*********************************************************************
(Documentation for Hadu can be found after the "Changelog" and "Releases" parts
of this file)
Changelog:
---------0.1.2.7:
-(partial) support for DreCrypt EMMs,
-EMM PIDs associated to ECM PIDs (based upon the CAID and provider criteria) are
now all displayed into the concerned column ("Monitor" window),
-an option has been added to display all the other EMM PIDs (i.e. EMM PIDS not a
ssociated to ECM PIDs; see "DispAllEMMs" option);
-"EMMCAID" option has been extended, in order to include an optional EMM PID (se
e "EMMCAID" option),
-bug fix for the non correct display of indexed nodes (when the list of the node
s is sorted by user),
-Hadu is considered back as a 2.1.4 version client by default. You can of course
still modify the client version sent to the server (see "Version" option),
-minor modification into the possible levels of informations to log (see "LogMes
sLevel" option),
-display of the "Server Infos" window has been optimized (it's now a bit more re
active, while using less CPU resources),
-an option has been added when Hadu is used within the DVBViewer recording sessi
on. It's now possible to start the connection with the server(s) only if the cha
nnel is encrypted (see "DVBViewerEncrServ" option),
-support for the new CCCam commands introduced in CCCam version 2.2.0 or above (
i.e. commands 0F for the node data, and commands 0C, 0D for the new CCCam "check
s"). An option has been added to authorize or not the Node SID assignment/reject
ion feature present in commands 0F (see "UseNodeSID" option). The Node SID assig
nment/rejection feature will be activated by the server, only if Hadu is also de
clared as a CCCam client version 2.2.0 or above (see "Version" option). But, as
there is a bug concerning the new CCCam "checks", declaring Hadu as CCCam client
version 2.2.0 may conduct to an improper channel decoding (see the new workarou
nd menu "Switch DCW Last Byte"),
-support for the OSCAM Partner handle, and its Node SID assignment/rejection fea
ture (the Extended ECM Mode is also checked but currently not used). Several opt
ions have been added to authorize them or not (see "OSCAMPartner", "OSCAMExt" an
d "OSCAMSID" options). Furthermore, when activated these features are displayed
at the bottom of the "Server Infos" window, as for the build of the OSCAM server
,
-2 new features have been added: a list of ECM PIDs used (i.e. ECM PIDs cache; s
ee "Hadu-Cache.txt" file), and a list of manual ECM PIDs (see "Hadu-Manual.txt"
file). These features may be activated/deactivated directly from the main menu o

f Hadu (see "Cache" sub-menu, and "CacheUse", "CacheUpdate", "ManualUse" options


),
-an new column (title "Opt") has been added in the list of the nodes into the "S
erver Infos" window (to display eventual additional infos concerning the nodes),
-all the log files (i.e. 'Hadu-Mes.log', 'Hadu-EMM.log', 'Hadu-PIDxxxx.log' and
'Hadu-Dump.txt') are now always put in the same directory as the plugin itself (
no more in path indicated by "Keypath2", if this option is used). "Keypath2" is
reserved for files possibly shared within several occurs of Hadu (like the files
for the ECM PIDs used and the manual ECM PIDs),
-support for Nagra Tiger EMMs,
-TID and SID for the current channel are displayed into the "Monitor" window,
-an option has been added when providers/ChIDs used within CCCam messages are re
jected by the server (see "DontUseProvFor" option),
-usual minor bug fixes and enhancements.
0.1.2.6:
-temporary workaround for OSCAM servers (see "OSCAMWa" option, and all the comme
nts for it) added as a possible option,
-possibility to have only EMM active added (see "EMMAlone" option),
-the maximum number of providers per nodes has been increased to 40,
-possibility to update more than one card (i.e. node) of the same CAID for EMM p
urposes added,
-bug fix for nodes with too many providers,
-transparency for "Monitor" and "Server Infos" windows added (see "UseTransparen
cy" option for more details),
-"IgnoreProvFor" option now also used for EMMs,
-providers are no more checked for Betacrypt CAIDs (ECMs and EMMs). So, you can
remove your "IgnoreProvFor=1702" or "IgnoreProvFor=1722" option lines if you wis
h,
-bug fix for BetaCrypt EMMs process,
-bug fix concerning the DCWsOneServ option,
-bug fix for the emulator nodes recognizing,
-modification for the non standard CCCam servers and the corresponding "NonStd"
option: it's now supposed to work automatically (see "NonStd" option for more de
tails),
-bug fixes concerning different particular cases when several servers are in use
,
-bug fix for incorrect behavior of server connections when the plugin is deactiv
ated,
-bug fix because current ECMs were not sent immediately when a new server is act
ivated (if several servers are active and at least one is OK),
-by default value has been changed for the MaxConnections and MaxECMPIDs options
. You'll have to manually modify your current Hadu.ini file, if you plan to use
these new by default values,
-number of active CCCam servers at the same time no more limited to 6 (but still
limited to a maximum of 64 CCCam servers, active or not active). Set the new by
default values for the MaxConnections and MaxECMPIDs options, if several server
s are in use,
-bug fixes for a possible improper re-connection when the disconnection has been
provoked externally (network and/or distant server),
-bug fix for Viaccess "long" ECMs (for TNTSat mainly),
-size for "Monitor" and "Server Infos" windows now also saved into Hadu.ini (if
changed by the user) when pushbutton "OK" is pressed. Furthermore, the size of t
he columns for the different lists of these windows is now also saved,
-it's now possible to sort the list of the nodes into the "Server Infos" window
for some columns,
-reject of null DCWs (processed as 'No decoding'),
-some other bug fixes and minor enhancements.
0.1.2.5:

-several major bug fixes, mainly if 2 or more servers are used (but not only),
-correct support of the server rejection for the user connection. Possible error
messages returned by the server are now displayed at the bottom of the "Server
Infos" window,
-"IgnoreProvFor" option added, to ignore the provider checks for one or several
CAIDs. It may be needed for instance, if the CAID tunneling feature (Betacrypt<-->Nagra3) is no more working properly in your case (set "IgnoreProvFor=1702" fo
r the concerned server).
0.1.2.4:
-server build display added ("Server Infos" window),
-DCWsOneServ general option added (though it's not recommended to change it),
-several bug fixes concerning the connection step. The timeout value for connect
ions is now 3 times the timeout value for ECM receptions,
-changes within the internal events process (clean up and bug fixes),
-NonStd server option added, relative to some CCCam server emulation (i.e. serve
rs with a non standard CCCam server behavior, probably due to a modified softwar
e or an emulation). A warning is eventually displayed about possible such kind o
f servers in the "Server Infos" window,
-size for "Monitor" and "Server Infos" windows saved into Hadu.ini (if changed b
y the user),
-internal option NoDelay set back to a safer value by default (due to too many c
rashes or hangs with several DVB applications). You can now remove the "Nodelay=
0" configuration line within your Hadu.ini file, if you've set it before,
-reinforcement of the received CCCam data controls,
-modification for the status of the CCCam servers when started ("Monitor" window
),
-simplification concerning the ECM PID selection. If an ECM PID is now forced (u
sing the ECM list into the "Monitor" window) and if the result is unsuccessful,
a full standard retry then occur (i.e. using all the possible nodes and CAIDs, a
nd respecting the priority rules defined). The "Cancel manual ECM PID selection"
menu has been removed (no more used),
-support of the main CCCam "checks": commands 05, 0B, ... The former workaround
for command 05 checks has been removed. The main check currently occurs after mo
re than 2 hours (i.e. long session),
-a few modifications or adds concerning the informations logged,
-for users using also HaduSer, please upgrade to HaduSer version 1.0.0.2 (or els
e exchanges with this new version of Hadu are no more possible).
0.1.2.3:
-EMM support (still experimental),
-possibility to indicate a static Node ID added,
-ECM process largely modified. If this new version doesn't work properly for you
, get back to your former version,
-controls concerning the ECM provider completed,
-default value for the "WantEmus" option is now set to [0=No],
-memory occupation for each server lowered,
-several other bug fixes and minor enhancements.
0.1.2.2:
-Workaround for CCCam servers version 2.1.3. Hadu is now considered back as a 2.
0.11 version client by default. Furthermore, it's possible to modify the client
version sent to the server (see "Version" option).
0.1.2.1:
-bug fix for some incorrect connections in some cases.
0.1.2.0:
-bug fix for the "DVBViewerRecServ" option when set to 2 (always active),
-bug fix for incomplete server disconnections (if provoked by the server).

0.1.1.9:
-minor modifications concerning the windows resizing,
-it's now possible to load up to 64 CCCam servers within Hadu. But it's still li
mited to 6 active CCCam servers at the same time; you can choose which 6 active
CCCam servers within -up to- the 64 possible ones,
-the maximum number of hops per node is now restricted to 8 (which is probably s
till too much from a reasonable point of view),
-an external -limited- tool called HaduSer has been created in order to get a fe
w infos from Hadu and to send it a few commands, for Windows Vista/Seven and the
DVBViewer recording service (and the DVBLink TVSource service). See "DVBViewerR
ecServ" option within the [Specific] section of Hadu.ini, and refer to the readm
e.txt file coming with HaduSer for more infos,
-several bug fixes concerning the Irdeto CAID and the way Hadu selects the corre
ct ChId for a channel,
-minor bug fix within the statistic computes for a node,
-a few modifications into the ECM process and selection,
-the way Hadu starts/stops CCCam servers within the DVBViewer recording service
has been modified. By default, session(s) with the concerned server(s) is/are no
w only active when the recording is running: see "DVBViewerIdleServ" option with
in the [Specific] section of Hadu.ini. But you can still return to the former wa
y (i.e. session with the server always active) by setting this option to 2,
-workaround for non null messages 05 (Server ask) in case of CCCam server versio
n 2.1.2. Hadu will now stop and re-start the server session, after a few ECM ans
wers when having received this message.
0.1.1.8:
-left double-click on icon in Systray displays the "Monitor" window,
-workaround for Trumanshare "wrapper" application, which sends TS data with an i
ncorrect length,
-maximum value for ECMTimeOut option has been increased to 120 seconds,
-PMT PID is displayed within the "Monitor" window (just before the status of the
PMT),
-decrypt cyphered subtitles when used as a DVBViewer plugin (DVBViewerAllAudio=1
is required),
-bug fix concerning Irdeto ECMs with a lots of ChIDs,
-TimeRecon option added, for re-connections. It is recommended not to modify the
default value for this option.
0.1.1.7:
-bug fix concerning the trouble for the first of the DCW in case of DVBViewer an
d NDS/Videoguard encrypted channels (first decoding for the channel too long in
this case).
0.1.1.6:
-added the possibility to modify the maximum number of CAID/node loops (see "Max
CAIDLoops" option),
-bug fix concerning the closing and re-opening of the same ECM PID in some cases
,
-bug fix for ECM PID closing requests (not correctly processed in some cases),
-number of timeouts for ECM requests added into the list of the nodes,
-minor enhancements into ECM request for the same ECM PID.
0.1.1.5:
-added the possibility to use an icon for Hadu in the Systray (see "Systray" men
u),
-some minor bug fixes,
-automatic detection for Trumanshare "wrapper" application (if it's called Truma
nxxxx.exe). In this case, the command to return DCWs to the application is modif
ied (i.e. $0410 instead of $0700). As for Sssp, it's always possible to change i

t using the "DescrCommand" option into the "[Device]" section of Hadu.ini,


-fix for a nasty bug concerning the node selection (still introduced into versio
n 0.1.1.3). The start to decode a new channel should be now faster, mostly of th
e time (but still not faster than your server(s), of course).
0.1.1.4:
-added the possibility to cancel the temporarily effects of the manual ECM PID s
election within the server menu (i.e. without the necessity to change or re-sele
ct the channel),
-bug fixes inside the node priority process (introduced into version 0.1.1.3).
0.1.1.3:
-minor modification for the connection timeout process,
-priority added: general rules (see "PrioGenRules" option) and CAID/provider for
nodes (see "PrioCAIDProv" option),
-modification to accept connection for CCCam servers v2.1.2.
0.1.1.2:
-bug fix for some CAIDs associated to emulators,
-"NoSID" option added, to ignore one or several SIDs for a server,
-"Enable/Disable (one CAID)" and "Enable/Disable (all CAIDs)" added into the con
textual menu for a node (right-click on the node to get the corresponding menu).
These menu entries correspond to the "NoNodeCAID" option into Hadu.ini; refer t
o this option for more details. Note that "Ignore/Use" menu entry is temporary,
associated to the current session with the server, and specific to one node. Whi
le these two new menu entries are saved (i.e. not temporary), and specific to on
e server (all the CAIDs for a server = all the nodes belonging to this server) o
r to one CAID of the server (which may correspond to one or several nodes for th
e concerned server).
0.1.1.1:
-bug fix for providers associated to emulators.
0.1.1.0:
-several modifications for Irdeto ECMs (once more),
-possibility to 'Log a PID' added (within the main menu),
-bug fix for incorrect statistics in case of Irdeto ECMs,
-"WantEmus" option is now relative to accepting or refusing emulators from serve
r(s): default value is 1=Yes,
-bug fixes for CAID and providers associated to emulators,
-some fixes for improper data send by some "wrapper" applications,
-modification into the ECM timeout process,
-time response from server(s) added (2 new columns into the "Server Infos" windo
w). Both for returned DCWs and for negative answers (i.e. 'No decoding' messages
), there is a first latency for multiple Irdeto ECMs (if several ChIDs are used)
,
-some fixes for nodes display in case of more than one server active.
0.1.0.9:
-automatic detection for sssp "wrapper" application (if it's called Ssspxxxx.exe
). In this case, the command to return DCWs to the application is modified (i.e.
$0410 instead of $0700). However, you can always force it, using the "DescrComm
and" option into the "[Device]" section of Hadu.ini,
-modification to stick as tight as possible to the answer of the server(s) conce
rning the ECM requests. It may have some negative impacts in some rare situation
s. In these later cases, stop and restart the concerned server connection,
-new modification for Irdeto ECMs. Only the first positive ChID (i.e. available
for decoding purposes) is used, after a first test with all of them.
0.1.0.8:

-the way to ignore/use an available node has changed: right-click now on the nod
e to get the corresponding menu (currently limited to this feature only),
-because of the tremendous number or disconnections/re-connections of some nodes
for most of the CCCam servers (especially, but not only, those of version 2.0.1
1), the restart of the CAID selection process is no more always called. Unless n
o nodes have been found to decode the current channel; in this last case, the re
start is still automatic. In some rare cases, you may have to ask manually to re
try all the ECMs,
-Irdeto ECMs are now sent to the CCCam server(s) one at time only (though still
currently a workaround),
-a new modification into the CAID selection process, to increase the stability o
f the decoding process.
0.1.0.7:
-bug fix for a incorrect CAID selection process. It mainly concerns all the Seca
providers (but could also have a negative impact for all the others CAIDs too).
0.1.0.6:
-number of disconnections column added into the list of the nodes,
-"NoNodeCAID" option added, to ignore all the nodes or only one node of a server
,
-CAID tunneling added for Betacrypt<--->Nagra3 CAIDs (see "CAIDTunnel" option).
Do use CSa.dll and FFDeCSA.dll, if you plan to view Premiere HD channels with DV
BViewer.
0.1.0.5:
-bug fix for Cryptoworks "long" ECMs (for Digiturk mainly).
0.1.0.4:
-another modification concerning the "wrapper" applications like SSSP Plug, ...
Remember to set "UsePSITables=0" (or unchecking the corresponding menu entry), a
nd "ECMTimeout=12" (for instance) for these applications.
0.1.0.3:
-DCWs display added into the CAID list. This display corresponds to the last DCW
(s) received; which doesn't mean necessarily the current one(s),
-all the windows of the plugin can now be minimized (and restored). The "Monitor
" and "Server Infos" windows are also now resizeable (only the horizontal sizing
is used; mainly to have a wider area for the lists of data),
-choice to display IP Address or URL in the Server list has been added. The defa
ult option is still to display the IP Address (see "DisplayIPorURL" option),
-the refresh time for the Server Infos has been set to 4 seconds,
-bug fix concerning the node disconnection treatment,
-still another bug fix for incorrect accepting of some certain kind of nodes,
-an ECM timeout option has been added (see "ECMTimOut" option). It's mostly to b
e used with "wrapper" applications like SSSP Plug, Trumanshare, DSR CSStudio ...
As I cannot test these kinds of application, I don't know if this feature is su
fficient to make my plugin compliant with them,
-node ID display added into the list of the nodes (last columns).
0.1.0.2:
-correction concerning the internal CSA support within Hadu (when used a as DVBV
iewer plugin). Don't use it unless absolutely necessary, especially for HD chann
els. Prefer the CSA.dll/FFDeCSA.dll (both of them) instead (see DVBViewer instal
lation section),
-bug fix for incorrect accepting of some certain kind of nodes.
0.1.0.1:
-new modification to process NDS/Videoguard ECM still a bit faster. Be sure to u

se and to configure correctly your DVB software, in order it can deliver one TS
at a time to its plugins (i.e. packet size=184 bytes). And always uncheck the "L
og Messages" menu in case NDS/Videoguard ECMs, if you don't want to get glitches
,
-modification to allow the "special" NDS/Videoguard ECM process, in case of DVBC
ore plugin,
-several fixes concerning the multi-servers feature,
-fixes for incorrect ECM results display and Server Infos display, in different
cases,
-bug fix if no ECM stream present for a valid PID declared into PMT,
-a few minor enhancements: explicit message when the same server ( = same IP add
ress and same port) is already in use, "Server Infos" window no more centered fo
r each subsequent calls, ...
-correction when stopping and restarting a server while being on an encrypted ch
annel,
-start/restart process enhanced. After 3 consecutive negative tries, the restart
process is made: 1 second, then 2 seconds, then 4 seconds, ... then 32 seconds
later; with a maximum of 32 seconds between each restart calls. However, a manua
l start is always processed immediately, regardless of the current delay between
2 restart calls,
-various internal bug fixes and minor modifications,
-complement of informations in some parts of the readme.txt file.
0.1.0.1:
-Initial public release.
Releases:
---------Version 0.1.2.7 : January 19, 2011 Public release.
-Version Beta 0.1.2.6 : September 08, 2010 Beta Test release.
-Version Beta 0.1.2.5 : May 05, 2010 Beta Test release.
-Version Beta 0.1.2.4 : April 26, 2010 Beta Test release.
-Version Beta 0.1.2.3 : March 19, 2010 Beta Test release.
-Version Beta 0.1.2.2 : November 24, 2009 Beta Test release.
-Version Beta 0.1.2.1 : November 06, 2009 Beta Test release.
-Version Beta 0.1.2.0 : October 30, 2009 Beta Test release.
-Version Beta 0.1.1.9 : October 25, 2009 Beta Test release.
-Version Beta 0.1.1.8 : September 09, 2009 Beta Test release.
-Version Beta 0.1.1.7 : September 02, 2009 Beta Test release.
-Version Beta 0.1.1.6 : July 24, 2009 Beta Test release.
-Version Beta 0.1.1.5 : July 22, 2009 Beta Test release.
-Version Beta 0.1.1.4 : July 19, 2009 Beta Test release.
-Version Beta 0.1.1.3 : July 19, 2009 Beta Test release.
-Version Beta 0.1.1.2 : July 14, 2009 Beta Test release.
-Version Beta 0.1.1.1 : July 11, 2009 Beta Test release.
-Version Beta 0.1.1.0 : July 11, 2009 Beta Test release.
-Version Beta 0.1.0.9 : July 06, 2009 Beta Test release.
-Version Beta 0.1.0.8 : July 03, 2009 Beta Test release.
-Version Beta 0.1.0.7 : July 02, 2009 Beta Test release.
-Version Beta 0.1.0.6 : July 01, 2009 Beta Test release.
-Version Beta 0.1.0.5 : June 29, 2009 Beta Test release.
-Version Beta 0.1.0.4 : June 29, 2009 Beta Test release.
-Version Beta 0.1.0.3 : June 28, 2009 Beta Test release.
-Version Beta 0.1.0.2 : June 26, 2009 Beta Test release.
-Version Beta 0.1.0.1 : June 26, 2009 Beta Test release.
-Version Beta 0.1.0.0 : June 23, 2009 Initial Beta Test release.
Note:
-----

Though the released versions are tested first, one can expect any kind of bugs a
nd troubles. Report bugs and issues with the maximum of pieces of information co
ncerning your configuration and your troubles.
Installation:
------------Just put Hadu.dll and Hadu.ini into the directory relative to plugins, regarding
your current DVB software. It can be the directory of the software (i.e. for ol
d versions of ProgDVB), or a given subdirectory (i.e. ./Plugins for MyTheater an
d Alt-DVB, ...).
As it is compatible with the DVBCore API, use it as a DVBCore plugin (for DVBCor
e softwares) instead of using it with MDWrapper. With DVBViewer, use it as DVBVi
ewer plugin instead of using it with SoftCSA.
Don't use two or more CardSharing Clients and/or SoftCam Emulators at the same t
ime (like Yankse, S2Emu or VPlug), unless you know perfectly what you are doing.
Directories of installation for the main DVB softwares:
------------------------------------------------------Put all the files (i.e. only Hadu.dll + Hadu.ini, currently) in the same directo
ry , as indicated hereafter:
-ProgDVB: /Plugins subdirectory (or main directory of the DVB software for old
versions of ProgDVB), and/or /Plugins/pip subdirectories for the pip (/Plugins/p
ip01 up to /Plugins/pip03; only for ProgDVB Pro versions)
-Alt-DVB: /Plugins (or /Plugins/av0) subdirectory, and/or /Plugins/pip subdirect
ories for the pip (/Plugins/av1 up to Plugins/av2)
-MyTheater, RitzDVB: /Plugins subdirectory (to use Hadu as a DVBCore plugin). Do
n't use MDWrapper.dll in /Plugins subdirectory and Hadu in /MDPlugins subdirecto
ry (MDWrapper is a workaround to make old MD plugins working with MyTheater and
other DVBCore softwares)
-DVBDream 0.xx (very old versions of DVBDream): /Modules subdirectory since vers
ion 0.85 (to use Hadu as a DVBCore plugin). /Plugins subdirectory (to use Hadu a
s a MD plugin) for precedent versions
-DVBDream 1.xx and above (current versions of DVBDream): /Plugins/pip00 and othe
rs (/Plugins/pip01 up to /Plugins/pip19) subdirectories, to use Hadu as a MD plu
gin
-WatchTVPro: /Plugins subdirectory (Hadu is using the TT Trick automatically if
it is possible)
-HispaDVB: main directory of the DVB software for old versions, and /Plugins sub
directory since version 2. Hadu is no more using the TT Trick automatically for
this software, because it is no more needed for HispaDVB version 2 and above
-MultiDec: main directory of the DVB software (Hadu supports natively the differ
ent versions of the SS1 firmware)
-DVBViewer: /Plugins subdirectory. Don't use SoftCSA.dll in /Plugins subdirector
y and Hadu in /MDPlugins subdirectory. Note that the CSA.dll (coming with the So
ftCSA package coded by Pikachu) is highly recommended for faster unscrambling, t
hough not absolutely mandatory. The CSA.dll must be located into the /Plugins su
bdirectory (or "KeyPath2") or into the main directory of the DVB software. Other
wise, Hadu will use its own internal CSA algorithm (code kindly provided by cour
tesy of Pikachu. Thanks!). With DVBViewer version 3.4 and above, you can also us
e the FFDeCSA.dll (both with the CSA.dll): depending of your DVB card, the 'Open
whole Transponder' Hardware option in DVBViewer will have to be checked or not,
to optimize the video/audio CSA unscrambling process.
The 'Has CI module' entry option into the hardware options of DVBViewer must be
checked.
-DVBViewer recording service: /Plugins/Plugins1 to /Plugins/Plugins31 subdirecto

ries. Allow this recording service to interact with the Desktop, and set "Systra
y=1" for the concerned Hadu.ini file(s). But, as interacting with the Desktop is
not allowed for services within Windows Vista or Seven, you'll have to use for
them a -limited- tool called HaduSer (see "DVBViewerRecServ" option). Don't forg
et that it's impossible to connect to the same server twice with the same user (
double login are rejected by CCCam servers).
-SkyView: /MDPlugins subdirectory
-DvbTn: /Plugins subdirectory (to use Hadu as a DVBCore plugin)
-WinSTB: /MDPlugins subdirectory
-DiavloB: /Plugins subdirectory (to use Hadu as a MD plugin, though the software
is based upon the DVBCore SDK)
-MajorDVB: /Plugins subdirectory
-TSReader: /MDPlugins subdirectory
-WinClip: /Plugins subdirectory
-SmartDVB: /Plugins subdirectory
-DVBLink TVSource: /Plugins subdirectory. You'll also have to install the FFDeCS
A.dll file into this plugin directory (but this dll is used by DVBLink TVSource,
not by Hadu). If you are using a beta version of DVBLink TVSource prior to vers
ion 1, you'll have to install the CSA.dll file instead of the FFDeCSA.dll file.
Concerning the display of Hadu, see as for the DVBViewer recording service.
Caution: For DVB softwares based on the DVBCore SDK, don't install Hadu as a MD
plugin and as a DVBCore plugin (choose either the first or the second solution,
but not both !). The same remark applies for DVBViewer.
Do not use the DLL TTTrick.dll: Hadu has its own TT Trick implemented.
Each time it is possible (Alt-DVB2 and DVBDream 1.xx, for instance) set the pack
et size for plugins to 184 bytes, to minimize the delay for the decoding process
.
Other Files used:
----------------The following additional files may eventually be used:
-"Hadu-Cache.txt": a list of ECM PIDs used (i.e. ECM PIDs cache),
-"Hadu-Manual.txt": a list of manual ECM PIDs.
Both these files are specific to a given situation (i.e. servers, channels, user
, ...), and so it's useless to share them between different users. But it could
be interested to share them between different DVB applications for the same user
on the same computer (use "KeyPath2" option). Otherwise, these files are locat
ed into the same directory as the plugin itself.
Main Menu:
----------Active: If checked, the plugin will use the incoming ECMs to try to decode the
current encrypted channel (i.e. by sending the ECMs and requesting the needed DC
Ws to the server(s)). Furthermore, connections with servers will only start if t
he plugin is active.
-Use PSI Tables: If checked, the plugin will analyze the PMT (for the list of EC
Ms) and the CAT (for the list of EMMs). If not checked, it will take data obtain
ed from the DVB software. It "costs" a little more time to begin the decoding wh
en you change of a channel, but it is strongly advised to use this option for be
tter results. Data given by DVB softwares are often incomplete, erroneous and ar
e not continuously updated.
-Monitor ...: Display the "Monitor" window to see the current analysis work and
results.

-Log Messages: You can log the main actions and the incoming/outgoing messages w
ith the servers (text file called Hadu-Mes.Log). The log file is stored in the d
irectory of Hadu. Note that this option may have a negative impact on the respon
se time.
-Log a PID...: You can log any given PID, using this menu. Logs are made in text
format. To stop the logs, just uncheck the corresponding menu. Note that by def
ault frames of data which are transmitted are "truncated" to the usual 184 bytes
size (only the payload of the TS, without the 4 bytes header). Active log is au
tomatically closed if a channel switch occurs. The log files are stored in the d
irectory of Hadu.
-Systray: If checked, an icon for Hadu is displayed in Systray. Right-click on t
his icon shows an extract of this main menu. To stop it, uncheck the correspondi
ng menu.
-EMM Options - Active: This option is set when the plugin starts, which means th
at EMMs are authorized to be processed (basically, EMMs=card updates). You can t
emporarily disable or re-enable this function with this menu, but changes only a
pply to the current session. Furthermore, EMMs are not processed which ever the
value of this option if the plugin is not active (see "Active" menu), unless the
EMMAlone option is set (see "EMMAlone" option in Hadu.ini). This option is comm
on to all servers, and is only meaningful if EMM processes have been requested f
or the corresponding servers (see "EMMCAID" option for the Server section of Had
u.ini).
-EMM Options - EMM Faked: If checked, EMMs are analyzed, counted, eventually log
ged but not sent to the servers. This option is mainly useful if EMM Log is chec
ked too (to look first at the EMMs which are supposed to be sent to the servers)
. Each time this option is changed, the counters for EMMs sent are reinitialized
for all servers.
-EMM Options - EMM Log: If checked, all EMMs sent (faked or not) are logged into
a text file called Hadu-EMM.Log.
-Cache Options - "Use Cache PIDS": If checked, ECM PID from the "Hadu-Cache.txt"
file is first tried when switching to a channel (if present for this channel).
The aim is to try to use first a known working ECM PID, for a faster decoding (s
ee "Additional files used").
-Cache Options - "Update Cache PIDs": If checked, ECM PIDs in the "Hadu-Cache.tx
t" file are updated automatically by Hadu. When 3 DCWs sets have been consecutiv
ely received from the same node, the same server and for the same CAID/Provider,
the concerned ECM PID in this file is created or modified (if not already prese
nt with the same values) for the current channel. Automatic update by Hadu is o
nly possible if the "DCWsOneServ" option is set to 1, which is the recommended v
alue (see "Additional files used").
-Cache Options - "Use Manual PIDs": If checked, ECM PIDs present in the "Hadu-Ma
nual.txt" file may be added or removed from/to the list of ECM PIDs for the curr
ent channel. This file is never updated by Hadu, and using it is only recommende
d if needed, and by advanced users (see "Additional files used").
-Cache Options - "Dump Both": This menu will dump both the current internal valu
es for the ECM PIDs cache and the manual ECM PIDs into a text file called "HaduDump.txt". This is mainly for debugging purposes.
-About...: Not much to say about it: version of the plugin and kind of DVB-API c
an be found here. You can also find some infos for special DVB softwares (i.e. "

- TT xxxx" if the TT Trick is currently used, and "- MDROOT xxxx" for MultiDec).
Options:
-------In the Hadu.ini text file (same location as the plugin), you can find the follow
ing options (values in brace [] are default values; none of these options are ma
ndatory):
[General] Section
-PluginActive ([1=Yes] or 0=No): Same as "Active" option in the main menu.
-KeyPath2: Some additional files loaded and written by the plugin may be stored
in "KeyPath2". If "KeyPath2" is not used, only the directory of the plugin is us
ed for loading and writing these files.
-UseTransparency ([1=Yes] or 0=No): Flag to authorize transparency for "Monitor"
and "Server Infos" windows. This option is only possible for Windows 2000 or ab
ove (Windows XP, Vista, Seven...), and if your graphic card and desktop configur
ation allow it (which should be the case mostly of the time). The level of the t
ransparency can me modified for both these windows using the -very- small slider
located left the pushbutton "OK". Depending of your DirectX configuration, you
may -or may not- experiment flickerings when the transparent windows are overlap
ping any video area of the screen; setting the transparency level back to "No tr
ansparency" (top position for the slider) should stop them. If you've set the tr
ansparency level to a high transparency value and you can't locate any more the
corresponding slider, try to click on any list of the window (ECMs list or serve
rs list for the "Monitor" window, and list of the nodes for the "Server Infos" w
indow), and press then the '+' touch (only the one present in the numeric keypad
will do the trick). The transparency level of the window will be set back to "N
o transparency". On the opposite, pressing the '-' touch (numeric keypad only) w
hen the focus is set to any list of the window will set the transparency level t
o its highest value.
-MonitorSize and ServerInfosSize: size of the "Monitor" and "Server Infos" windo
ws (and of the columns of their lists), if the user has modified them. Deleting
these lines when Hadu is not running restores the default values for these windo
ws.
[Options] Section
-UsePSITables ([1=Yes] or 0=No): Same as "Use PSI Tables" option in the main men
u. This flag is conditional for some other options.
-SurveyPMT ([1=Yes] or 0=No): Flag to indicate the plugin to "survey" the change
s in the PMT. Only active if UsePSITables option is active. Its main use is to d
etect when a given channel change: non encrypted (for advertisements) to encrypt
ed (in many pay-session channels for instance).
-UsePATforPMT (1,2 or [0]): Flag to indicate the plugin to obtain the PMT direct
ly from the PAT and not from the DVB software. Only active if UsePSITables optio
n is active. Necessary if PMT data given by the DVB software is erroneous or mis
sing. 0=Auto, 1=Forced to Yes, 2=Forced to No. If Auto is selected, the PAT will
be scanned only if the PMT data are unavailable (in case of a change for the PM
T PID): but it takes several seconds more.
-DontUpdViewer (1,2,3 or [0]): Flag to don't update DVB software when ECM PID ch
anges and/or Don't Send DCWs (Decoded Control Words). 0=Do both, 1=Don't update
DVB software, 2=Don't send DCWs, 3=Don't update DVB software and Don't send DCWs
. Note that if the TT Trick is used, the DCWs are not "really" send to the DVB s
oftware anyway but directly to the device.
-MaxECMPIDs (0-9. Default is [0=Auto=Extended]): Maximum number of simultaneous
ECM PIDs in use. Only one ECM PID is active at a given time for a given server.
-MaxConnections (0-nn. Default is [0=Auto=No connection limits]): Maximum number

of simultaneous connections (i.e. sockets). Only one connection can be active a


t the same time for one given server and user.
-DisplayIPorURL ([1=IP Address] or 0=URL): flag to display IP Address or URL in
the Server list ("Monitor" window).
-ECMTimeout (2-120 seconds. Default it [4]): if no ECM is received during this t
ime, Hadu will consider that a timeout has occurred, and will switch to another
possible ECM PID. This option is mostly to be used with "wrapper" applications l
ike SSSP Plug, ... In these cases, use a value higher than the ECM change frequ
ency (12 or 14 seconds should be enough, for instance). Of course, increasing th
is value will slow the start decoding process, if a possible ECM PID is processe
d while there is no stream for it; so, use this option wisely.
-MaxCAIDLoops (0-n. Default is [4]): Maximum number of loops for CAIDs and nodes
for a channel before giving it. 0 means no limits.
-DCWsOneServ ([1=Yes] or 0=No): DCWs returned by one server only (the first one
having answered positively), or always by all the active servers. It's not recom
mended to change the default value.
-LogMessages (1=Yes or [0=No]): Same as "Log Messages" option in the main menu.
-LogMessLevel (0-5. Default is [2]): Level of informations to log into the text
file called Hadu-Mes.Log. The levels are cumulative: which means that level 0 st
ands for only level 0, level 1 stands for levels 0 and 1, and so on.
-EMMAlone (1=Yes or [0=No]): Possibility to have only EMM active, while the deco
ding part is inactive. 0 (the default behavior) indicates that when the plugin i
s inactive, the EMM feature is also inactive, and all the connections with the s
ervers are closed; 1 means that when the plugin is inactive, EMM can be active (
if the EMM options "Active" menu is set), and the connections with the active se
rvers are not closed in that case. This option is not available when Hadu is use
d within the Recording Service of DVBViewer with the idle mode (see DVBViewerIdl
eServ option).
-EMMFaked (1=Yes or [0=No]): Same as "EMM Faked" option in the "EMM Options" sub
-menu of the main menu.
-EMMLog (1=Yes or [0=No]): Same as "EMM Log" option in the "EMM Options" sub-men
u of the main menu.
-CacheUse ([1=Yes] or 0=No): Same as "Use Cache PIDS" option in the "Cache" submenu of the main menu.
-CacheUpdate ([1=Yes] or 0=No): Same as "Update Cache PIDs" option in the "Cache
" sub-menu of the main menu.
-ManualUse (1=Yes or [0=No]): Same as "Use Manual PIDs" option in the "Cache" su
b-menu of the main menu.
-DispAllEMMs (1=Yes or [0=No]): display all the EMM PIDs (i.e. EMM PIDS not asso
ciated to ECM PIDs) after the ECM PIDs in the ECM list into the "Monitor" window
or not,
-Systray (1=Yes or [0=No]): Same as "Systray" option in the main menu.
[Specific] Section
-DVBViewerAPI (1=Yes or [0=No]): Flag to force the plugin to the DVBViewer 3.2 A
PI Type, if DVBViewer version is 3.4 and above. 0=Auto, 1=Forced to 3.2 API Type
.
-DVBViewerAllAudio ([1=Yes] or 0=No): Flag to decode all the Audio PIDs of the c
urrent channel, if more than one is present. 0=Only the current Audio PID, 1=All
the Audio PIDs. Available only for DVBViewer version 3.4 and above, and if the
"Use PSI Tables" option is active. This flag is also used to decode eventually T
eleText/VideoText and Subtitles PIDs: 0=No, 1=Yes (if scrambled).
-DVBViewerCSAStat (1=Yes or [0=No]): Flag to display some CSA statistics in the
"Monitor" window (below the PMT and CAT status line). 0=No statistics, 1=Display
some statistics. The statistics concern the number of calls to the different CS
A types, and the number of video/audio encrypted TS received into the last packe
t.
-DVBViewerRecServ ([0=Auto], 1=Yes, 2=No): Flag to communicate with HaduSer (if

running). This program shows a resume of all the instances of Hadu running, with
a few pieces of information. Its main purpose is to bypass the service restrict
ion for the recent versions of Windows (i.e. Vista and Seven). For these version
s of Windows, services are not allowed to interact with the Desktop; so, the Sys
tray icon for Hadu won't be available when Hadu is used within the DVBViewer rec
ording service. 0=Auto (only if Hadu is used within the DVBViewer recording serv
ice or DVBLink TVSource service), 1=Forced to Yes, 2=Forced to No. This option m
ay be eventually be used for DVBViewer or any other DVB software (though the Sys
tray option is much preferable for them).
-DVBViewerIdleServ ([0=Auto], 1=Yes, 2=No): Flag to start the server session(s)
only when the service becomes active (i.e. when a record session is running with
in the DVBViewer recording service). 0=Auto (only if Hadu is used within the DVB
Viewer recording service), 1=Forced to Yes, 2=Forced to No. In this case, Hadu s
tarts the server session(s) only when the recording session starts, and stops it
/them when the recording session stops; note that it means you will probably mis
s a few seconds at the beginning of the recording session (i.e. the needed time
to fully initialize the session before being able to communicate with the server
).
-DVBViewerEncrServ (1,2=Yes or [0=No]): Flag to start the server session(s) when
the service becomes active (see DVBViewerIdleServ option), and only when the re
corded channel is encrypted. If DVBViewerEncrServ=2, it also stops the server se
ssion(s) if the channel becomes no more encrypted. The former comment concerning
the needed extra-time before being able to decrypt the channel still applies he
re (it will even be a bit longer).
[Device] Section
-MDRoot (1,2 or [0]): Flag to analyze the root firmware in case of MultiDec, to
determine automatically DescrCommand, XorEven and XordOdd (see hereafter). 0=Aut
o (for Multidec), 1=Forced to Yes, 2=Forced to No. This concerns only premium DV
B Card "TT-compatible". Note the values for the following options prevails from
the one determined by this option.
-DescrCommand: 2 Bytes (4 hex chars)
-XorEven: 8 Bytes (16 hex chars)
-XorOdd: 8 Bytes (16 hex chars)
Don't use them unless you know exactly what you are doing.
-UseTT (1,2 or [0]): Flag to use the TT Trick. 0=Auto (for WatchTVPro), 1=Forced
to Yes, 2=Forced to No. This is only needed for DVB softwares which don't accep
t to send Direct DVB Commands. You need to have a premium DVB Card "TT-compatibl
e" (like Technotrend DVB-S, Hauppauge Nexus-S, TechniSat SkyStar1) and a patched
root firmware.
Servers Sections:
----------------For each server declared, the convention for its declaration is to create a sect
ion with:
[Serv_whateveryouwishforyourservername] (note the mandatory "Serv_" string at
the beginning).
Then comes the different parameters for the server. Only the "Server" parameter
is mandatory.
Syntax for the "Server" parameter:
Server=Protocol:Server:Port:[EMM allowed]:Username:Password[:ClientNodeID]
Sample: Server=CCCam:MyServer.com:12000:0:MyUsername:MyPassword, where

-CCCam: Declaration for a CCCam server (other protocols currently not available)
,
-MyServer.com: URL or IP address for the server,
-12000: Port for the CCCam server (decimal value),
-0: Don't send EMMs to the server (default value); set this value to 1 to send E
MMs to the server. The CAID and Mask parts are not used (see "CAIDProv" and "NoC
AIDProv" parameters instead),
-MyUsername: Name of the user (limited to 20 characters for CCCam protocol),
-MyPassword: Password for the user,
[-ClientNodeID: Optional fixed node ID for this client (16 hexadecimal character
s)].
Others parameters (each of them is optional):
-Active ([1=Yes] or 0=No): Server active or not active. A non active server cann
ot be started.
-Timeout (0=None, or 3-7 seconds. Default is [5] seconds): Timeout value if the
server is not answering. It's preferable not to use a too low value for this par
ameter,
-Version ([None] for the by default one, or Version:Build): Version and Build us
ed for the client (Version and Build are sent as is, without any checks; limited
to 32 characters for each of them),
-PadTime ([0=None], or (Timeout+2)-N seconds): interval of time for which a "kee
p alive" command is sent to the server if no other commands has already been sen
t (usually must be kept to 0),
-TimeRecon ([0=Automatic], or 1-32 seconds): automatic value corresponds to the
usual process for re-connections (restart each 1, then 2, then 4, then ... 32 se
conds if no connection occurs). Other N values are used to always force re-conne
ctions each N seconds (this is not recommended, especially for low values).
-WantEmus (1=Yes or [0=No]): similar to WantEmus option in CCCam.cfg. If set, fr
iends emus are also used (if the server has authorized them for the user).
-MaxHop ([0=None], or 1-N): nodes with a hop value superior to this limit are no
t used. A null value indicates no limits. Even if they are disabled with this ru
le, the concerned nodes are displayed into the list of nodes, but are not availa
ble.
-NonStd ([0=Auto], 1=Yes, 2=No): indicator to declare a non standard CCCam serve
r (probably a modified firmware or an emulation). If the current server is decla
red as a non standard CCCam server (i.e. NonStd=1, or NonStd=0 and auto-detectio
n positive): nodes are never considered as emulator nodes; there is no ChID sele
ction for Irdeto nodes; the "IgnoreProvFor" option is set for all the concerned
CAIDs (i.e. BetaCryt, CryptoWorks and Irdeto). Hadu tries by default to detect t
his kind of servers (as you may obtain erroneous processes within Hadu for them)
, but you still can force the option value to yes or no. Except for the standard
case (i.e. NonStd=0 and auto-detection negative), a message indicating the curr
ent status for this option is displayed at the bottom of the "Server Infos" wind
ow.
-CAIDProv ([None]): list of CAID/Providers ONLY used to make requests to the ser
ver(s). Each entry may concern a whole CAID, or just only one provider for this
CAID. Entries are separated using a comma character. Samples:
CAIDProv=0100,1801: only CAIDs 0100 and 1801 will be used.
CAIDProv=0604,0100:0084,0100:006A: only CAID 0604 and CAID/Providers 0100/84,010
0/6A will be used.
-NoCAIDProv ([None]): list of CAID/Providers EXCLUDED. Syntax similar to the "CA
IDProv" option. Samples:
NoCAIDProv=0604,0500: CAIDs 0604 and 0500 won't be used.
NoCAIDProv=0100:6A,1810,0500:032100: CAID 1810 and CAID/providers 0100/6A,0500/3
2100 won't be used.
-NoNodeCAID ([None]): list of Node/CAIDs excluded. Each entry may concern a whol
e server (i.e all nodes belonging to this server), or just only one CAID for thi
s server (i.e. usually only one node of the server). Entries are separated using

a comma character. Samples:


NoNodeCAID=0102030405060708,1A1B1C1D1E1F2021: these 2 servers won't be used.
NoNodeCAID=0102030405060708:0100,1A1B1C1D1E1F2021:500: CAID 0100 won't be used f
or the first indicated server, and CAID 0500 won't be used for the second server
.
-CAIDTunnel ([None]): list of CAID tunneling entries, currently limited to Betac
rypt<--->Nagra3 CAIDs. Each entries are separated by a comma, and data within an
entry are separated with a colon character. Syntax for each entry:
.CAID to use within ECMs stream (mandatory),
.CAID to use when requesting the server (mandatory),
.Provider (not used; null value),
.SID concerned for the tunneling feature (optional). If this value is not filled
or null, all the channels using the first CAID value are possibly concerned.
Samples:
CAIDTunnel=1833:1702 (all the channels)
CAIDTunnel=1833:1702:0:81,1833:1702:0:82 (channel with SID=$0081 or $0082).
-NoSID ([None]): list of SIDs not to processed. Entries are separated using a co
mma character. Sample:
NoSID=0001,0002,0ABC
-PrioGenRules (default is [Hop]): general rules for priority. All entries are se
parated by a comma. General rules always applied first, and concerned all the no
des. Currently, only the hop level and the emulator status are used. Possible va
lues for the the first option: Hop, RHop, NHop. Possible values for the the seco
nd option: Emu, REmu, NEmu
For all of them, xxxx means rule xxxx, Rxxxx means inversed rule for it, and Nxx
xx means no rule for this option.
.Hop: priority for nodes with lesser hop levels,
.Emu: priority for emulator nodes (applied after the former rule).
Here are a few samples (option values are not case sensitive):
.PrioGenRules=NHop: no priority rule concerning hop values
.PrioGenRules=REmu: emulator nodes used after non emulator nodes (but remember t
hat the default value PrioGenRules=Hop is still applied for this sample)
.PrioGenRules=Hop,NEmu: priority for nodes with lesser hop levels, and no rules
for emulator nodes.
-PrioCAIDProv ([None]): list of CAID/Providers for node priority. Syntax similar
to the "CAIDProv" option. The first CAID[/Provider] has priority over the secon
d one, and so on; and all the CAID/Providers present into this list have priorit
y over the other ones (i.e. those not present in the list).
Samples:
.PrioCAIDProv=0500,0100: CAID 0500 has priority over CAID 0100, and above all ot
her ones,
.PrioCAIDProv=0100:006A: CAID 0100, provider 006A has priority over all CAID/Pro
viders.
-IgnoreProvFor ([None]): list of CAIDs for which the provider checks are not per
formed. Entries are separated using a comma character. This option is ignored fo
r Seca and Viaccess CAIDs, and it's already the case by default for BetaCrypt. S
amples:
.IgnoreProvFor=0626
.IgnoreProvFor=0D95,0D03
-DontUseProvFor ([None]): list of CAIDs for which providers/ChIDs are not used i
nside CCCam messages. Entries are separated using a comma character. Sample:
.DontUseProvFor=1702
-EMMCAID ([None]): list of CAID/Provider/Options/PID for EMMs. The beginning of
the syntax is similar to the "CAIDProv" option (for the CAID and the provider in
fos). The next optional field (Options) is used for qualifying which kinds of EM
Ms are to be sent to the server: G (for Global), S (for Shared) and/or U (for Un
ique). Note that, depending of the concerned CAID, some of these values may or m
ay not have a signification; so as for the provider. Furthermore, servers don't
accept necessarily all kinds of EMMs. The concerned address(es) for these EMMs a
re provided by the server. Only non emulator nodes and with hop level=1 are enti

tled to receive EMMs. The last optional PID field specifies a restriction; i.e.
use only the designated EMM PID. The concerned PID must be present into the CAT
data for the concerned CAID; basically, this means that this PID must be valid f
or the concerned CAID/provider.
Samples:
.EMMCAID=0100:006A: all EMMs for CAID 0100 and provider 006A,
.EMMCAID=1833::GS: EMMs for CAID 1833, and just Global and Shared EMMs (not Uniq
ue ones),
.EMMCAID=0500:02C000::1A2B: all EMMs for CAID 0500, provider 02C000 and only com
ing from the EMM PID 1A2B.
-UseNodeSID ([1=Yes] or 0=No): Use the Node SID assignment/rejection feature or
not. This feature is only available with OSCAM servers, or with CCCam servers ve
rsion 2.2.0 or above (and if Hadu is also declared as a CCCam client version 2.2
.0 or above in this second case),
-OSCAMWa (1=Yes or [0=No]): this is a temporary workaround for OSCAM servers (it
is supposed to disappear in the future). If you use the CCCam server emulation
of an OSCAM server, and if you experiment troubles (mostly after a channel chang
e) like these ones: no answer to ECM requests shown in "Monitor" window, or 'Wai
ting answer...' messages which never vanish. You can try to set this option to O
SCAMWa=1 for this server. However, it's most preferable not to use it if you don
't need it, as this option is not correcting all the troubles and mostly because
it introduces some other troubles.
-OSCAMPartner ([0=Auto Test], 1=Force Test OK, 2=No): declare Hadu as an OSCAM P
artner if connected to a server for which it's possible. When the auto value is
used, Hadu will enable it whenever it's possible,
-OSCAMExt (1=Yes or [0=No]): enable the Extended ECM Mode when then OSCAM Partne
r handle is activated. This option is reserved for a future use, as currently th
is mode is always deactivated,
-OSCAMSID ([1=Yes] or 0=No): enable the Node SID assignment/rejection feature wh
en the OSCAM Partner handle is activated (see also the "UseNodeSID" option),
Tips:
----For each server, just add at least 2 lines in your Hadu.ini file and modify the
sample data hereafter with your own data:
[Serv_MyServer]
Server=CCCam:MyServer.com:12000:0:MyUsername:MyPassword
The above sample is equivalent to the following C line for a CCCam server .cfg f
ile:
C MyServer.com 12000 MyUsername MyPassword no
If you want to use the EMM feature:
-modify the EMM indicator into your server configuration line, to enable EMMs fo
r this server (set it to 1), as in this sample:
Server=CCCam:MyServer.com:12000:1:MyUsername:MyPassword
-add the corresponding CAID (and eventually provider) into the section of this s
erver:
EMMCAID=0604::S (this is a sample for allowing only Shared EMMs for CAID 0604)
-if you want to look first at the EMMs sent to your server (it's safer to be ver
y careful about that), set the EMMLog and EMMFaked options into the [Options] se
ction of Hadu (and/or use the corresponding menu).
Display:
-------There are two kinds of display.
1/ The "Monitor" window (called from the main menu), used to display general and

CAID informations for the channel, and general informations for the server(s).
The pieces of information for the channel are (in line order):
-Channel name,
-PMT PID, PMT Status, and CAT Status,
-TID and SID PIDs, Secondary messages, Number of EMM PIDs in use.
Double-clicking on an CAID row (i.e. ECM PID) will force the plugin to try to us
e this ECM PID entry. If it's not compatible for a given server (i.e. no nodes f
or this CAID/provider) or if the result is unsuccessful for all nodes compatible
with this CAID/provider, a full standard retry then occur (i.e. using all the p
ossible nodes and CAIDs, with your own priority rules).
Double-clicking on an server will display the "Server Infos" window (see hereaft
er).
Right-clicking on an server will display a menu to:
-start/Stop ("Start/Stop") a server (if the server is active),
-activate/Deactivate ("Activate/Deactivate") a server. Same as the "Active" opti
on in the configuration file,
-display ("Server Infos...") the "Server Infos" window (as by double-clicking on
an server line),
-ask ("Retry ECMs") to retry all the possible ECMs again (if the server is start
ed). If previous answer(s) is/are still expected, they are cleared,
-activate ("Switch DCW Last Byte") a workaround state for the new CCCam "checks"
(introduced in CCCam version 2.2.0 and above). This menu is only available when
needed (i.e. CCCam server and client version 2.2.0 and above, and new CCCam "ch
ecks" activated). Hadu will try first to apply an internal process to bypass thi
s bug. If it can't, it will apply the most common case when the new CCCam "check
s" are activated (usually 2 minutes after the sending of the first ECM to the se
rver). However, in some -rare- cases, the result will be negative: users will ex
periment alternate freezes (i.e. correct DCW, then wrong DCW, and so on ...), or
even no more decoding at all. In these cases, if this menu is available and if
the server is still sending DCWs, you can select this menu (only once, because t
wice will cancel the switch state). This manual workaround will then be applied
for the newt incoming DCWs. Finally, this workaround concerns only the exchanges
between your server and Hadu. If you request an ECM to a distant server (i.e. n
ode with Hop>1), and if the exchange between your server and the distant server
is erroneous, the final result will be negative whatever the workaround applied
in Hadu.
The meanings for the main status of the servers are:
-"Started.": connected and logged to the server; channel not encrypted, or chann
el encrypted and currently decoded by another server,
-"Stopped.": not connected to the server,
-"Started. Send ECM...": started and ECM request sent to the server,
-"Started. Got DCWs.": started and positive result given back by the server,
-"Started. No usable peer.": started, encrypted channel but no nodes are compati
ble with any of the CAID/providers,
-"Started. No decoding peer.": started, encrypted channel, at least one node is
compatible with the CAID/providers, but all these compatible nodes have returned
a negative answer to decode the corresponding channel,
-"Started. Timeout.": timeout during connection or for ECM requests,
-"Started. Waiting answer...": started, new ECM demand requested (i.e. channel
change, manual ECM PID forcing, ...) but former ECM request(s) is/are still pend
ing. Because a CCCam server is supposed to always send an answer to an ECM reque
st. To avoid infinite waitings, the "Retry ECMs" menu clears all the former ECM
requests; so, use it if the server seems to be locked to this waiting status (i.
e. but only after a few delay),
-"Stopped (already in use).": not connected to the server. The same server (i.e.
same IP address and same port) is already in use and connected within Hadu.

2/ The "Server Infos" window (called from the server list in the "Monitor" windo
w) is used to display informations for all the nodes of the server. Columns insi
de the list of the nodes:
-S (for Status): indicates the status of the node (see hereafter for the meaning
of the different values).
-Req/Got: numbers of ECM requests sent to the node, and of DCWs received from it
.
-Hop, CAID and Providers: common informations for a node.
-DCWs (ms): last time response for DCW received from the server for the node.
-Neg (ms): last time response for negative answer received from the server for t
he node (i.e. 'No decoding' messages). Both for DCWs and Negative time responses
, there is a first latency for multiple Irdeto ECMs (if several ChIDs are used).
-Timeout: number of timeouts for ECM requests.
-Discon: number of disconnections (and eventual re-connections).
-Index and Node ID: identification of the node. All nodes having AU data are ide
ntified with a "--i" indication just after their index value. When a node havin
g AU data is susceptible to receive EMMs for the current channel, a "**" indicat
ion is displayed instead, still just after the index value.
-Opt: eventual options for the node. The possible options are: "AU", which means
that AU data (UA and/or SA) are present; "SAssnnn", which means then nnn SIDs a
re assigned to this node; "SRejnnn", which means then nnn SIDs will be rejected
for his node.
Right-clicking on an node will display a menu to:
-toggle ("Ignore/Use") its state between "to use" and "to ignore" (if the node i
s available).
-enable or disable ("Enable/Disable (one CAID)") the selected CAID for the selec
ted server. This may correspond to one or several nodes for the concerned server
,
-enable or disable ("Enable/Disable (all CAIDs)") all the CAIDs for the selected
server.
Depending of the current status for the concerned node/CAID/server, these differ
ent entries for this menu are available or not. Enable/Disable a CAID or all CAI
Ds are equivalent to the "NoNodeCAID" option into Hadu.ini.
In the list of the nodes, providers included in parenthesis (e.g. "(0000)") or C
AIDs included in parenthesis, means that these providers or CAIDs can't be used.
When they are included into brackets (e.g. "[0500 123450 6789A0]") or into brac
es (e.g. "{0604 00000}"), the corresponding node is no more connected or exclud
ed according to various options present in the Hadu.ini file; in these 2 last ca
ses, the node status can't be modified (by double-clicking on it).
The meanings for the status of the nodes are:
-[Empty]: node can't neither be used nor having its status modified (because of
the configuration restrictions -see "MaxHop" options-; or because it has been de
clared disconnected by the server).Furthermore, unavailable nodes are grayed,
-".....": node has got its status set to "ignore" by the user (can't be used),
-" +": node can be used,
-" ?": node currently in use and decrypt result still unknown (also displayed wi
th a yellow background color),
-"**": node currently in use and decrypt result OK (also displayed with a green
background color).
The list of the nodes can be sorted on some columns (click on the title of the c
oncerned column):
-"Hop": sorted on Hop->CAID->(First)Provider,
-"CAID": sorted on CAID->(First)Provider->Hop,

-"Node ID": sorted on Node ID->Index,


-all other columns: "natural" order (i.e. nodes as they are received from the se
rver).
Data in the "Server Infos" window are partially refreshed each 2 seconds, and to
tally each 8 seconds. You can always force an extra total refresh with the "Refr
esh" button.
The clipboard button serves to copy data of the window into the clipboard (text
format).
The number of external disconnections (i.e. provoked by the network or the serve
r) is indicated just after the Version/Build data for the server, if at least on
e has occurred.
At the bottom of the window, a few general pieces of information about the serve
r and the total numbers of nodes and CAID/providers are displayed: the first num
ber of both of them indicates the whole total number, will the second number ind
icates the total number of available items.
If the connection has been rejected by the server with an additional error messa
ge (like "client xx.xx.xx.xx already connected" for instance), this message is d
isplayed at the bottom of the window.
You can also get a message if a non standard CCCam server is detected by Hadu, o
r if the "NonStd" option has not been set to 0=Auto (see "NonStd" option within
the "Servers Sections" of Hadu.ini).
If you have configured Hadu to send EMMs to the server, you'll also find the tot
al numbers of EMMs sent to it with the following classification: G for Global EM
Ms, S for Shared EMMs and U for Unique EMMs. A final '(F)' string indicates that
EMMs sending is currently faked, as in the eventual EMM log file (see EMMFaked
and EMMLog options).
Size for "Monitor" and "Server Infos" windows are saved into Hadu.ini, if they a
re changed by the user: they are saved when Hadu is stopped, and also when when
the pushbutton "OK" in "Monitor" window is pressed (because some DVB application
s don't ask their plugins to stop before exiting).
Additional files used:
---------------------"Hadu-Cache.txt": text file containing the cached ECM PIDs by channels (one entr
y allowed per channel). This file may be automatically updated by Hadu if "DCWsO
neServ"=1, and eventually modified by the user (though it's not recommended. The
general syntax for each line in this file is "ff,tttt,ssss,cccc,pppppp,ii,eeee"
with respectively:
-ff: flags (mandatory, 2 hexadecimal). Currently, only 2 bits are used within th
is flag: bit 0, 0=Don't use this line, 1=Use it; bit 1, 0=Don't update this line
, 1=Update authorized for this line,
-tttt: channel TID (mandatory, 4 hexadecimal),
-ssss: channel SID (mandatory, 4 hexadecimal),
-cccc: CAID (mandatory, 4 hexadecimal),
-pppppp: provider (optional, 6 hexadecimal),
-ii: indicator (optional, 2 hexadecimal). Currently only used for Irdeto CAIDs,
and indicating the selected ChID,
-eeee: ECM PID (mandatory, 4 hexadecimal),
and finally, some eventual comments (after a ";" character). Hadu indicates here
the name of the channel.
Samples:
03,06A4,36B2,0500,023800, ,02CE ; TSR1 (Viaccess CAID)
03,0451,0FA5,0100,00006A, ,0709 ; Film1.1 (Seca CAID)

03,0002,000A,1702,000001, ,1742 ; Sky Cinema (Betacrypt CAID)


"Hadu-Manual.txt": text file to manually add or remove ECM PIDs by channels (sev
eral entries allowed per channel). This file is never created nor modified by Ha
du; only users may fill it, and only if needed. The general syntax for each line
in this file is identical as for the cache file (i.e. "Hadu-Cache.txt"), with a
modification concerning the meaning of the flag "ff,tttt,ssss,cccc,pppppp,ii,ee
ee" with respectively:
-ff: flags (mandatory, 2 hexadecimal). Currently, only 2 bits are used within th
is flag: bit 0, 0=Nothing, 1=Add this ECM PID; bit 1, 0=Nothing, 1=Remove this E
CM PID,
-tttt: channel TID (mandatory, 4 hexadecimal),
-ssss: channel SID (mandatory, 4 hexadecimal),
-cccc: CAID (mandatory, 4 hexadecimal),
-pppppp: provider (optional, 6 hexadecimal),
-ii: indicator (optional, 2 hexadecimal). Currently only used for Irdeto CAIDs,
and indicating the selected ChID,
-eeee: ECM PID (mandatory, 4 hexadecimal),
and finally, some eventual comments (after a ";" character).
Samples:
02,0451,0FA5,0100,00006A, ,0709 ; Film1.1 (Seca CAID removed)
01,0451,0FA5,0622,000000,00,03F3 ; Film1.1 (-False- Irdeto CAID added)
Limits:
------Here are
-Maximum
-Maximum
-Maximum
-Maximum
)
-Maximum
-Maximum
d
-Maximum
ns: 32
-Maximum
-Maximum
-Maximum
-Maximum
-Maximum
-Maximum
-Maximum
-Maximum

the main current limits applied into this plugin:


number of CCCam servers (active or not active): 64
number of nodes per server: 2048
number of providers per nodes: 40
number of hops per node: 8 (though more than 3 or 4 is probably useless
length size for server name and URL/IP address: 128
length size for user and password: 20 for the user, 128 for the passwor
number of CAID/providers entries into "CAIDProv" and "NoCAIDProv" optio
number
number
number
number
number
number
number
number

of
of
of
of
of
of
of
of

nodes/CAID entries into "NoNodeCAID" option: 32


CAID/CAID/provider/SIDs entries into "CAIDTunnel" option: 32
SIDs entries into "NoSID" option: 64
CAID/providers entries into "PrioCAIDProv" option: 32
CAID entries into "IgnoreProvFor" option: 32
CAID entries into "DontUseProvFor" option: 32
CAID/provider/Options/PID entries into "EMMCAID" option: 2
entries in ECM PIDS cache and manual ECM PIDs files: 8192.

To not overload CCCam servers, it's not allowed within the plugin to have 2 acti
ve connections with the same server at the same time. Same server meaning here:
same IP address and same port.

Many thanks to the person who has kindly provided me CCCam servers for my tests.
And thanks to the beta testers.
Remote
(Hadu: http://dvbn.happysat.org/ -- cardsharing section)

You might also like