executablelarda qattiq kodli yo'llarni bekor qilish

"/ Usr/share/nmap /" kabi oldindan olingan kompilyatsiya qilinadigan dasturlarda saqlangan ba'zi qattiq kodlangan yo'llarni bekor qilmoqchiman va ularni boshqa katalogga yo'naltirishni xohlayman.

Mening ideal yechimim root privilegiyalarni talab qilmasligi kerak, shuning uchun simli aloqa yaratish yaxshi emas.

(Shuningdek, bu variantni qayta-qayta takrorlash)

1
Boshqa bir variant esa LD_PRELOAD yordamida kerakli funktsiyalarni bekor qilishdir.
qo'shib qo'ydi muallif Eric Platon, manba
Yo'q, men shunga o'xshash maqsadga ega bo'lgan libetc ga murojaat qilishingizni tavsiya qilaman (manba kodi qarash uchun juda oson, faqat bitta faylni boshqarish funktsiyasini bekor qilish kerak) . ordiluc.net/fs/libetc
qo'shib qo'ydi muallif Eric Platon, manba
@Chris Down Menga biron bir tayyor vositani taklif qila olasizmi?
qo'shib qo'ydi muallif Reshma, manba

5 javoblar

perl -pe 's:/usr/share/nmap/:/other/dir/nmap/:g
  ' /path/to/executable > new-executable

/other/dir/nmap should be the same length as /usr/share/nmap. You can pad with / characters if not:

perl -pe 's:/usr/share/nmap/:/other//////dir/:g
  ' /path/to/executable > new-executable

Yangi yo'l uzoq bo'lishi mumkin emas. Agar muammo bo'lsa, har doim /tmp da ssilkalarni yaratish imkoniyati mavjud.

4
qo'shib qo'ydi

Malumot @ slmning javoblari ...

Buni amalga oshirishning uchinchi usuli qayta ishlashni istagan bajariladigan narsalardan boshqa hamma narsa haqiqiy narsaga yo'naltirilgan executableni ishga tushirish uchun chroot qilingan virtual muhit yaratishi mumkin. Lekin bu juda murakkab.

Lekin manba kodini ushlab turish va qayta terish haqida maslahat beraman. (Yoki agar bu maxsus kod bo'lsa, etkazib beruvchini ba'zi maxsus fayllarni aylantirish uchun pul to'lash ...)

1
qo'shib qo'ydi
Qayta tiklash ba'zan do'zaxga bog'liqlik tufayli ba'zida og'riq bo'lishi mumkin, shuning uchun men sandbox echimiga ko'proq moyil bo'laman ...
qo'shib qo'ydi muallif Reshma, manba

Bu kabi narsalarni qaerga bajara olishingiz mumkinligini bilganimning 2 ta uslubi bor.

1-chi, bajariladigan faylga qattiq kodlangan joyda bog'lanishni yaratishni o'z ichiga oladi. Shuning uchun sizning namunangizda /usr/share/nmap/ manzilida siz istagan boshqa joyga qayta ishora qilish uchun havolani yaratish kerak bo'ladi. Bunday yondashuv ildiz imtiyozlarini talab qiladi va bu erda ramziy aloqalarni qo'llashni talab qiladi.

2-usul, oldindan tuzilgan dasturlarga kiradigan va jarroxlik bilan oldingi kompilyatsiya qilinganlar o'rniga o'z yo'llaringizga qo'shadigan ikkiliklarni o'zgartiradigan hexli tahrirlovchisini qo'llashni o'z ichiga oladi.

0
qo'shib qo'ydi

Avvalgi hayotda nima qildim? diqqat bilan ikkita bir tartibga solish vositasida (masalan, hexl-mode) foydalanib, strings (o'zgartirishni qisqartirish, nol belgilar bilan to'ldirish!) ning emacs/xemacs).

Agar bajarilayotgan faylda aniq yo'llar mavjud bo'lsa, ularni odatda muhit o'zgaruvchilari (TMPDIR, EDITOR/VISUAL yoki shunga o'xshash) yoki o'zgacha dalillarni berish orqali o'chirib qo'yish mumkin. Yo'l haqiqatda aniqlanganda, uning sababini so'rayman. Xavfsizlik yoki konfiguratsiya tushuntirishlari bo'lishi mumkin, chunki ularni bekor qilish kerak emas. Albatta, bu faqat laziness bo'lishi mumkin, lekin bu tarqatish tomonidan paketlangan dastur bilan bog'liq emas, va, ehtimol, vetted ...

0
qo'shib qo'ydi
ishlashi kerak. Barmoqlaringizni olib qo'yishda baribir kafolatni allaqachon bekor qiladi va mening sharhlarim faqat ijtimoiy veb-saytdagi (yarim) anonim hisoblardan iborat, shuning uchun shamolda faqat so'zlar ...
qo'shib qo'ydi muallif vonbrand, manba
mutlaqni nisbatan yo'llar bilan almashtira olamanmi? Aks holda, ba'zi qum qutisi echimini o'ylardim ...
qo'shib qo'ydi muallif Reshma, manba
Bu usulni biroz vaqt sarflash va 100% moslik o'rnatilmaganligi sababli, executable'ning ascii strings obfuscated, integrity checks va hokazo bo'lishi mumkin, shuning uchun uni oxirgi chora sifatida saqlayman ...
qo'shib qo'ydi muallif Reshma, manba

Men faqatgina bu ptrace asoslangan chroot reimplementation: PRoot ni topdik.

Birlashtiruvchi funktsiya faqat men qidiryapman!

Bu amalga oshiriladigan satrlarni o'zgartirishdan ko'ra ishonchli + skriptlarda osongina ishlatilishi mumkin ...

0
qo'shib qo'ydi