On resmi raspberrypi.org forumun , "Dom" - moderatörü yazdı:
Seri numaranızı almak için kartımı taktım
Raspberry Pi'nin seri numarasını nasıl düzenlerim?
/proc/cpuinfo
? Bu olsa dekoder blobs yardımcı olur emin değilim ..
On resmi raspberrypi.org forumun , "Dom" - moderatörü yazdı:
Seri numaranızı almak için kartımı taktım
Raspberry Pi'nin seri numarasını nasıl düzenlerim?
/proc/cpuinfo
? Bu olsa dekoder blobs yardımcı olur emin değilim ..
Yanıtlar:
Bunu bu forum başlığından kopyalıyorum .
Dom, tüm kaynak koduna, Videocore hata ayıklayıcısına ve birçok kapalı VC'ye özgü araca erişebilir. Seri numarasını değiştirmenize izin vermek için herhangi bir bilgiyi yayınlamak, kodek lisanslama mekanizmasını kıracaktır, bu yüzden asla olmayacaktır.
Ek olarak iş parçacığında gönderildi. Seriyi değiştirmenin tek nedeni, başkasının MP4 lisansını kopyalamak ve kullanmaktır. Lisanslama çevresindeki güvenlik budur. Benzersiz dizininiz MP4 lisansına bağlıdır, bu yüzden birisi lisans anahtarınızı alsa bile, onunla hiçbir şey yapamazlar (Raspberry Pi'nin seri numarasını değiştirmedikleri sürece).
GÜNCELLEME: Asıl soruyu cevaplamak için. Dom gerçek düşük seviyeli firmware için kaynak olarak söyleyebilirim. Gerçekten sadece seriyi okuyan kaynak kodunu değiştirdiğini ve farklı bir değer döndürmeye zorladığını hayal ediyorum. Dürüst olmak gerekirse, aslında değiştirildiğinden (yani CPU'da), daha çok farklı bir seriyi döndürmek için bazı bellenim kodunu değiştirdiği gibi şüpheliyim. Ayrıca askerden özür dileriz, hepimiz size soruyu cevaplamak yerine size sadece "Neden? Bu hoş değil. Benim hatam.
Kullanıcı alanı programları söz konusu olduğunda, onları kandırmak ve herhangi bir dosyanın içeriğini taklit etmek oldukça kolaydır. Örneğin, bir C programının /proc/cpuinfo
seri numarasını doğrulamak için dosya kullandığını varsayın . Program kopya korumalı ve seriye bağlı ve kaynak kodum yok. Ancak, yine de strace program 2>&1 | grep cpuinfo
, hangi gibi bir şey ortaya çıkaracaktır çalıştırabilirsiniz :
open("/proc/cpuinfo", O_RDONLY) = 3
Bu noktada, cpuinfo.so
aşağıdaki işlevle küçük bir kütüphane oluşturabilirim :
int open(const char *file, int flags) {
static int (*real_open)(const char *file, int flags);
if(!real_open) real_open = dlsym(RTLD_NEXT, "open");
if(!strcmp(file, "/proc/cpuinfo")) file = "/tmp/cpuinfo";
return real_open(file, flags);
}
Gördüğünüz gibi, kütüphane kullanıcısının açmaya çalışıp çalışmadığını kontrol ediyorum, /proc/cpuinfo
bu durumda açıyorum /tmp/cpuinfo
.
Sonra orijinal kopya korumalı programı olarak çalıştıracağım ve dosyaların geri kalanıyla doğru şekilde çalışırken LD_PRELOAD=/path/to/cpuinfo.so program
sahte dosyamı düşünerek mutlu bir şekilde okuyacağım /proc/cpuinfo
.
Kopya korumalı yazılım çekirdek nesneleri içeriyorsa, donanıma doğrudan erişebileceğinden kandırmanın çok daha zor olacağını unutmayın. Bununla birlikte, bu tür yazılımlar sadece kurulduğu çekirdekle de çalışarak dağıtılmasını oldukça pratik hale getirir.