Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Lösung: Fehlende CAIDs

AW: Lösung: Fehlende CAIDs

Denke das sollte soweit passen,
ich habe es etwas anders gemacht (ohne das Image in den RAM kopieren zu müssen).
Siehe hier:
Code:
losetup /dev/loop0 rootfs.jffs2
modprobe mtdblock
modprobe block2mtd
echo "/dev/loop0,128KiB" > /sys/module/block2mtd/parameters/block2mtd
modprobe jffs2
mount -t jffs2 /dev/mtdblock0 /media/jffs2
Sollte aber letztendlich egal sein welche Methode zum Auspacken verwendet wird,
 
Zuletzt bearbeitet:
AW: Lösung: Fehlende CAIDs

...
Ich habe es nun endlich geschafft mich mal wieder mit dem MCA zu befassen und arbeite zurzeit
an oscam-patches die hoffentlich verschiedene Freezer-Probleme beseitigen (Ich möchte aber nicht zu viel versprechen,
da die Änderungen nur auf Vermutungen beruhen).
Wenn es soweit ist, werde ich einen entprechenden oscam zum testen bereitstellen.

...
dirtyharry123


hallo dirtyharry123,
schön wieder was von dir zu lesen. ehrlich gesagt dachte ich, das du dem forum nach dem gehackt werden den rücken gekehrst hast. aber gut für uns, die wenig ahnung haben, das du dich weiterhin mit dem mca und hier im forum befasst. ich hoffe mal als leidgeprüfter vaudreizehn-nutzer, das du erfolg hast. zum testen stehe ich immer zur verfügung.

lg
 
AW: Lösung: Fehlende CAIDs

root@ubuntu:/home/user/Desktop# ./mca_tool.pl -x mca_cam.upb
Can't locate String/CRC32.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at ./mca_tool.pl line 7.
BEGIN failed--compilation aborted at ./mca_tool.pl line 7.
root@ubuntu:/home/user/Desktop#

can someone let me know what is wrong? thanks
 
AW: Lösung: Fehlende CAIDs

i assume you need to apt-get install libstring-crc32-perl
 
AW: Lösung: Fehlende CAIDs

Hallo zusammen,
habe mal alle Informationen in eine Schritt-für-Schritt-Anleitung gepackt:

1 Vorbedingungen
1.1 Script mca_tool.pl von DirtyHarry
mca_tool.pl
Code:
#!/usr/bin/env perl
# MCA-tool (C) 2012  - dirtyharry123

use strict;
use Getopt::Std;
use Fcntl qw(SEEK_END SEEK_SET SEEK_CUR);
use String::CRC32;

my $offset= 0x07EB4;
my $n = 26;
my $version_offset = 0x04AD9;
my $name_offset = 0x229B0;
my $file = 0;

sub usage{
    print "Usage: $0 [<options>] <filename>\n";
    print "\n";
    print "       options:\n";
    print "       -a                Append CRC32 to file\n";
    print "       -c                Check file-integrity (compare CRC32)\n";
    print "       -e|-r             Replace CRC32\n";
    print "       -s                Show CRC32\n";
    print "       -h                Print this help\n";
    print "\n";
    print "       additional options for mca_cam.upb:\n";
    print "       -x                Extract Info + CAIDs\n";
    print "       -R <list>         Replace CAIDs with \',\'-separated list of CAIDs\n";
    print "       -N <name>         Replace firmware-name\n";
    print "       -v <version>      Replace firmware-version\n";
}

my %opt;
getopts("acershxR:N:v:", \%opt);
if($opt{h} || !$ARGV[0]){
    usage();
    exit(1);
}
$file = $ARGV[0];

my @CAIDS;
my $crc;
my $stored_crc;

