PID ECM DE FORMA MANUAL

Sobre los pids, logueando 1 vez el PID numero 1(dvbsnoop -n 1 1) se ven todos los pids que contienen EMMs junto con su CAID. El PID1 es el CAT (Conditional Acces Table). Si lo hacemos se ve:

Código:
...
        MPEG-DescriptorTag: 9 (0x09)  [= CA_descriptor]
        descriptor_length: 9 (0x09)
        CA_system_ID: 256 (0x0100)  [= Canal Plus (Seca/MediaGuard)]
        reserved: 7 (0x07)
        CA_PID: 193 (0x00c1)
        Private Data:
              0000:  01 e0 c4 41 06                                     ...A.

        MPEG-DescriptorTag: 9 (0x09)  [= CA_descriptor]
        descriptor_length: 4 (0x04)
        CA_system_ID: 6160 (0x1810)  [= Kudelski SA]
        reserved: 7 (0x07)
        CA_PID: 155 (0x009b)
...
El pid de emms del caid 1810(Nagr@3) es el 0x009B y el pid de emms del caid 0100(Seca4) es el 0x00C1 (y tambien el C4 auqnue no es el principal)

Para averiguar el pids de las ecms de forma manual (sin usar una emu que ya nos lo dice) es un poco mas laborioso, Pirmero hay que loguear una vez el PID numero 0 (dvbsnoop -n 1 0) (El pid 0 es el PAT Program Asociation Table), de todos los que salen hay que buscar el PID que corresponde al program_number que es igual al SID del canal, los sids de los canales se pueden encontrar en kingofsat por ejemplo. Una vez encontrado ese pid (el PMT Program MAP Table), se loguea una vez y se ven los pids de ecms de ese canal.

Por ejemplo para Paramount Comedy en Astra, si miramos en kingofsat el SID es 30408, hacemos dvbsnoop -n 1 0 y se ve algo como esto

Código:
...
   Program_number: 30400 (0x76c0)
   reserved: 7 (0x07)
   Program_map_PID: 1024 (0x0400)

   Program_number: 30408 (0x76c8)
   reserved: 7 (0x07)
   Program_map_PID: 1032 (0x0408)

   Program_number: 30407 (0x76c7)
   reserved: 7 (0x07)
   Program_map_PID: 1031 (0x0407)

   Program_number: 30414 (0x76ce)
   reserved: 7 (0x07)
   Program_map_PID: 1026 (0x0402)
...
El pid correspondiente al Program_numbet 30408 es el 0x0408, asi que logueamos ese pid haciendo dvbsnoop -n 1 0x0408 y sale

Código:
...
            MPEG-DescriptorTag: 9 (0x09)  [= CA_descriptor]
            descriptor_length: 17 (0x11)
            CA_system_ID: 256 (0x0100)  [= Canal Plus (Seca/MediaGuard)]
            reserved: 7 (0x07)
            CA_PID: 1117 (0x045d)
            Private Data:
                 0000:  41 06 ff ff ff ff ff ff  ff ff fe 26 44            A..........&D

            MPEG-DescriptorTag: 9 (0x09)  [= CA_descriptor]
            descriptor_length: 4 (0x04)
            CA_system_ID: 6160 (0x1810)  [= Kudelski SA]
            reserved: 7 (0x07)
            CA_PID: 2117 (0x0845)
...
y ahi se ve, para el CAID 0100 (Seca4) el PID de ECMs es 0x045D y para el CAID 1810(Nagr@3) el PID de ECMs es el 0x0845

Para buscar estos pids es necesario tener sintonizado el canal del que queremos buscar los pids (o al menos uno de su mismo TP) sino no vale o no encontraremos el program_number

Una vez sabiendo el pid de ecms o emms que se quiere loguear pues:

dvbsnoop -n YYYYY -ph2 -npd 0xXXXX -b > /carpeta/archivo.bin
-n YYYY es el numero de emms/ecms que se quiere loguear
-ph 2 -npd es para espcificar la forma en que las muestra
0xXXXXX el pid
-b para que haga archivo binario
> /carpeta/archivo.bin la ruta donde dejar el archivo

En el caso de ecms de SIDSA, no vale con loguear la ecm, hace falta 6 bytes anteriores a la ecm, asi que hay que loguear el pid de las ecms pero con un parametro extra, para que no muestre solo la ecm sino que muestre todo el paquete TS completo, seria asi

dvbsnoop -n YYYYY -ph2 -npd -s ts 0xXXXX -b > /carpeta/archivo.bin


y si quereis ver una emm en patalla sin grabarla en un archivo poneis YYYY a 1 y quitais lo de -b > /carpeta/archivo.bin

Código:
Los canales que contengan PID's
80-81 ----> son ecm
82-83-84 (¿En adelante?)---> son emm
Eso es el primer byte de lo que se loguea, las ecms siempre empiezan por 80 o 81, y las emms por 82 83 o 84 (segun el tipo)

Un saludo