การแก้ไขหมายเลขซีเรียล


19

ในฟอรัม raspberrypi.org อย่างเป็นทางการ "Dom" - ผู้ดำเนินรายการเขียน:

ฉัน fudged บอร์ดของฉันจะมีหมายเลขซีเรียลของคุณ

ฉันจะแก้ไขหมายเลขซีเรียลของ Raspberry Pi ได้อย่างไร


5
1. ทำไม ทำไมจะไม่ล่ะ? การเรียนรู้สิ่งต่าง ๆ ไม่ใช่ประเด็นทั้งหมดของ PI หรือ?
อีก Simon

4
2. การขโมยอีกครั้ง - เวลาของฉันมีค่ามากกว่า 2 ปอนด์ฉันจะประหยัดได้ แต่ฉันแน่ใจว่าคุณหมายถึง "คุณ" ทั่วไป
Simon

3
3. Dom ไม่ได้มีมนต์ขลัง แต่มีความรู้มาก เขาใช้เวอร์ชั่นเก่าของ HP ในการตั้งค่าฟล็อปปี้บูตหรือเขียนข้อมูลไปยังหนึ่งในพิน GPIO หรืออย่างอื่นหรือไม่? นั่นคือคำถามของฉัน
อีก Simon

3
ฉันได้อัปเดตคำตอบและเพิ่มคำขอโทษแล้ว เราไม่ได้อยู่ที่นี่เพื่อพูดคุยเกี่ยวกับคุณธรรมของสิ่งต่าง ๆ เราอยู่ที่นี่เพื่อถามคำถามและรับคำตอบ โหวตขึ้นเพราะมันเป็นคำถามที่ดีมาก
Vincent P

2
ทำไมไม่รวบรวมเคอร์เนลที่กำหนดเองที่ผลตอบแทนสิ่งที่คุณชอบอนุกรมที่/proc/cpuinfo? ไม่แน่ใจว่าจะช่วยถอดรหัส blobs ได้
ไหม

คำตอบ:


9

ฉันกำลังคัดลอกสิ่งนี้จากกระทู้ในฟอรัมนี้

Dom สามารถเข้าถึงซอร์สโค้ดทั้งหมดตัวดีบัก Videocore และเครื่องมือเฉพาะ VC จำนวนมากที่ปิดอยู่ และการปล่อยข้อมูลใด ๆ เพื่อให้คุณสามารถเปลี่ยนหมายเลขซีเรียลจะเป็นการทำลายกลไกการออกใบอนุญาตของตัวแปลงสัญญาณดังนั้นจะไม่เกิดขึ้นอีก

นอกจากนี้ตามที่โพสต์ในหัวข้อ เหตุผลเดียวในการเปลี่ยนซีเรียลคือการคัดลอกใบอนุญาต MP4 ของผู้อื่นและใช้งาน เช่นเดียวกับความปลอดภัยของลิขสิทธิ์ อนุกรมที่ไม่ซ้ำกันของคุณเชื่อมโยงกับใบอนุญาต MP4 ดังนั้นแม้ว่าใครบางคนจะได้รับคีย์ใบอนุญาตของคุณพวกเขาจะไม่สามารถทำอะไรกับมันได้ (เว้นแต่พวกเขาจะสามารถเปลี่ยนหมายเลขประจำเครื่องของ Raspberry Pi ได้

UPDATE:เพื่อตอบคำถามจริง ฉันจะบอกว่าเป็น Dom มีแหล่งที่มาสำหรับเฟิร์มแวร์ระดับต่ำที่เกิดขึ้นจริง ฉันคิดว่าเขาแค่เปลี่ยนซอร์สโค้ดที่อ่านซีเรียลและบังคับให้มันคืนค่าที่ต่างออกไป ฉันสงสัยจริงๆว่ามันเปลี่ยนไปจริง ๆ (บน CPU ที่ฉันหมายถึง) เหมือนเขาเปลี่ยนรหัสเฟิร์มแวร์บางส่วนเพื่อส่งคืนซีเรียลอื่น นอกจากนี้ยังขออภัยต่อผู้ถามเราทุกคนเพิ่งให้ "ทำไมล่ะไม่ดีการขโมยของคุณ" แทนที่จะตอบคำถาม ความผิดฉันเอง.


2
ขอบคุณสำหรับคำขอโทษและความพยายามตอบคำถาม "ฉันคิดว่าเขาเป็น ... " คำตอบประเภทนี้เหมาะสำหรับการอภิปราย แต่คำตอบที่ได้รับการยอมรับจะหวังว่าจะอยู่ในรูปแบบของ "มันทำผ่านยูทิลิตี้ xyz ซึ่งมีให้เฉพาะพนักงานของ Broadcom ... " ฯลฯ
Simon

2
ฉันแปลกใจเล็กน้อยที่สันนิษฐานว่าหมายเลขซีเรียลนั้นจะถูกเปลี่ยนเพื่อวัตถุประสงค์ที่เลวร้ายเท่านั้นที่แพร่หลายในอุปกรณ์ Linux ฉันต้องการเปลี่ยนเป็น "ทำไมฉันควรอนุญาตให้บุคคลที่สามระบุระบบของฉันโดยไม่ซ้ำกัน" ฉันเห็นว่ามันเป็นประเด็นความเป็นส่วนตัว ทำไม? นั่นคือธุรกิจของฉัน
bobstro

6

สำหรับโปรแกรมที่เกี่ยวกับผู้ใช้มันเป็นเรื่องง่ายที่จะหลอกพวกเขาและปลอมเนื้อหาของไฟล์ใด ๆ ตัวอย่างเช่นสมมติว่าโปรแกรม C กำลังใช้/proc/cpuinfoไฟล์เพื่อตรวจสอบหมายเลขซีเรียล โปรแกรมได้รับการป้องกันการคัดลอกและเชื่อมโยงกับซีเรียลและฉันไม่มีซอร์สโค้ด อย่างไรก็ตามฉันยังสามารถวิ่งstrace program 2>&1 | grep cpuinfoได้ซึ่งจะเปิดเผยสิ่งที่ชอบ:

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

ณ จุดนี้ฉันสามารถสร้างห้องสมุดขนาดเล็กcpuinfo.soด้วยฟังก์ชั่นต่อไปนี้:

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

อย่างที่คุณเห็นฉันกำลังตรวจสอบว่าผู้ใช้ไลบรารีพยายามเปิด/proc/cpuinfoหรือไม่ซึ่งในกรณีนี้ฉันเปิด/tmp/cpuinfoแทน

จากนั้นฉันจะเรียกใช้โปรแกรมป้องกันการคัดลอกต้นฉบับเป็นLD_PRELOAD=/path/to/cpuinfo.so programและมันจะอ่านไฟล์ปลอมของฉันอย่างมีความสุขคิดว่ามัน/proc/cpuinfoในขณะที่ทำงานอย่างถูกต้องกับส่วนที่เหลือของไฟล์

โปรดทราบว่าหากซอฟต์แวร์ที่มีการป้องกันการคัดลอกมีวัตถุเคอร์เนลมันจะเป็นเรื่องยากที่จะหลอกเพราะมันสามารถเข้าถึงฮาร์ดแวร์ได้โดยตรง อย่างไรก็ตามซอฟต์แวร์ดังกล่าวจะทำงานร่วมกับเคอร์เนลที่สร้างขึ้นเท่านั้นจึงไม่สามารถแจกจ่ายได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.