my $buffer;
open FILE, "+<", $file or die $!;
if($opt{s} || $opt{a}){
    $crc=crc32(*FILE);
    printf "CRC32 = %08X\n", $crc;
    if($opt{a}){
        seek(FILE, 0, SEEK_END);
        $stored_crc=pack("V", $crc);
        print FILE $stored_crc;
        print "CRC appended\n";
    }
}
else{
    if($opt{x} || $opt{R} || $opt{N} || $opt{v}){
        seek(FILE, $version_offset, SEEK_SET);
        read(FILE, $buffer, 2);
        my $version = unpack("n", $buffer);
        seek(FILE, $name_offset, SEEK_SET);
        read(FILE, $buffer, 4);
        my $name = $buffer;
        seek(FILE, $offset, SEEK_SET);
        for(my $i=0; $i < $n; $i++){
            read(FILE, $buffer, 4);
            push(@CAIDS, sprintf("%04X", unpack("V", $buffer)));
        }
        print "Firmware name:    $name\n";
        print "Firmware version: $version\n";
        print "CAIDS:            " . join(',', @CAIDS) . "\n";
        if($opt{R}){
            @CAIDS = split(",", $opt{R});
            if(scalar(@CAIDS) <= $n){
                printf "Replacing CAIDS: $opt{R}\n";
                seek(FILE, $offset, SEEK_SET);
                foreach my $caid (@CAIDS){
                    print FILE pack("V", hex($caid));
                }
            }
            else{
                printf "Too many CAIDS: " . scalar(@CAIDS) . ", Available slots: $n\n";
            }
        }
        if($opt{N}){
            if(length($opt{N}) <= 3){
                printf "Replacing name: $opt{N}\n";
                seek(FILE, $name_offset, SEEK_SET);
                print FILE $opt{N};
            }
            else{
                printf "Name too long, only 3 Bytes allowed\n";
            }
        }
        if($opt{v}){
            printf "Replacing version: $opt{v}\n";
            seek(FILE, $version_offset, SEEK_SET);
            print FILE pack("n", $opt{v});
        }
    }
    seek(FILE, -4, SEEK_END);
    read(FILE, $buffer, 4);
    $stored_crc=unpack("V", $buffer);
    seek(FILE, 0, SEEK_SET);
    local $/ = undef;
    $buffer = <FILE>;
    $crc=crc32(substr($buffer,0,-4));
    if($opt{e} || $opt{r}){
        printf "Original CRC32 = %08X\n", $stored_crc;
        printf "Calculated CRC32 = %08X\n", $crc;
        if($stored_crc != $crc){
            seek(FILE, -4, SEEK_END);
            $stored_crc=pack("V", $crc);
            print FILE $stored_crc;
            print "CRC replaced\n";
        }
        else{
            print "Nothing to do\n";
        }
    }else{
        if($crc != $stored_crc){
            printf "CRC mismatch (%08X != %08X)\n", $stored_crc, $crc;
        }
        else{
            printf "CRC matched (%08X = %08X)\n", $stored_crc, $crc;
        }
    }
}
close(FILE);

1.2 Pakete für das Betriebssystem (hier Ubuntu)
Code:
apt-get install mtd-utils
apt-get install libstring-crc32-perl

1.3 Firmware auf MCA
eine der MCA-NG-0.2.X-Versionen

2 Image entpacken
2.1 JFFS2-Image der MCA-NG-0.2.X SD-Karte auf Linux-PC kopieren
-> Alternative: /root/mca_cam.upb vom MCA kopieren dann weiter mit Schritt 3
-> hier nach /home/user/rootfs.jffs2

2.2 Virtuelles Block Device erstellen
Code:
mknod /tmp/mtdblock0 b 31 0
modprobe mtdblock
modprobe mtdram total_size=6912
modprobe jffs2

2.3 Image in virtuelles Device kopieren und virtuelles Device mounten
Code:
dd if=/home/user/rootfs.jffs2 of=/tmp/mtdblock0
mkdir /media/jffs2
mount -t jffs2 /tmp/mtdblock0 /media/jffs2
cp -r /media/jffs2 /home/user/

3 Firmware mit mca_tool.pl bearbeiten
3.1 Informationen aus CAM-Firmware auslesen
Code:
mca_tool.pl -x /home/user/jffs2/root/mca_cam.upb
Ausgabe:
Code:
Firmware name:    MNG
Firmware version: 3266
CAIDS:            1801,1802,1803,1810,1830,1833,1834,1835,1838,1843,1880,1702,1722,0D03,0D05,0D95,0D96,09C4,09C7,098C,0963,0648,0626,0B01,0500,0100
CRC matched (68A1709B = 68A1709B)

3.2 CAID bearbeiten (HIER 0100 mit 098E tauschen)
Code:
mca_tool.pl -r -R 1801,1802,1803,1810,1830,1833,1834,1835,1838,1843,1880,1702,1722,0D03,0D05,0D95,0D96,09C4,09C7,098C,0963,0648,0626,0B01,0500,098E -v 3267 /home/user/jffs2/root/mca_cam.upb

3.3 Ergebnis überprüfen
Code:
mca_tool.pl -x /home/user/jffs2/root/mca_cam.upb

4. CAM-Update auf MCA kopieren (VARIANTE1)
- SCP-Verbindung zum MCA aufbauen
- geänderte /home/user/jffs2/root/mca_cam.upb auf dem PC nach /root/ auf dem MCA kopieren
- CAM neustarten
- 15-20 Minuten warten
- Fertig!

5. ALTERNATIVE: Komplettes JFFS2-Image neu erstellen
Code:
mkfs.jffs2 -r /home/user/jffs2 -o myNewRootImage.jffs2 -e 128 -l -n -q -p
mca_tool.pl -r myRootImage.jffs2
--> myNewRootImage.jffs2 als rootfs.jffs2 auf SD-Karte kopieren/ersetzen
 
Zuletzt bearbeitet:
AW: Lösung: Fehlende CAIDs

Hi Cleem,

