Hadu DVB CardSharing Client Beta 0.119


Hadu is a CardSharing Client plugin for DVB softwares on PC 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 (without the AU option).


-Version Beta : July 06, 2009 Beta Test release.
-Version Beta : July 03, 2009 Beta Test release.
-Version Beta : July 02, 2009 Beta Test release.
-Version Beta : July 01, 2009 Beta Test release.
-Version Beta : June 29, 2009 Beta Test release.
-Version Beta : June 29, 2009 Beta Test release.
-Version Beta : June 28, 2009 Beta Test release.
-Version Beta : June 26, 2009 Beta Test release.
-Version Beta : June 26, 2009 Beta Test release.
-Version Beta : June 23, 2009 Initial Beta Test release.

-automatic detection for sssp "wrapper" application (if it's called ssspxxxxxx.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 "DescrCommand" option into the "[Device]" section of Hadu.ini,
-modification to stick as tight as possible to the answer of the server(s) concerning the ECM requests. It may have some negative impacts in some rare situations. In these later cases, atop 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.
-the way to ignore/use an available node has changed: right-click now on the node 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.11), the restart of the CAID selection process is no more always called. Unless no nodes have been found to decode the current channel; in this last case, the restart is still automatic. In some rare cases, you may have to ask manually to retry 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 of the decoding process.
-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).
-number of disconnections column added into the nodes list,
-"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 DVBViewer.
-bug fix for Cryptoworks "long" ECMs (for Digiturk mainly).
-another modification concerning the "wrapper" applications like SSSP Plug, ... Remember to set "UsePSITables=0" (or unchecking the corresponding menu entry), and "ECMTimeOut=12" (for instance) for these applications.
-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 default 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 be used with "wrapper" applications like SSSP Plug, ... As I cannot test these kinds of application, I don't know if this feature is sufficient to make my plugin compliant with them,
-node ID display added into the nodes list (last columns).
-correction concerning the internal CSA support within Hadu (when used a as DVBViewer plugin). Don't use it unless absolutely necessary, especially for HD channels. Prefer the CSA.dll/FFDeCSA.dll (both of them) instead (see DVBViewer section),
-bug fix for incorrect accepting of some certain kind of nodes.
-new modification to process NDS/Videoguard ECM still a bit faster. Be sure to use and to configure correctly your DVB application, in order it can deliver one TS at a time to its plugins (i.e. packet size=184 bytes). And always uncheck the "Log 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 DVBCore 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 address and same port) is already in use, Server infos window no more centered for each subsequent calls, ...
-correction when stopping and restarting a server while being on an encrypted channel,
-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 call. However, a manual 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.
-Initial public release.


Please note that this version is a beta test release, which is not intended to end-users. This version has not been thoroughly tested and so, one can expect any kind of bugs and troubles ...

Purpose of this version is to test this plugin by people who accept to do so. Please report bugs or successful tests with a maximum of pieces of information concerning your configuration and your troubles.


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 old versions of ProgDVB), or a given subdirectory (i.e. ./Plugins for MyTheater and Alt-DVB, ...).

As it is compatible with the DVBCore API, use it as a DVBCore plugin (for DVBCore softwares) instead of using it with MDWrapper. With DVBViewer, use it as DVBViewer plugin instead of using it with SoftCSA.

Don't use two or more CardSharing Clients and/or SoftCam Emulators at the same time (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 directory , as indicated hereafter:

