ທ່ານເອົາ proxychains ອອກຈາກຄຳສັ່ງ, ເລີ່ມມັນຄືນໃໝ່ ແລະ ຍັງເຫັນຂໍ້ຄວາມເລີ່ມຕົ້ນຂອງ wrapper. ກວດເບິ່ງສະພາບແວດລ້ອມການເລີ່ມກ່ອນຈະຊອກຫາການຕັ້ງຄ່າໃນແອັບ.

ໃນ Linux, LD_PRELOAD ຂໍໃຫ້ linker ແບບເຄື່ອນໄຫວໂຫຼດວັດຖຸຮ່ວມທີ່ກຳນົດໄວ້ກ່ອນ library ທຳມະດາ. wrapper proxy ສາມາດໃຊ້ກົນໄກນັ້ນເພື່ອດັກຈັບການເອີ້ນເຄືອຂ່າຍທີ່ຮອງຮັບ. ຖ້າໃຜສົ່ງອອກຕົວແປນັ້ນໃນ shell, ໂປຣແກຣມລູກຕໍ່ມາສາມາດສືບທອດມັນໄດ້ ເຖິງແມ່ນວ່າແຖວຄຳສັ່ງຂອງພວກມັນບໍ່ມີ prefix ຂອງ wrapper ກໍຕາມ.

ການກວດສອບແບບອ່ານຢ່າງດຽວຄັ້ງທຳອິດໃນ shell ນັ້ນແມ່ນ:

printf '%s\n' "$LD_PRELOAD"

ຊອກຫາ library ຂອງ wrapper proxy, ແຕ່ຮັກສາຄວາມເປັນໄປໄດ້ທີ່ຕົວແປອາດຈະລາຍຊື່ library ອື່ນທີ່ຖືກໂຫຼດໂດຍເຈຕະນາ. ການເອົາທຸກລາຍການອອກຢ່າງບໍ່ພິຈາລະນາອາດລົບກວນເຄື່ອງມືອື່ນ.

ປ່ຽນ launcher, ແລ້ວເລີ່ມໂປຣແກຣມຄືນໃໝ່

ລຶບການໂຫຼດ proxy ທີ່ເກີດຂຶ້ນໂດຍບໍ່ໄດ້ຕັ້ງໃຈອອກຈາກສະພາບແວດລ້ອມທີ່ເລີ່ມໂປຣແກຣມທີ່ໄດ້ຮັບຜົນກະທົບ. ຖ້າໄຟລ໌ເລີ່ມຕົ້ນ ຫຼື launcher ສົ່ງອອກມັນ, ແກ້ໄຂແຫຼ່ງນັ້ນດ້ວຍ. ສຳລັບການເລີ່ມ Bash, ໃຫ້ປະຕິບັດຕາມ ລຳດັບໄຟລ໌ເລີ່ມຕົ້ນ. ລູກໃໝ່ຂອງ shell ທີ່ສະອາດແມ່ນກໍລະນີຕ່າງຈາກລູກຂອງ terminal ຫຼື IDE ເກົ່າທີ່ຍັງຖືຕົວແປນັ້ນ.

ການຍົກເລີກຕົວແປສະພາບແວດລ້ອມບໍ່ໄດ້ຖອດ library ອອກຈາກ process ທີ່ເລີ່ມດ້ວຍມັນແລ້ວ. ດັ່ງນັ້ນແອັບທີ່ກຳລັງແລ່ນອາດຮັກສາ wrapper ໄວ້ຈົນກວ່າຈະເລີ່ມຄືນຜ່ານເສັ້ນທາງທີ່ແກ້ໄຂແລ້ວ.

ຖ້າຕົວແປບໍ່ມີ, ໃຫ້ກວດເບິ່ງແຫຼ່ງໂຫຼດກ່ອນອື່ນທີ່ຕັ້ງຄ່າໄວ້ ເຊັ່ນ /etc/ld.so.preload ແລະ launcher ຕົວຈິງ. ກົນໄກນີ້ມີຂີດຈຳກັດ: ໄຟລ໌ປະຕິບັດການແບບສະຖິດ, ການເອີ້ນລະບົບໂດຍກົງ ແລະ ຂໍ້ຈຳກັດການປະຕິບັດທີ່ປອດໄພ ອາດເຮັດວຽກຕ່າງກັນ. ກັບ sudo, ລຳດັບຂອງ wrapper ສຳຄັນ. ການໂຫຼດກ່ອນທີ່ສືບທອດມາອະທິບາຍການດັກຈັບທີ່ບໍ່ໄດ້ຄາດໝາຍ; ມັນບໍ່ແມ່ນຫຼັກຖານວ່າການຈະລາຈອນເຄືອຂ່າຍທຸກຊະນິດໃຊ້ proxy.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