wpa_supplicant / WiFi Direct: команда wpa_cli p2p_find возвращает FAIL

Это немного похоже на взлом, но вы можете предварительно загрузить немного кода C в качестве прокладки, чтобы перехватить вызов exit (126) и получить его выдает сигнал SIGSTOP группе процессов, который приостанавливает процесс (и его родителей в той же группе).

Например, если мы перехватили код выхода 2 в нашей оболочке оболочки, запустите ls для несуществующего файла:

LD_PRELOAD=/home/meuh/shim_exit.so bash -c ' sh -c "ls -l xxx; echo"; echo '

он отобразит в фоновом режиме сообщение

[1]+  Stopped  ...

, и вы сможете увидеть процессы в статусе T wait:

~ $ ps f
  PID TTY      STAT   TIME COMMAND
30528 pts/3    T      0:00  \_ bash -c sh -c "ls -l xxx;echo";echo
30529 pts/3    T      0:00  |   \_ sh -c ls -l xxx;echo
30530 pts/3    T      0:00  |       \_ ls -l xxx

На этом этапе вы можете подключиться к процессам, если они являются отлаживаемыми, или просто передний план или SIGCONT процессы для продолжения.

Вот код shim_exit.c, см. Комментарий C для компиляции.

/*
 * capture calls to a routine and replace with your code
 * http://unix.stackexchange.com/a/308694/119298
 * gcc -Wall -O2 -fpic -shared -ldl -o shim_exit.so shim_exit.c
 * LD_PRELOAD=/home/meuh/shim_exit.so ./test
 */
#define _GNU_SOURCE /* needed to get RTLD_NEXT defined in dlfcn.h */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
#include <dlfcn.h>
/* doesnt work for syscall exit_group() */
void exit(int status){
    static void (*real_exit)(int status) = NULL;

    if (!real_exit) {
        real_exit = dlsym(RTLD_NEXT, "exit");
        char *error = dlerror();
        if (error != NULL) {
            fprintf(stderr, "%s\n", error);
            _exit(1);
        }
    }
    if (status==126/* || status==2*/)kill(0,SIGSTOP);
    real_exit(status);
}
3
01.06.2017, 15:06
1 ответ

Из вывода iw: драйвер с открытым исходным кодом brcmfmac не поддерживает P2P режим.

Поддерживаемый режим:

Supported interface modes:
         * IBSS
         * managed
         * AP
         * AP/VLAN
         * monitor

Поддержка P2P отмечена как unknown на wikidev

Supported modes

STA (Station) mode: supported
IBSS (Ad-Hoc) mode: supported
AP (Master) mode: unsupported
Mesh (802.11s) mode: unsupported
P2P mode: unknown
Monitor mode: supported
Packet injection: unknown
0
27.01.2020, 21:35

Теги

Похожие вопросы