-ProgDVB : main directory of the DVB software (or /Plugins subdirectory for version 4.38 or later of ProgDVB)
-Alt-DVB : /Plugins (or /Plugins/av0) subdirectory, and/or /Plugins/pip subdirectory for the pip, and others (/Plugins/av1 to Plugins/av2
-MyTheater, RitzDVB: /Plugins subdirectory (to use Hadu as a DVBCore plugin). Try to avoid the solution MDWrapper.dll in /Plugins subdirectory and Hadu in /MDPlugins subdirectory (MDWrapper is a workaround to make old MD plugins working with MyTheater and other DVBCore softwares)
-DVBDream 0.xx: /Modules subdirectory since version 0.85 (to use Hadu as a DVBCore plugin). /Plugins subdirectory (to use Hadu as a MD plugin) for precedent versions
-DVBDream 1.xx and above : /Plugins/pip00 and others (/Plugins/pip01 up to /Plugins/pip19) subdirectories, to use Hadu as a MD plugin
-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 subdirectory 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 different versions of the SS1 firmware)
-DVBViewer: /Plugins subdirectory. Avoid the solution SoftCSA.dll in /Plugins subdirectory and Hadu in /MDPlugins subdirectory. Please, note that the CSA.dll (coming with the SoftCSA package coded by Pikachu) is recommended for faster unscrambling, though not absolutely mandatory. The CSA.dll must be located into the /Plugins subdirectory (or KeyPath2) or into the main directory of the DVB software. Otherwise, Hadu will use its own internal CSA algorithm (code kindly provided by courtesy of Pikachu. Thanks!). With DVBViewer version 3.4 and above, you can also use 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 treatment.
The 'Has CI module' entry option into the hardware options of DVBViewer must be checked.
It is also possible to use Hadu with the recording service of DVBViewer, if you install first the Wrapper for recording service of Pikachu. Caution : currently, this option might lead to unstable behaviors of DVBViewer (especially when closing this software).
-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

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 !). Same thing for DVBViewer.

Do not use the DLL TTTrick.dll: Hadu has its own TT Trick implemented.

Other Files used :
None currently.

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 DCWs to the server(s)). Furthermore, connections with servers will only start if the plugin is active.

-Use PSI Tables: If checked, the plugin will analyze the PMT (for the list of ECMs) and the CAT (for the list of EMMs). If not checked, it will take data obtained from the DVB software. It "costs" a little more time to begin the decoding when you change of a channel, but it is strongly advised to use this option for better results. Data given by DVB softwares are often incomplete, erroneous and are 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 with the servers.The log files are stored, either in the KeyPath2 directory if used, or in the directory of Hadu. Note that this option may have a negative impact on the response time.

-About...: Not much to say about it: version of the plugin and kind of DVB-API can be found here. You can also find some infos for special DVB softwares (i.e. "- TT xxxxxx" if the TT Trick is currently used, and "- MDROOT xxxxxx" for MultiDec).


In the Hadu.ini file (same location as the plugin), you can find the following options (values in brace [] are default values) :

[General] Section

-PluginActive ([1] or 0) : Same as "Active" option in the main menu.
-KeyPath2: Files loaded and written by the plugin are stored in KeyPath2. If KeyPath2 is not used, only the directory of the plugin is used for loading and writing files.

[Options] Section

