ນີ້ແມ່ນຄໍາສັ່ງ scanelf ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍສະຖານີເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
scanelf - user-space utility ເພື່ອສະແກນໄຟລ໌ ELF
ສະຫຼຸບສັງລວມ
scanelf [ທາງເລືອກໃນການ] ELFs or ໄດເລກະທໍລີ
ລາຍລະອຽດ
scanelf ເປັນອຸປະກອນພື້ນທີ່ຜູ້ໃຊ້ເພື່ອສະແກນ ELFs, ໄດເລກະທໍລີ, ຫຼືລະບົບທົ່ວໄປ
ເສັ້ນທາງສໍາລັບຂໍ້ມູນທີ່ແຕກຕ່າງກັນ. ນີ້ອາດຈະປະກອບມີປະເພດ ELF, ເຄື່ອງຫມາຍ PaX ຂອງເຂົາເຈົ້າ, TEXTRELs,
etc
OPTIONS
-A, --ຮວບຮວມ
ສະແກນແຟ້ມຈັດເກັບ (.a ໄຟລ໌)
-a, --ທັງໝົດ
ພິມຂໍ້ມູນທີ່ເປັນປະໂຫຍດ/ງ່າຍດາຍທັງໝົດ
-B, --nobanner
ຢ່າສະແດງສ່ວນຫົວ
-b, -- ຜູກມັດ
ພິມຂໍ້ມູນການຜູກມັດສັນຍາລັກ (lazy ຫຼືດຽວນີ້)
-D, --endian
ພິມ ELF endianness (ໃຫຍ່/ນ້ອຍ/...)
-E, --ປະເພດ ETYPE
ພິມສະເພາະໄຟລ໌ ELF ທີ່ກົງກັບປະເພດທີ່ລະບຸ (ເຊັ່ນ: ET_DYN, ET_EXEC, ແລະອື່ນໆ...)
-e, --ຫົວ
ພິມເຄື່ອງໝາຍ GNU_STACK
-F, -- ຮູບແບບ ຮູບແບບ
ໃຊ້ຮູບແບບທີ່ລະບຸໄວ້ສໍາລັບຜົນຜະລິດ; ເບິ່ງ ຮູບແບບ ສ່ວນ ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ
-f, --ຈາກ ເອກະສານ
ອ່ານກະແສການປ້ອນຂໍ້ມູນຈາກຊື່ໄຟລ໌ທີ່ລະບຸ
-g, --gmatch
ໃຊ້ strncmp ເພື່ອຈັບຄູ່ຫ້ອງສະຫມຸດ (ໃຊ້ກັບ -N). ຫຼື regexp ກັບສັນຍາລັກທີ່ກົງກັນ
-h, - ຊ່ວຍ
ສະແດງໃຫ້ເຫັນການນໍາໃຊ້ condensed ແລະອອກ
-I, --osabi
ພິມ OSABI
-i, --interp
ພິມຂໍ້ມູນນາຍພາສາ (.interp/PT_INTERP)
-k, --ພາກ SECTION
ຊອກຫາ ELFs ດ້ວຍພາກສ່ວນທີ່ລະບຸ. ອາດຈະຖືກລະບຸຫຼາຍຄັ້ງເພື່ອໃຫ້ກົງກັນ
ຫຼາຍພາກສ່ວນພ້ອມກັນ. ເບິ່ງ SECTION ການສົນທະນາ ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
-L, --ldcache
ໃຊ້ຂໍ້ມູນ ld.so.cache (ໃຊ້ກັບ -r/-n)
-l, --ldpath
ສະແກນໄດເລກະທໍລີທັງໝົດໃນ /etc/ld.so.conf
-M, --ບິດ ກະຕ່າ
ພິມສະເພາະໄຟລ໌ ELF ທີ່ກົງກັບຕົວເລກທີ່ລະບຸ (ເຊັ່ນ: 32/64)
-m, --mount
ຢ່າຂ້າມຈຸດຕິດຄ້າງຊ້ຳໆ
-N, - SONAME
ຊອກຫາ ELF ທີ່ຕ້ອງການ SONAME ທີ່ລະບຸ. ອາດຈະຖືກລະບຸຫຼາຍຄັ້ງເພື່ອໃຫ້ກົງກັນ
ຫຼາຍ SONAMEs ພ້ອມກັນ. ເບິ່ງ SONAME ການສົນທະນາ ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
-n, -- ຕ້ອງການ
ຫໍສະໝຸດການພິມ ELF ຖືກເຊື່ອມຕໍ່ (DT_NEEDED)
-O, --perms PERMS
ພິມສະເພາະໄຟລ໌ ELF ທີ່ມີການຈັບຄູ່ເລກຖານແປດ (ເຊັ່ນ 755)
-o, --file ເອກະສານ
ຂຽນ output stream ກັບຊື່ໄຟລ໌ທີ່ລະບຸ
-p, --ເສັ້ນທາງ
ສະແກນໄດເລກະທໍລີທັງໝົດໃນສະພາບແວດລ້ອມ PATH
-q, --ງຽບ
ພຽງແຕ່ເອົາສິ່ງທີ່ 'ບໍ່ດີ' ອອກມາ
-R, - ການຮວບຮວມ
ສະແກນໄດເລກະທໍລີແບບ recursively
-r, --rpath
ພິມເສັ້ນທາງແລ່ນເຂົ້າລະຫັດໃນ ELF (DT_RPATH/DT_RUNPATH)
-S, --ຊື່
ພິມຊື່ຫ້ອງສະໝຸດທີ່ແບ່ງປັນຂອງ ELF (DT_SONAME)
-s, --ສັນຍາລັກ SYMBOL
ຊອກຫາສັນຍາລັກທີ່ລະບຸ; ເບິ່ງ SYMBOL ການສົນທະນາ ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ
-T, --textrels
ຊອກຫາສາເຫດຂອງ TEXTRELs ຜ່ານ objdump
-t, --textrel
ພິມຂໍ້ມູນ TEXTREL
-V, - ການປ່ຽນແປງ
ສະບັບພິມແລະອອກ
-v, -- verbose
ເປັນ verbose (ສາມາດໃຊ້ໄດ້ຫຼາຍກວ່າຫນຶ່ງຄັ້ງ)
-X, --ແກ້ໄຂ
ພະຍາຍາມແລະ 'ແກ້ໄຂ' ສິ່ງທີ່ບໍ່ດີ (ໃຊ້ກັບ -r/-e)
-x, --pax
ພິມເຄື່ອງໝາຍ PaX
-Y, --ອີບີ
ພິມ EABI (ສະເພາະແຕ່ບາງສະຖາປັດຕະຍະກໍາ)
-y, --symlink
ຢ່າສະແກນ symlinks
-Z, --ຂະໜາດ ຫລືຂະຫຍາຍໂຕ
ພິມຂະໜາດໄຟລ໌ ELF
-z, --setpax ດອກໄມ້
ຕັ້ງ EI_PAX/PT_PAX_FLAGS ເປັນທຸງທີ່ລະບຸໄວ້ (ໃຊ້ກັບ -Xx)
--use-ldpath
ໃຊ້ເສັ້ນທາງ ld.so.conf ເພື່ອຊອກຫາເສັ້ນທາງເຕັມໄປຫາຫ້ອງສະໝຸດ (ໃຊ້ຮ່ວມກັບ
--ຕ້ອງການ).
-- ຮາກ PATH
ຄົ້ນຫາຕົ້ນໄມ້ຮາກທີ່ລະບຸໄວ້ແທນທີ່ຈະເປັນ /. ໂດຍທົ່ວໄປແລ້ວຄູ່ກັບທາງເລືອກເຊັ່ນ -l ຫຼື
- ປ. ນີ້ implicitly ປະຕິບັດທຸກເສັ້ນທາງທີ່ລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງເປັນພີ່ນ້ອງກັບ
ຮາກ, ສະນັ້ນໃຫ້ແນ່ໃຈວ່າຈະລະເວັ້ນມັນຖ້າທ່ານມີລາຍຊື່ ELFs ຢ່າງຈະແຈ້ງ.
ຮູບແບບ
ສະຕຣິງຮູບແບບແມ່ນຄ້າຍຄືກັບສະຕຣິງ printf ໃນທີ່ມັນເປັນສາຍອັກສອນທີ່ມີທຸງ
ການຮ້ອງຂໍຂໍ້ມູນທີ່ແຕກຕ່າງກັນ. ຕົວຢ່າງ, ທ່ານສາມາດນໍາໃຊ້ສະຕຣິງຮູບແບບແລະຄາດຫວັງ
ຜົນໄດ້ຮັບຕໍ່ໄປນີ້.
# scanelf -BF "ໄຟລ໌ %f ຕ້ອງການ %n; ເວລາມ່ວນ" / bin / bash
ໄຟລ໌ bash ຕ້ອງການ libncurses.so.5,libdl.so.2,libc.so.6; ທີ່ໃຊ້ເວລາ funky
ໃຫ້ສັງເກດວ່າເມື່ອທ່ານໃຊ້ສະຕຣິງຮູບແບບ, ໂດຍທົ່ວໄປແລ້ວຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບທຸງຄວນຈະເປັນ
ຖືກລະເວັ້ນ. ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ທ່ານບໍ່ຕ້ອງການທີ່ຈະພະຍາຍາມແລະຮ້ອງຂໍໃຫ້ມີຜົນຜະລິດ (.-n) ແລະພະຍາຍາມ
ລະບຸຮູບແບບຜົນຜະລິດໃນເວລາດຽວກັນຍ້ອນວ່າການດໍາເນີນການເຫຼົ່ານີ້ແມ່ນສະເພາະເຊິ່ງກັນແລະກັນ. ແຕ່ລະ
ທຸງທີ່ກ່ຽວຂ້ອງກັບຂໍ້ມູນມີຕົວລະບຸການແປງທຽບເທົ່າ, ສະນັ້ນໃຫ້ໃຊ້ພວກມັນແທນ. ເຈົ້າ
ແນ່ນອນສາມາດສືບຕໍ່ນໍາໃຊ້ທຸງທີ່ກ່ຽວຂ້ອງທີ່ບໍ່ແມ່ນຂໍ້ມູນ (ເຊັ່ນ: -- verbose).
ມີສາມຕົວອັກສອນທີ່ແນະນໍາຕົວກໍານົດການແປງ.
· % - ແທນທີ່ມີຂໍ້ມູນ
· # - ການແຂ່ງຂັນ boolean ງຽບ
· + - ການແຂ່ງຂັນຄໍາເວົ້າ
ແລະມີຈໍານວນຕົວກໍານົດການແປງ. ພວກເຮົາພະຍາຍາມຈັບຄູ່ຕົວລະບຸກັບ
ທາງເລືອກທີ່ສອດຄ້ອງກັນ.
· a - ປະເພດເຄື່ອງຈັກ (EM).
· b - ຜູກທຸງ
· e - ຫົວຂໍ້ໂຄງການ
· D - endian
· I - osabi
· Y - ອີບີ
· F - ຊື່ໄຟລ໌ຍາວ
· f - ຊື່ໄຟລ໌ສັ້ນ
· i - ສຳພາດ
· k - ພາກ
· M - ຫ້ອງຮຽນ EI
· N - ຕ້ອງການລະບຸໄວ້
· n - ຫ້ອງສະຫມຸດທີ່ຈໍາເປັນ
· p - ຊື່ໄຟລ໌ (ລົບການຄົ້ນຫາ)
· o - ປະເພດ
· O - perms
· r - ເສັ້ນທາງແລ່ນ
· S - SONAME
· s - ສັນຍາລັກ
· T - textrels ທັງຫມົດ
· t - ສະຖານະພາບ textrel
· x - ທຸງ pax
SYMBOL ການສົນທະນາ
ສະຕຣິງທີ່ລະບຸເອົາແບບຟອມ [%[ຕົວປັບປ່ຽນ]%][[+-] ຊື່>][,[.....]].
ຖ້າ ສັນຍາລັກ ຊື່ ຫວ່າງເປົ່າ, ຫຼັງຈາກນັ້ນສັນຍາລັກທັງຫມົດແມ່ນກົງກັນ.
ຖ້າ ສັນຍາລັກ ຊື່ ເປັນໂລກ ("*"), ຫຼັງຈາກນັ້ນ, ສັນຍາລັກທັງຫມົດແມ່ນ dumped ໃນຮູບແບບ debug. ຫ້າມ
ອີງໃສ່ໂຄງສ້າງຂອງຜົນຜະລິດນີ້ຍ້ອນວ່າມັນປ່ຽນແປງທຸກຄັ້ງທີ່ພວກເຮົາຮູ້ສຶກຄືກັບມັນ.
ຖ້າຕົວອັກສອນທໍາອິດຂອງຊື່ສັນຍາລັກແມ່ນບວກ ("+"), ຫຼັງຈາກນັ້ນພຽງແຕ່ກົງກັບສັນຍາລັກທີ່ກໍານົດໄວ້. ຖ້າຫາກວ່າ
ມັນເປັນລົບ ("-"), ພຽງແຕ່ກົງກັບສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດ. ເມື່ອພວກເຮົາເວົ້າວ່າ "ກໍານົດ", ພວກເຮົາຫມາຍຄວາມວ່າ
ສັນຍາລັກແມ່ນກໍານົດໃນ ELF vs ມີການອ້າງອີງພາຍນອກ.
ການວາງຕົວດັດແປງລະຫວ່າງເຄື່ອງຫມາຍເປີເຊັນ ("%") ອະນຸຍາດໃຫ້ມີການກັ່ນຕອງໃນຄວາມເລິກຫຼາຍຂຶ້ນ.
ມີກຸ່ມຂອງຕົວດັດແປງ. ຖ້າຫາກວ່າທ່ານບໍ່ໄດ້ລະບຸສະມາຊິກຂອງກຸ່ມ, ຫຼັງຈາກນັ້ນທຸກປະເພດໃນ
ກຸ່ມນັ້ນຖືກຈັບຄູ່.
· ສຕ ກຸ່ມ (ປະເພດສັນຍາລັກ)
· n - STT_NOTYPE
· o - STT_OBJECT
· f - STT_FUNC
· F - STT_FILE
· ສ ກຸ່ມ (ການຜູກມັດສັນຍາລັກ)
· l - STB_LOCAL
· g - STB_GLOBAL
· w - STB_WEAK
· STV ກຸ່ມ (ການສັງເກດເຫັນສັນຍາລັກ)
· p - STV_DEFAULT
· i - STV_INTERNAL
· h - STV_HIDDEN
· P - STV_PROTECTED
· NHS ກຸ່ມ (ສ່ວນຫົວ)
· d - ກໍານົດ
· u - SHN_UNDEF
· a - SHN_ABS
· c - SHN_COMMON
ທ່ານສາມາດຄົ້ນຫາສໍາລັບສັນຍາລັກຫຼາຍອັນພ້ອມກັນໂດຍການນໍາໃຊ້ເຄື່ອງຫມາຍຈຸດ (",") ແຍກ
ການຄົ້ນຫາທີ່ແຕກຕ່າງກັນ. ທຸກໆສັນຍາລັກທີ່ກົງກັນຈະຖືກສະແດງໃນຂະນະທີ່ສັນຍາລັກທີ່ບໍ່ກົງກັນ
ຈະບໍ່.
ELF ປະເພດ
ທ່ານສາມາດແຄບການຄົ້ນຫາຂອງທ່ານໂດຍການລະບຸປະເພດໄຟລ໌ວັດຖຸ ELF (ETYPE). ເສັ້ນຄໍາສັ່ງ
ທາງເລືອກເອົາຄ່າຕົວເລກແລະຫຼືປະເພດສັນຍາລັກ. ຫຼາຍຄ່າສາມາດຖືກສົ່ງຜ່ານເຄື່ອງໝາຍຈຸດ
ແຍກ. ຕົວຢ່າງ -E ET_EXEC,ET_DYN,1
ນີ້ແມ່ນບັນຊີລາຍຊື່ປົກກະຕິທີ່ມີຢູ່ເພື່ອຄວາມສຸກຂອງເຈົ້າ. ທ່ານແນ່ນອນແມ່ນບໍ່ເສຍຄ່າເພື່ອກໍານົດໃດໆ
ຄ່າຕົວເລກທີ່ທ່ານຕ້ອງການ.
· 0 - ET_NONE - ປະເພດທີ່ບໍ່ຮູ້ຈັກ
· 1 - ET_REL - ໄຟລ໌ທີ່ສາມາດຍ້າຍໄດ້
· 2 - ET_EXEC - ໄຟລ໌ປະຕິບັດໄດ້
· 3 - ET_DYN - ວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ
· 4 - ET_CORE - ໄຟລ໌ຫຼັກ
ELF ກະຕ່າ
ນອກນັ້ນທ່ານຍັງສາມາດແຄບການຊອກຫາຂອງທ່ານໂດຍການລະບຸ bitsize ELF. ອີກເທື່ອຫນຶ່ງ, ລະບຸຕົວເລກ
ມູນຄ່າຫຼືສັນຍາລັກທີ່ກໍານົດ.
· 32 - ELFCLASS32 - 32 ບິດ ELFs
· 64 - ELFCLASS64 - 64 ບິດ ELFs
SECTION ການສົນທະນາ
A ! ຄໍານໍາຫນ້າຈະສະແດງພຽງແຕ່ຂອງ ELF ທີ່ບໍ່ມີສ່ວນທີ່ກໍານົດໄວ້.
ຕ້ອງການ SONAME ການສົນທະນາ
A ! ຄໍານໍາຫນ້າຈະສະແດງພຽງແຕ່ຂອງ ELF ທີ່ບໍ່ຂຶ້ນກັບຫ້ອງສະຫມຸດທີ່ກໍານົດໄວ້.
ເຮືອນ
http://hardened.gentoo.org/pax-utils.xml
ການລາຍງານ ບັກ
ກະລຸນາປະກອບມີຂໍ້ມູນຫຼາຍເທົ່າທີ່ເປັນໄປໄດ້ (ໂດຍການນໍາໃຊ້ທາງເລືອກການແກ້ໄຂບັນຫາໃດຫນຶ່ງ) ແລະ
ສົ່ງບົດລາຍງານ bug ກັບການບໍາລຸງຮັກສາ (ເບິ່ງ AUTHORS ພາກ). ກະລຸນາໃຊ້ Gentoo
bugzilla ຢູ່ http://bugs.gentoo.org/ ຖ້າເປັນໄປໄດ້.
ໃຊ້ scanelf ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net