คำถามติดแท็ก elf

4
ตรวจสอบการอ้างอิงวัตถุที่ใช้ร่วมกันโดยตรงของไบนารี Linux?
ฉันจะค้นหาการพึ่งพาวัตถุที่ใช้ร่วมกันโดยตรงของไบนารี Linux ในรูปแบบ ELF ได้อย่างไร ฉันรู้เครื่องมือ ldd แต่ดูเหมือนว่าจะส่งออกการอ้างอิงทั้งหมดของไบนารีรวมถึงการพึ่งพาของวัตถุที่ใช้ร่วมกันใด ๆ ที่ไบนารีขึ้นอยู่กับ
170 linux  elf 

6
จะติดตั้ง GCC ทีละชิ้นด้วย GMP, MPFR, MPC, ELF โดยไม่ใช้ไลบรารีที่ใช้ร่วมกันได้อย่างไร
ฉันจะติดตั้ง GCC (GNU Compiler Collection) ทีละชิ้นได้อย่างไรโดยใช้เวอร์ชันปัจจุบัน โดยใช้การอ้างอิงเวอร์ชันที่ถูกต้องโดยไม่ใช้ตัวจัดการแพ็คเกจ (เช่น yum, rpm, apt, dpkg) และไม่ใช้ไลบรารีที่แชร์ นักพัฒนาทั่วไปมักต้องการติดตั้ง GCC ด้วยวิธีทั่วไปใช้ตัวจัดการแพ็คเกจของคุณ (yum, rpm, apt, dpkg, port, brew ฯลฯ ) หรือทำตามคำแนะนำที่นี่ ( http://gcc.gnu.org/wiki/ การติดตั้ง GCC ) คำถามของฉันคือวิธีติดตั้ง GCC ทีละชิ้นโดยไม่ใช้ไลบรารีที่ใช้ร่วมกัน ฉันต้องการ GCC อิสระเต็มรูปแบบที่สามารถย้ายไปรอบ ๆ ระบบของฉันได้โดยไม่ต้องใช้ไลบรารีที่ใช้ร่วมกันและไม่ต้องสร้างไลบรารีที่แชร์ นี่คือสิ่งที่ GCC เรียกว่า "วิธีที่ยาก" และไม่แนะนำสำหรับผู้ใช้ทั่วไป GCC ขึ้นอยู่กับ: GMP: GNU ไลบรารีเลขคณิตที่แม่นยำหลายรายการ MPFR: GNU …
115 gcc  elf  gmp  mpfr  mpc 

4
ไฟล์ ELF และไฟล์ bin ต่างกันอย่างไร
ภาพสุดท้ายที่สร้างโดยผู้รวบรวมมีทั้งไฟล์ bin และไฟล์ ELF รูปแบบตัวโหลดแบบขยายความแตกต่างระหว่างสองไฟล์นี้คืออะไรโดยเฉพาะยูทิลิตี้ของไฟล์ ELF
100 arm  elf 

4
ฉันสามารถเปลี่ยน 'rpath' ในไบนารีที่คอมไพล์แล้วได้หรือไม่?
ฉันมีไฟล์ปฏิบัติการเก่าที่กำหนดไว้สำหรับกองเศษซาก แต่ยังไม่มี มันขึ้นอยู่กับ libs บางตัวที่ถูกลบออกจากสภาพแวดล้อมของฉัน แต่ฉันมี Stub libs บางที่ที่มันใช้งานได้ดี Id ต้องการชี้ไฟล์ปฏิบัติการนี้ไปยัง Stub libs เหล่านี้ ใช่ฉันสามารถตั้งค่า LD_LIBRARY_PATH ได้ แต่ไฟล์ปฏิบัติการนี้ถูกเรียกใช้จากหลายสคริปต์และผู้ใช้จำนวนมากและฉันต้องการแก้ไขในจุดเดียว ฉันไม่มีแหล่งข้อมูลสำหรับสิ่งนี้และคงยากที่จะได้รับมัน ฉันคิดว่า - ฉันสามารถแก้ไขไฟล์นี้โดยใช้โปรแกรมแก้ไข ELF Awareness และเพิ่ม PATH แบบธรรมดาให้กับ rpath เพื่อให้มันเข้าสู่ libs ใหม่ได้หรือไม่ เป็นไปได้หรือไม่หรือเมื่อคุณสร้างไบนารี ELF คุณแก้ไขสิ่งต่าง ๆ ในสถานที่และไม่สามารถเคลื่อนย้ายได้?
96 linux  linker  elf 

7
C / C ++ พร้อม GCC: เพิ่มไฟล์ทรัพยากรลงในไฟล์ปฏิบัติการ / ไลบรารีแบบคงที่
ใครมีความคิดที่จะรวบรวมไฟล์ทรัพยากรใด ๆ แบบคงที่ในไฟล์ปฏิบัติการหรือไฟล์ไลบรารีที่แชร์โดยใช้ GCC ตัวอย่างเช่นฉันต้องการเพิ่มไฟล์รูปภาพที่ไม่มีวันเปลี่ยนแปลง (และถ้าเป็นเช่นนั้นฉันก็ต้องแทนที่ไฟล์อยู่ดี) และไม่ต้องการให้พวกเขาอยู่ในระบบไฟล์ ถ้าเป็นไปได้ (และฉันคิดว่าเป็นเพราะ Visual C ++ สำหรับ Windows ก็ทำได้เช่นกัน) ฉันจะโหลดไฟล์ที่เก็บไว้ในไบนารีของตัวเองได้อย่างไร? ไฟล์ปฏิบัติการแยกวิเคราะห์ค้นหาไฟล์และดึงข้อมูลออกมาหรือไม่ อาจมีตัวเลือกสำหรับ GCC ที่ฉันยังไม่เคยเห็น การใช้เครื่องมือค้นหาไม่ได้คายสิ่งที่ถูกต้องออกไป ฉันต้องการสิ่งนี้เพื่อใช้กับไลบรารีที่ใช้ร่วมกันและไฟล์ปฏิบัติการ ELF ปกติ ขอความช่วยเหลือใด ๆ

7
จะถอดฟังก์ชั่นเดียวโดยใช้ objdump ได้อย่างไร?
ฉันได้ติดตั้งไบนารีไว้ในระบบของฉันและต้องการดูการแยกชิ้นส่วนของฟังก์ชันที่กำหนด ควรใช้objdumpแต่วิธีแก้ปัญหาอื่น ๆ ก็ยอมรับได้เช่นกัน จากคำถามนี้ฉันได้เรียนรู้ว่าฉันอาจสามารถแยกส่วนของโค้ดออกได้หากฉันรู้เฉพาะที่อยู่ขอบเขตเท่านั้น จากคำตอบนี้ฉันได้เรียนรู้วิธีเปลี่ยนสัญลักษณ์การดีบักแบบแยกกลับเป็นไฟล์เดียว แต่ถึงแม้จะใช้งานกับไฟล์เดียวนั้นและแม้กระทั่งการแยกส่วนรหัสทั้งหมด (เช่นไม่มีที่อยู่เริ่มต้นหรือหยุด แต่เป็น-dพารามิเตอร์ธรรมดาถึงobjdump) ฉันก็ยังไม่เห็นสัญลักษณ์นั้นเลย ซึ่งสมเหตุสมผลตราบเท่าที่ฟังก์ชันที่เป็นปัญหาเป็นแบบคงที่ดังนั้นจึงไม่ถูกส่งออก อย่างไรก็ตามvalgrindจะรายงานชื่อฟังก์ชันดังนั้นจึงต้องจัดเก็บไว้ที่ใดที่หนึ่ง เมื่อดูรายละเอียดของส่วนการดีบักฉันพบชื่อนั้นที่กล่าวถึงใน.debug_strส่วนนี้ แต่ฉันไม่รู้จักเครื่องมือที่สามารถเปลี่ยนเป็นช่วงที่อยู่ได้

8
bcrypt ส่วนหัวเอลฟ์ไม่ถูกต้องเมื่อเรียกใช้แอปโหนด
ฉันกำลังทำโปรเจ็กต์ nodejs สำหรับโรงเรียน ฉันไม่สามารถติดตั้ง bcrypt ด้วย npm ได้ดังนั้นฉันจึงติดตั้ง bcrypt-nodejs และโครงการทำงานได้ดีเมื่อวานนี้ แต่วันนี้เมื่อฉันสร้าง "แอปโหนด" ฉันพบข้อผิดพลาดนี้: /.../node_modules/bcrypt/node_modules/bindings/bindings.js:79 throw e ^ Error: /.../node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at bindings (/.../node_modules/bcrypt/node_modules/bindings/bindings.js:74:15) at Object.<anonymous> (/.../node_modules/bcrypt/bcrypt.js:1:97) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at …
87 node.js  elf  bcrypt 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.