dein Howto sieht soweit ganz gut aus, ein paar Ergänzugen habe ich allerdings:
1.2 Pakete für das Betriebssystem (hier Ubuntu)
Code:
apt-get install mtm-utils
apt-get install jacksum
apt-get install libstring-crc32-perl
vermutlich meinst du mtd-utils, jacksum wird für mca-tool nicht mehr benötigt.
libstring-crc32-perl befindet sich bei Ubuntu übrigens in Universe: (sollte also aktiviert sein)

2 Image entpacken
Diesen Schritt kann man sich ganz sparen, falls man deine "VARIANTE1" verwendet.
Die Datei kann dann nämlich ebenso mit scp vom MCA auf den Rechner kopiert werden.
Falls man sich für "VARIANTE2" entscheidet, würde ich die Methode mit block2mtd (https://www.digital-eliteboard.com/...hlende-CAIDs&p=1845915&viewfull=1#post1845915) empfehlen, da man sich hier das hin- und herkopieren in den RAM erspart und es insgesamt weniger Schritte sind.

Ansonsten gutes Howto, Danke

Grüße
dirtyharry123
 
AW: Lösung: Fehlende CAIDs

Hallo DirtyHarry,
danke für Dein Review!
Klar meine ich mtd-utils und mir war auch klar dass ich jacksum nicht mehr benötige... MTD war ein Tippfehler jacksum ein Überbleibsel aus meiner "alten" Dokumentation.
Habe deine Anmerkungen eingearbeitet, auch die die Abkürzung das File direkt vom MCA zu kopieren, dann zu bearbeiten etc.

Nochmals vielen Dank für den Hirnschmalz den du in das Script reingesteckt hast.
Mir persönlich sind Hex-Editoren zwar nicht fremd aber so ein Script ist schon sehr Toll!

LG
Clem
 
AW: Lösung: Fehlende CAIDs

Hallo zusamen,
habe heute Mittag mein MCA erfogreich dazu gebracht, die von mir gewünschten CAIDs an meinen Philips TV zu übergeben.
Nach ein wenig glotzen stelle ich folgendes fest:
1) ProSiebenSat1-Sender laufen problemlos
2) RTL-Sender setzen gelegentlich aus
3) Sky Buli bringt keinen Ton

Hat irgendjemand ne Idee wo ich noch schrauben könnte?

LG
Clem
 
AW: Lösung: Fehlende CAIDs

Hallo Leute

Es hat mit dem Thema hier nicht zu tun,aber da mein Smartreader+ seinen geist aufgibt bin ich auf der suche nach Easymaus 2.
Und hab heute durch zufall was sehr kurioses gefunden.


Also wenn jemand noch eine Easymouse2 sucht ist hier bestimmt richtig.:fie::fie::kez_03:


MfG
 
AW: Lösung: Fehlende CAIDs

@dirtyharry123

könntest du mir auch mal eine patchen mit folgenden Caids:
1702,09C4,098C,1833,1830,1843,0500,0648,0D05,0B02,0B00

mfg babylon05
 
AW: Lösung: Fehlende CAIDs

I've patched @dirtyharry's CAID table from 24 dec 2012 ... editing mca_cam.upb
with UltraEdit ... directly into the image by modifying CAID 0B01 into 0B00 ( Telenor )
... unfortunately ... nothing happent ! did anybody succeded the patching opperation ?
how ? need more than simple modify ?
 
Zuletzt bearbeitet:
Re: AW: Lösung: Fehlende CAIDs

@mihaip
What's the difference between patching it manually vs using the perl script?
And in the Download page, you mention 09CD is already paired? What does that mean?

EDIT: Maybe you can give a list of caids which are already paired (so don't have to be included in the list)

EDIT2: I think you have the CRC32 wrong
Stripping the last 4 bytes from your mca_cam.pub and crc32 the file will give 0x2A61F42E.
However you've placed it reversed order: 2E F4 61 2A, I think it should be byte reversed: 61 2A 2E 1F (correct me if I'm wrong).
 
Zuletzt bearbeitet:
AW: Re: AW: Lösung: Fehlende CAIDs

There is no difference ! for me was easy this way ... patching under
Win7 using UltraEdit32 !
09CD is the CAID for Sky IT ... they implemented a system of pairing
channels individualy so sharing with this CAID is over ... for now !
My CRC32 is OK ! the entire duble-word must be in reversed order !
my modified CAID table was loaded this way and is working ! the way
you mentioned is ok only if you have two independent words of 16 bits !
 
Zuletzt bearbeitet:
AW: Lösung: Fehlende CAIDs

@MastaG --- did you tried to implement MgCamd.arm on MCA ? I've
made a test ... it started but does not decode anything ... for me was
interesting MgCamd because it can decode using SofCam.Key !!
I think the problem was in libraries ... some of them was'nt exactly
the right version required by the MgCamd code !
 
Zuletzt bearbeitet:
Zurück
Oben