Դուք հեռացնում եք proxychains-ը հրամանից, կրկին գործարկում այն և դեռ տեսնում եք փաթաթանի մեկնարկի հաղորդագրությունը։ Ստուգեք գործարկման միջավայրը նախքան հավելվածի կարգավորումը փնտրելը։

Linux-ում LD_PRELOAD-ը խնդրում է դինամիկ հղորդին բեռնել նշված համատեղ օբյեկտները սովորական գրադարաններից առաջ։ Proxy-փաթաթանները կարող են օգտագործել այդ մեխանիզմը՝ ընդհատելու աջակցվող ցանցային կանչերը։ Եթե ինչ-որ մեկը փոփոխականը արտահանել է shell-ում, ավելի ուշ զավակ ծրագրերը կարող են ժառանգել այն, նույնիսկ երբ նրանց հրամանի տողերը չեն պարունակում փաթաթանի նախածանց։

Այդ shell-ում առաջին միայն-ընթերցման ստուգումը սա է՝

printf '%s\n' "$LD_PRELOAD"

Փնտրեք proxy-փաթաթանի գրադարան, բայց պահպանեք հնարավորությունը, որ փոփոխականը թվարկում է նաև դիտավորյալ բեռնված այլ գրադարաններ։ Բոլոր գրառումները կուրորեն հեռացնելը կարող է խաթարել մեկ այլ գործիք։

Փոխեք գործարկիչը, ապա կրկին գործարկեք ծրագիրը

Մաքրեք պատահական proxy-նախաբեռնումը այն միջավայրից, որը գործարկում է տուժած ծրագիրը։ Եթե մեկնարկային ֆայլը կամ գործարկիչը արտահանում է այն, ուղղեք նաև այդ աղբյուրը։ Bash-ի գործարկումների համար հետևեք մեկնարկային ֆայլերի հերթականությանը։ Մաքուր shell-ի նոր զավակը տարբեր դեպք է, քան հին տերմինալի կամ IDE-ի զավակը, որը դեռ պահում է փոփոխականը։

Միջավայրի փոփոխականը վերացնելը չի բեռնաթափում գրադարանն արդեն դրանով սկսված գործընթացից։ Այդ պատճառով աշխատող հավելվածը կարող է պահել փաթաթանը, մինչև այն կրկին գործարկվի ուղղված գործարկման ուղով։

Եթե փոփոխականը բացակայում է, ուսումնասիրեք այլ կարգավորված նախաբեռնման աղբյուրներ, ինչպիսին է /etc/ld.so.preload-ը, և իրական գործարկիչը։ Մեխանիզմն ունի սահմաններ՝ ստատիկ կատարվող ֆայլերը, ուղիղ համակարգային կանչերը և անվտանգ կատարման սահմանափակումները կարող են այլ կերպ վարվել։ sudo-ի դեպքում փաթաթանի հերթականությունը կարևոր է։ Ժառանգված նախաբեռնումը բացատրում է անսպասելի ընդհատումը, բայց ապացույց չէ, որ ցանցային ամբողջ երթևեկությունն օգտագործում է proxy-ն։

Առնչվող հոդվածներ