จะค้นหาและแสดงรายการสแตติกไลบรารีที่ใช้โดยซอฟต์แวร์ใน Linux ได้อย่างไร?


3

พื้นหลัง : เรามีผู้ผลิตซอฟต์แวร์บุคคลที่สามสำหรับการกระจาย Linux lubuntuของเราที่เรากำลังทดสอบบน เรามีไฟล์การติดตั้งและinstall.shเชลล์สคริปต์ที่ติดตั้งไบนารีที่จำเป็นสำหรับซอฟต์แวร์ในไดเรกทอรีที่ถูกต้อง

เราต้องการพิจารณาว่ามีการใช้ห้องสมุดแบบคงที่ใดในซอฟต์แวร์นี้

สิ่งที่เราได้ทำไปแล้ว : เรามองlddแต่มันจะแสดงรายการไลบรารีที่แชร์หรือไดนามิกเท่านั้น objdumpเช่นเดียวกันกับ เราเคยstringsดูสตริงที่ซ่อนอยู่ในไบนารีเหล่านี้เพื่อดูสัญญาณของหมายเลขรุ่นห้องสมุดและเช่นนั้น แต่นี่เป็นกระบวนการที่ใช้เวลานานและไม่มีประสิทธิภาพสำหรับไบนารีขนาดใหญ่

คำถาม : เราจะค้นหาและแสดงรายการสแตติกไลบรารีที่ใช้ในซอฟต์แวร์ภายใต้สภาพแวดล้อม Linux ได้อย่างไร?


หากผู้ขายนำข้อมูลการเชื่อมโยงทั้งหมดออกจากไบนารีผลลัพธ์คุณจะไม่สามารถทำได้ อย่างไรก็ตามgccมักจะออกจากข้อมูลบางอย่าง ขั้นตอนแรกคือการดูส่วนที่มีอยู่ในไบนารีด้วยobjdump -afh /your/fileโปรดแก้ไขคำถามด้วยผลลัพธ์
dirkt

เมื่อพิจารณาถึงสิ่งที่คุณได้ลองไปแล้วคุณต้องทำReverse Engineeringทั้งหมด นอกจากนี้คุณจะได้รับข้อมูลที่เป็นประโยชน์บางส่วนหรือใด ๆ กับreadelf ขอให้โชคดี!
C0deDaedalus

คำตอบ:


0

เราจะค้นหาและแสดงรายการสแตติกไลบรารีที่ใช้ในโปรแกรม Linux ได้อย่างไร?

ldd <exe filename> แสดงไลบรารีที่เชื่อมโยงแบบไดนามิก

nm <exe filename> แสดงสัญลักษณ์ในไฟล์

เพื่อดูว่าสัญลักษณ์มาจากห้องสมุดคงต้องทำงานnm กับห้องสมุดเหล่านั้นจะได้รับรายชื่อของสัญลักษณ์ (ฟังก์ชั่นอื่น ๆ ) nm <exe filename>ในพวกเขาแล้วเปรียบเทียบพวกเขากับสิ่งที่รายการของคุณของสัญลักษณ์จาก

คุณเปรียบเทียบรายการกับcommคำสั่ง ดูman commรายละเอียดที่

นี้ถูกนำมาจากฟอรั่มนี้ที่นี่

แหล่งที่มารับรายการของไลบรารีแบบคงที่ที่ใช้ในการปฏิบัติการตอบโดยDrAl


nmบอกว่า "ไม่มีสัญลักษณ์" สำหรับไบนารีทั้งหมดที่เราได้ลองใช้กับซอฟต์แวร์จนถึงตอนนี้
learnerX

ในฐานะที่เป็นความเห็นเกี่ยวกับคำตอบนั้นบอกว่า: "ถ้ามันเป็นเลขฐานสองที่ไม่รู้จักเราก็ไม่รู้ว่ามีห้องสมุดอะไรอยู่ดังนั้น" การใช้ nm กับห้องสมุดเหล่านั้น "ฟังดูเป็นการเอาชนะตนเอง"
learnerX

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