Як я можу запустити програму із зміненим аргументом [0], використовуючи оболонку золи zasedbox?


2

В bashя б просто використовувати exec -a. Як я можу це зробити у зайнятій скриньці? Це навіть можливо, або мені доведеться писати власну програму C, щоб телефонувати exec(3)безпосередньо?


Де ви взяли бінарний файл зайнятих або як ви склали його? Він використовує хеш або попіл (який результат busybox sh --help)?
Жиль

Тут використовується зола. lalala
ali1234

@ ali1234 На ваше запитання відповіли?
phk

Відповіді:


1

Яка у вас версія зайнятої скриньки? Відповідно до https://git.busybox.net/busybox/tree/shell/ash.c, якщо один заглиблюється на execодин, може виникнути навколо рядка 9352 або близько наступного коду, який, як видається, підтримуєexec [-a customname] ...

execcmd(int argc UNUSED_PARAM, char **argv)
{
    optionarg = NULL;
    while (nextopt("a:") != '\0')
        /* nextopt() sets optionarg to "-a ARGV0" */;

    argv = argptr;
    if (argv[0]) {
        char *prog;

        iflag = 0;              /* exit on error */
        mflag = 0;
        optschanged();
        /* We should set up signals for "exec CMD"
         * the same way as for "CMD" without "exec".
         * But optschanged->setinteractive->setsignal
         * still thought we are a root shell. Therefore, for example,
         * SIGQUIT is still set to IGN. Fix it:
         */
        shlvl++;
        setsignal(SIGQUIT);
        /*setsignal(SIGTERM); - unnecessary because of iflag=0 */
        /*setsignal(SIGTSTP); - unnecessary because of mflag=0 */
        /*setsignal(SIGTTOU); - unnecessary because of mflag=0 */

        prog = argv[0];
        if (optionarg)
            argv[0] = optionarg;
        shellexec(prog, argv, pathval(), 0);

У мене є v1.25.1. Ця функція дуже відрізняється.
ali1234

@ ali1234 Тоді я думаю, що ваша зайнята скринька не має такої можливості.
Жиль

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