제한된 바이너리가 포함된 ARM CPU 기반 BusyBox v1.8.1(내장형 Linux)이 있습니다. 컬을 사용하지 않고 http 게시 또는 넣기를 수행하는 방법은 무엇입니까? 사용 가능한 wget이 있습니다.
# wget
BusyBox v1.8.1 (2015-04-06 16:22:12 IDT) multi-call binary
Usage: wget [-c|--continue] [-s|--spider] [-q|--quiet] [-O|--output-document file]
[--header 'header: value'] [-Y|--proxy on/off] [-P DIR]
[-U|--user-agent agent] url
Retrieve files via HTTP or FTP
Options:
-s Spider mode - only check file existence
-c Continue retrieval of aborted transfer
-q Quiet
-P Set directory prefix to DIR
-O Save to filename ('-' for stdout)
-U Adjust 'User-Agent' field
-Y Use proxy ('on' or 'off')
CPU 정보...
# cat /proc/cpuinfo
Processor : ARM926EJ-S rev 1 (v5l)
답변1
많은 것은 busybox 및 기타 명령의 내용에 따라 달라집니다. 나는 당신의 제한이 wget
작동하지 않을 것이라고 생각합니다 .단순한POST 요청은 cat
소켓을 열 수 있는 경우(예: nc
(netcat, socat) telnet
또는 전체 버전을 사용하여 bash
다음과 같이 연결할 수 있음)를 사용하여 시뮬레이션할 수 있습니다.
curl
요청을 실행하고 기록된 모든 데이터를 복사하는 다른 머신에서 . 예를 들어:
curl --trace-ascii - -0 -d var=val http://localhost/~meuh/dump.cgi
이는 보내는 컬 추적 출력에 표시됩니다.
POST /~meuh/dump.cgi HTTP/1.0
User-Agent: curl/7.37.0
Host: localhost
Accept: */*
Content-Length: 7
Content-Type: application/x-www-form-urlencoded
var=val
예를 들어 Google에 bash 스크립트를 사용하여 파일에 넣으면 POST를 재현할 수 있습니다.
#!/bin/bash
exec 5<>/dev/tcp/www.google.com/80
cat mypostfile >&5
cat <&5 # reply
\r\n
이는 줄 끝 부분에 너무 까다롭지 않은 소규모 데이터 및 서버에서만 작동할 수 있지만 사용자의 요구에 충분할 수 있습니다.
답변2
netcat
Buildroot에서는 많은 도구를 사용할 수 있습니다 (http://buildroot.uclibc.org/) 그런 다음 wget
장치에 다운로드하여 사용할 수 있습니다. 이것이 비슷한 상황에서 제가 하는 일입니다.
올바른 옵션을 설정하고 를 사용하여 해당 옵션에 액세스할 수 있습니다 make menuconfig
. 다음 옵션 페이지가 가장 중요할 수 있습니다(일반적으로 중요한 옵션은 으로 표시했습니다 !>
).
- 표적
│ ┌────────────────────────────────────────── ──── ───────────────────────┐ │ !>│ │ 대상 아키텍처(FOOBAR) ---> │ │ │ │ 대상 바이너리 형식(ELF) ---> │ │ !>│ │ 대상 아키텍처 변형(Gen42) ---> │ │ │ │ 대상 ABI(EABI) ---> │ │ │ │ 부동 소수점 전략(소프트 부동 소수점) ---> │ │ │ │ │ │
- 빌드 옵션
!> │ │ 라이브러리(정적 전용) ---> │ │ │ │ ($(CONFIG_DIR)/local.mk) 패키지 적용 범위 파일의 위치 │ │ │ │ () 글로벌 패치 디렉토리 │ │ │ │ 고급 ---> │ │ │ └─────────────────────────────────────────── ──── ─────────────────────────┘
- 도구 체인
│ ┌────────────────────────────────────────── ──── ───────────────────────┐ │ │ │ 툴체인 유형(Buildroot 툴체인) ---> │ │ │ │ (buildroot) 사용자 정의 도구 모음 공급업체 이름│ │ │ │ *** 커널 헤더 옵션*** │ │ !>│ │ 커널 헤더 파일(수동으로 지정된 Linux 버전) ---> │ │ !>│ │ (2.6.99) 리눅스 버전 │ │ !>│ │ 사용자 정의 커널 헤더 파일 시리즈(2.6.x) ---> │ │ │ │ C 라이브러리(uClibc) ---> │ │ │ │ *** uClibc 옵션*** │ │ !>│ │ uClibc C 라이브러리 버전(uClibc 0.9.33.x) ---> │ │
make toolchain
그런 다음 필요한 도구를 사용하여 툴체인을 구축합니다(예 make nc
: .