다른 Linux ARM에 없을 수있는 Android bionic
lib에 종속 될 수 있다는 점에 유의하십시오. 기호를 사용 readelf -Ss logwrapper
Symbol table '.dynsym' contains 47 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 FUNC GLOBAL DEFAULT UND __aeabi_unwind_cpp_pr0
2: 00000000 0 FUNC GLOBAL DEFAULT UND strlen
3: 00000000 0 FUNC GLOBAL DEFAULT UND __errno
4: 00000000 0 FUNC GLOBAL DEFAULT UND open
5: 00000000 0 FUNC GLOBAL DEFAULT UND close
6: 00000000 0 FUNC GLOBAL DEFAULT UND __stack_chk_fail
7: 00000000 0 OBJECT GLOBAL DEFAULT UND __stack_chk_guard
8: 00000000 0 FUNC GLOBAL DEFAULT UND pthread_mutex_unlock
9: 00000000 0 FUNC GLOBAL DEFAULT UND pthread_mutex_lock
10: 00000000 0 FUNC GLOBAL DEFAULT UND read
11: 00000000 0 FUNC GLOBAL DEFAULT UND abort
12: 00000000 0 OBJECT GLOBAL DEFAULT UND __sF
13: 00000000 0 FUNC GLOBAL DEFAULT UND memcpy
14: 00000000 0 FUNC GLOBAL DEFAULT UND __libc_init
15: 00000000 0 FUNC GLOBAL DEFAULT UND exit
16: 0000a170 0 NOTYPE GLOBAL DEFAULT 19 __dso_handle
17: 0000a008 0 NOTYPE GLOBAL DEFAULT 13 __INIT_ARRAY__
18: 0000a010 0 NOTYPE GLOBAL DEFAULT 14 __FINI_ARRAY__
19: 00000000 0 FUNC GLOBAL DEFAULT UND setgid
20: 00000000 0 FUNC GLOBAL DEFAULT UND writev
21: 00000000 0 FUNC GLOBAL DEFAULT UND dup2
22: 00000000 0 FUNC GLOBAL DEFAULT UND access
23: 00000000 0 FUNC GLOBAL DEFAULT UND __aeabi_unwind_cpp_pr1
24: 00000000 0 FUNC GLOBAL DEFAULT UND memmove
25: 00000000 0 FUNC GLOBAL DEFAULT UND fork
26: 00000000 0 FUNC GLOBAL DEFAULT UND execvp
27: 00000000 0 FUNC GLOBAL DEFAULT UND strncmp
28: 00000000 0 FUNC GLOBAL DEFAULT UND strcmp
29: 00000000 0 FUNC GLOBAL DEFAULT UND ptsname
30: 00000000 0 FUNC GLOBAL DEFAULT UND setuid
31: 00000000 0 FUNC GLOBAL DEFAULT UND strerror
32: 00000000 0 FUNC GLOBAL DEFAULT UND vsnprintf
33: 00000000 0 FUNC GLOBAL DEFAULT UND unlockpt
34: 00000000 0 FUNC GLOBAL DEFAULT UND wait
35: 00000000 0 FUNC GLOBAL DEFAULT UND fputs
36: 00009318 0 NOTYPE GLOBAL DEFAULT ABS __exidx_start
37: 00009368 0 NOTYPE GLOBAL DEFAULT ABS __exidx_end
38: 0000a15c 0 NOTYPE GLOBAL DEFAULT 18 __data_start
39: 0000a170 0 NOTYPE GLOBAL DEFAULT ABS _edata
40: 0000a170 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
41: 0000a170 0 NOTYPE GLOBAL DEFAULT ABS __bss_start__
42: 0000a188 0 NOTYPE GLOBAL DEFAULT ABS _bss_end__
43: 0000a188 0 NOTYPE GLOBAL DEFAULT ABS __bss_end__
44: 0000a188 0 NOTYPE GLOBAL DEFAULT ABS __end__
45: 0000a188 0 NOTYPE GLOBAL DEFAULT ABS _end
46: 00080000 0 NOTYPE GLOBAL DEFAULT ABS _stack
사용주의 사항
당신은 readelf -Ss binary_name
을 실행하여 기호있는 경우 볼 것을 확인할 수 있습니다, 예를 들어
는 그 기호를 확인하는 당신의 큐, 마지막으로 문제의 이 동적으로 런타임에 링크 된 세 개의 도서관, 일이 거기 readelf -d logwrapper
Dynamic section at offset 0x2020 contains 24 entries:
Tag Type Name/Value
0x00000003 (PLTGOT) 0xa0e8
0x00000002 (PLTRELSZ) 208 (bytes)
0x00000017 (JMPREL) 0x875c
0x00000014 (PLTREL) REL
0x00000011 (REL) 0x882c
0x00000012 (RELSZ) 16 (bytes)
0x00000013 (RELENT) 8 (bytes)
0x00000015 (DEBUG) 0x0
0x00000006 (SYMTAB) 0x8280
0x0000000b (SYMENT) 16 (bytes)
0x00000005 (STRTAB) 0x8570
0x0000000a (STRSZ) 490 (bytes)
0x00000004 (HASH) 0x8128
0x00000001 (NEEDED) Shared library: [libc.so]
0x00000001 (NEEDED) Shared library: [libstdc++.so]
0x00000001 (NEEDED) Shared library: [libm.so]
0x00000020 (PREINIT_ARRAY) 0xa000
0x00000021 (PREINIT_ARRAYSZ) 0x8
0x00000019 (INIT_ARRAY) 0xa008
0x0000001b (INIT_ARRAYSZ) 8 (bytes)
0x0000001a (FINI_ARRAY) 0xa010
0x0000001c (FINI_ARRAYSZ) 8 (bytes)
0x0000001e (FLAGS)
0x00000000 (NULL) 0x0
, 라이브러리는 libc.so
네이티브 C 및 Android 관점에서 볼 수 있으므로 먼저 확인하십시오.
ucLibC으로 보이는 다른 ARM libc.so
도 있습니다. 따라서 마일리지가 다를 수 있습니다. 볼 수있는 유일한 방법은 Linux ARM에서 실행하여 어떤 일이 발생 하는지를 세그먼테이션 오류 또는 버스 오류로 폭파하면 알 수 있습니다.
'./sopclient'로 실행 해 보셨습니까? 쉘 스크립트로 파일을 해석하려고 시도하는'sh'로 실행하려고하는 것 같습니다 (따라서 오류). – mdm
'./sopclient '로 실행하면 * -bash : ./sopclient : No such file or directory *가 표시됩니다. 하지만 sopclient가 현재 디렉토리에 있고 실행 가능합니다 – ov1d1u
시스템 라이브러리 문제 (/ system/lib의 안드로이드 라이브러리 및/system/bin의 링커로 수정할 수 있음) 이외에 프로그램이있을 가능성은 거의 없습니다 들어오고 나가는 인터페이스가 복제 할 수있는 인터페이스가 아니면 사용할 수 있습니다. 수신 측에서는 표준 네트워크 API를 사용할 수 있지만, 결과를 stdout 또는 파일에 덤프하지 않으면 나가는 쪽이 어려울 것입니다. –