Mengedit Nomor Seri

19

Di forum resmi raspberrypi.org , "Dom" - seorang moderator menulis:

Saya telah mengacaukan papan saya untuk memiliki nomor seri Anda

Bagaimana cara saya mengedit nomor seri Raspberry Pi?

Simon yang lain
sumber
5
1. Mengapa? Kenapa tidak? Bukankah mempelajari segala hal adalah inti dari PI?
Satu lagi Simon
4
2. Mencuri - waktu saya bernilai lebih dari 2 pound yang akan saya hemat, tapi saya yakin maksud Anda adalah generik "Kamu"
Simon lain
3
3. Dom tidak magis, tetapi sangat berpengetahuan. Apakah dia menggunakan versi Pi floppy boot setys HP lama, atau menulis data ke salah satu pin GPIO, atau yang lain? Itu pertanyaan saya.
Lain Simon
3
Saya telah memperbarui jawaban saya dan menambahkan permintaan maaf. Kami di sini bukan untuk membahas moralitas. Kami di sini untuk mengajukan pertanyaan dan mendapatkan jawaban. Juga terangkat karena ini pertanyaan yang sangat bagus.
Vincent P
2
Mengapa tidak mengkompilasi kernel khusus yang mengembalikan serial apa pun yang Anda suka /proc/cpuinfo? Tidak yakin apakah itu akan membantu dengan decoder gumpalan ..
oberstet

Jawaban:

9

Saya menyalin ini dari utas forum ini .

Dom memiliki akses ke semua kode sumber, debugger Videocore, dan banyak alat khusus VC yang tertutup. Dan melepaskan informasi apa pun untuk memungkinkan Anda mengubah nomor seri akan memutus mekanisme lisensi codec, jadi tidak akan pernah terjadi.

Selain itu seperti yang diposting di utas. Satu-satunya alasan untuk mengubah serial adalah menyalin lisensi MP4 orang lain dan menggunakannya. Karena itulah keamanan di sekitar perizinan. Serial unik Anda ditautkan dengan lisensi MP4, jadi bahkan jika seseorang mendapatkan kunci lisensi Anda, mereka tidak akan dapat melakukan apa pun dengan itu (kecuali mereka dapat mengubah nomor seri Raspberry Pi.

PEMBARUAN: Untuk menjawab pertanyaan yang sebenarnya. Saya akan mengatakan bahwa karena Dom memiliki sumber untuk firmware tingkat rendah yang sebenarnya. Saya membayangkan dia benar-benar hanya mengubah kode sumber yang membaca serial dan memaksanya mengembalikan nilai yang berbeda. Jujur saya ragu bahwa itu benar-benar berubah (pada CPU yang saya maksud), lebih seperti dia mengubah beberapa kode firmware untuk mengembalikan serial yang berbeda. Juga meminta maaf kepada penanya, kami semua hanya memberi Anda "Mengapa? Itu tidak baik. Pencurian Anda" alih-alih menjawab pertanyaan. Salahku.

Vincent P
sumber
2
Terima kasih atas permintaan maaf dan upaya Anda menjawab pertanyaan. "Aku membayangkan dia ..." jawaban tipe sangat bagus untuk tujuan diskusi, tetapi jawaban yang diterima diharapkan akan dalam bentuk "Ini dilakukan melalui utilitas xyz yang hanya tersedia untuk karyawan Broadcom ..." dan
lain
2
Saya sedikit terkejut bahwa asumsi bahwa nomor seri hanya akan diubah untuk tujuan jahat begitu lazim pada perangkat Linux. Saya ingin beralih ke "mengapa saya harus mengizinkan pihak ke-3 untuk mengidentifikasi sistem saya secara unik"? Saya melihatnya sebagai, antara lain, masalah privasi. Mengapa? Itu urusan saya.
bobstro
6

Sejauh menyangkut program userspace, sangat mudah untuk mengelabui mereka dan memalsukan isi file apa saja. Sebagai contoh, misalkan program C menggunakan /proc/cpuinfofile untuk memverifikasi nomor seri. Program ini dilindungi salinan dan terikat pada serial, dan saya tidak memiliki kode sumber. Namun, saya masih dapat menjalankan strace program 2>&1 | grep cpuinfo, yang akan mengungkapkan sesuatu seperti:

open("/proc/cpuinfo", O_RDONLY) = 3

Pada titik ini, saya dapat membuat perpustakaan kecil, cpuinfo.sodengan fungsi sebagai berikut:

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);
}

Seperti yang Anda lihat, saya sedang memeriksa apakah pengguna perpustakaan mencoba untuk membuka /proc/cpuinfo, dalam hal ini saya buka /tmp/cpuinfosebagai gantinya.

Kemudian saya akan menjalankan program yang dilindungi salinan asli LD_PRELOAD=/path/to/cpuinfo.so program, dan itu akan dengan senang hati membaca file palsu saya berpikir itu /proc/cpuinfo, sambil bekerja dengan benar dengan sisa file.

Perhatikan bahwa jika perangkat lunak yang dilindungi salinan menyertakan objek kernel, akan lebih sulit untuk dibohongi, karena dapat mengakses perangkat keras secara langsung. Namun, perangkat lunak semacam itu juga hanya akan berfungsi dengan kernel yang dibangunnya, sehingga tidak praktis untuk didistribusikan.

Dmitry Grigoryev
sumber