проста налаштування бінарної експлуатації


0

У мене встановлена ​​програма, яка перераховує файл таким чином:

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
        system("ls /challenge/binary/binary1/.passwd");
        return 0;
}

Що мені потрібно - це змусити програму розкрити вміст файлу, а не просто вказати його ім'я. Тому я спробував створити псевдонім, щоб змінити поведінку ls таким чином:

alias ls='cat'

але все-таки це не працює. Не могли б ви вказати мене в правильному напрямку!


1
Чому б не змінити system("lsшляхом system("cat? Чи намагаєтесь ви знайти спосіб зловживати програмою за допомогою системної команди, щоб зробити щось, чого не повинно робити?
M'vy

Відповіді:


3

Псевдоніми живуть лише на оболонці, яка їх визначила, і systemзапускає нову оболонку. Ця оболонка не буде читати ~/.bashrcчи інші файли, де зазвичай визначені псевдоніми: це лише інтерактивні оболонки. Деякі оболонки, але не всі, читають інший файл, але існує спосіб незалежного використання оболонки.

Шукати команди Shell намагаються наступні елементи в цьому порядку:

  • Псевдоніми - ні.
  • Функції - ні, з тієї ж причини.
  • Вбудовані - ні.
  • Команди в PATH- це має бути це за замовчуванням.

Тож працюйте над тим, щоб пошук програми lsв Інтернеті $PATHвідобразив catпрограму.


0

Змінити lsна cat.

lsперелічує каталоги, у них не відображаються файли. catробить це.


nop, це не питання! У мене складена версія встановленої програми, і я повинен змінити поведінку програми, щоб використовувати cat замість ls, не змінюючи встановлену програму
MedAli

2
Насправді, справедливістю до ультрапилової лопатки, xe відповів на запитання як написано. Ви не згадували про відсутність джерела. Дійсно, в цьому питанні , як ви запитали при умови джерела. Ви також не згадали, що намагаєтесь зламати чужу програму. Погана ультрапила не є телепатичною.
JdeBP

2
назва досить пояснювальна!
MedAli
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.