-UsePSITables ([1] or 0) : Same as "Use PSI Tables" option in the main menu. This flag is conditional for some other options.
-SurveyPMT ([1] or 0) : Flag to indicate the plugin to "survey" the changes in the PMT. Only active if UsePSITables option is active. Its main use is to detect when a given channel change : non encrypted (for advertisements) to encrypted (in many pay-session channels for instance).
-UsePATforPMT (1,2 or [0]) : Flag to indicate the plugin to obtain the PMT directly from the PAT and not from the DVB software. Only active if UsePSITables option is active. Necessary if PMT data given by the DVB software is erroneous or missing. 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 PMT PID): but it takes several seconds more.
-DontUpdViewer (1,2,3 or [0]) : Flag to don't update DVB software when ECM PID changes 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 software anyway but directly to the device.
-UseDVBTime ([1] or 0) : Flag to use UTC time in DVB stream (currently unused). The time displayed in the Monitor window is the local time computed from the computer system time (if it's within parenthesis), or from the last UTC DVB time received (if authorized and available).
-MaxECMPIDs (1-10. Default is [4]) : Maximum number of simultaneous ECM PIDs in use. Only one ECM PID can be active at the same time for one given server.
-MaxConnections (1-32. Default is [4]): Maximum number of simultaneous connections (i.e. sockets). Only one connection can be active at the same time for one given server.
-DisplayIPorURL ([1=IP Address] or 0=URL) : flag to display IP Address or URL in the Server list (Monitor window).
-ECMTimeOut (2-20 seconds. Default it [3]) : if no ECM is received during this time, Hadu will consider that a timeout has occurred, and will swith to another possible ECM PID. This option is mostly to be used with "wrapper" applications like SSSP Plug, .... In these cases, use a value higher than the ECM change frequency (12 or 14 seconds should be enough, for instance). Of course, increasing this value will slow the start decoging process, if a possible ECM PID is processed, while there is no stream for it; so use this option wisely.
-LogMessages (1 or[0]) : Same as "Log Messages" option in the main menu.
-LogMessLevel (0-4. Default is 1) : Level of informations to log into the text file called Hadu-Mes.log. The levels are cumulative: which means that level 0 stands for only level 0, level 1 stands for levels 0 and 1, and so on.

[Specific] Section

-DVBViewerAPI (1 or [0]) : Flag to force the plugin to the DVBViewer 3.2 API Type, if DVBViewer version is 3.4 and above. 0=Auto, 1=Forced to 3.2 API Type.
-DVBViewerAllAudio ([1] or 0) : Flag to decode all the Audio PIDs of the current 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 the TeleText/VideoText PID : 0=No, 1=Yes (if scrambled).
-DVBViewerCSAStat (1 or [0]) : 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 CSA types, and the number of video/audio encrypted TS received into the last packet.

[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=Auto (for Multidec), 1=Forced to Yes, 2=Forced to No. This concerns only premium DVB 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 accept to send Direct DVB Commands. You need to have a premium DVB Card "TT-compatible" (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 section with :
[Serv_whateveryouwishforyourservername]   (note the "Serv_" string at the beginning).

Then comes the different parameters for the server. Only the "Server" parameter is mandatory.

Syntaxe for the "Server" parameter :

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: Caid/mask. Not used (may be empty), see "CAIDProv" and "NoCAIDProv" parameters instead,
-Myusername: Name of the user (limited to 20 characters for CCCam protocol),
-Mypassword: Password for the user.

Others parameters (each of them is optional):

-Active ([1] or 0): Server active or not active. A non active server cannot be started.
-TimeOut (0=None, or 3-7 seconds. Default is [5] seconds): Timeout value if the server is not answering,
-PadTime ([0=None], or (TimeOut+2)-N seconds): interval of time for which a "pad" command is sent to the server if no other commands has already been sent (usually must be kept to 0),
-WantEmus (0=No or [1=Yes]): similar to WantEmus option in CCCam.cfg. If set, friends emus are also used (if the server has authorized them for the user). Even if WantEmus is not set, the concerned nodes are displayed into the list of nodes, but are not available.
-MaxHop ([0=None], or 1-N): if WantEmus is set, nodes with a hop value superior to this limit are not used. A null value indicates no limits.
-CAIDProv ([None]): list of CAID/Providers ONLY used to make requests to the server(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,0100/6A will be used.
-NoCAIDProv ([None]): list of CAID/Providers EXCLUDED. Syntax similar to the "CAIDPRov" 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/32100 won't be used.
-NoNodeCAID ([None]): list of Node/CAID EXCLUDED. Each entry may concern a whole peer (i.e all nodes belonging to this server), or just only one CAID for this peer (i.e. only one node node of the server). Entries are separated using a comma character. Samples:
NoNodeCAID=0102030405060708,1A1B1C1D1E1F2021 : these 2 peers won't be used.
NoNodeCAID=0102030405060708:0100,1A1B1C1D1E1F2021:500 : CAID 0100 won't be used for the first indicated peer, and CAID 0500 won't be used for the second peer.
-CAIDTunnel ([None]): list of CAID tunneling entries, currently limited to Betacrypt<--->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 (optionnal). If this value is not filled or null, all the channels using the first CAID value are possibly concerned.
CAIDTunnel=1833:1702 (all the channels)
CAIDTunnel=1833:1702:0:81,1833:1702:0:82 (channel with SID=$0081 or $0082).

So, for each new server to add with by default values, add these 2 lines in your .ini file, modifying the concerned data with your own ones:

The above sample is corresponding to this C line for a CCCam server .cfg file:
C MyServer.com 12000 MyUsername MyPassword


There are two kinds of display.

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).

Double-clicking on an CAID row (i.e. ECM PID) will force the plugin to try to use this ECM PID entry. If it's not compatible for a given server, the following next compatible ECM PID entry will be used instead.

Double-clicking on an server will display the "Server Infos" window (see hereafter).

Right-clicking on an server will display a menu to:
-Start/Stop a server (if the server is active). Same as the "Active" option in the configuration file,
-Activate/Deactivate a server,
-Ask to retry all the possible ECMs again (if the server is started).

The meanings for the main status of the servers are:
-"Started." : connected and logged to the server; channel not encrypted,
-"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. (None)" : started, encrypted channel but no possible decoding using this server ; either because there is no corresponding CAID/provider for this channel, or because all the possible CAI/providers requested from the server have given negative results,
"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.

The "Server Infos" window (called from the server list in the "Monitor" window) is used to display informations for all the nodes of the server. Columns inside the nodes list:
-S (for Status): indicates the status of the node. [Empty] = not available (because of the configuration restrictions -see "WantEmus" and "MaxHop" options-; or because it has been declared disconnected by the server). Furthermore, unavailable nodes are grayed. "....." = node available, but forced by the user to be ignored. " +" = node available. "**" = node available and currently in use.
-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.

Right-clicking on an node will display a menu to:
-toggle its state between "to use" and "to ignore" (if the node is available).

In the nodes list, providers included in parenthesis (e.g. "(0000)") or CAIDs 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 braces (e.g. "{0604  00000}"), the corresponding node is no more connected or excluded according to various options present in the .ini file; in these 2 last cases, the node status can't be modified (by double-clicking on it).

The meanings for the main status of the nodes are:
-[Nothing] : node can't neither be used nor having its status modified,
-"....." :  node has been its status set to "ignore" by the user,
-" +" : node can be used,
-"**" : node currently in use.

Data in the "Server Infos" window are refreshed each 4 seconds. You can force an extra refresh with the "Refresh" button.

The clipboard button serves to copy data of the window into the clipboard (text format).

At the bottom of the window, the total numbers of nodes and CAID/providers are displayed: the first number of both of them indicates the whole total number, will the second number indicates the total number of available items.


Here are the main current limits applied into the plugin:
-Maximum number of CCCam servers (active or not active): 6
-Maximum number of nodes per server : 2048
-Maximum number of providers per nodes : 16
-Maximum number of hops per node : 16 (though more than 3 or 4 is probably useless)
-Maximum numbers of CAID/providers entries into to "CAIDProv" and "NoCAIDProv" options : 32
-Maximum numbers of nodes/CAID entries into to "NoNodeCAID" option : 32
-Maximum numbers of CAID/CAID/provider/SIDs entries into to "CAIDTunnel" option : 32
-Maximum length size for server name and URL/IP address : 128
-Maximum length size for user and password: 20 for the user, 128 for the password.

To not overload CCCam servers, it's not allowed within the plugin to have 2 active 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 a CCCam server for my tests).


Sie besitzen nicht die Berechtigung, diese Datei herunterzuladen...

Um die datei zu Downloaden Loggen Sie sich im System ein, oder Regestrieren sie sich neu.

Möchten Sie sich neu registrieren? System Login

Sie k?nnen keine Kommentare abgeben!