android上的Tcpdump跟踪 - 无法加载"/ system/bin/tcpdump"所需的库"libssl.so"

Kni*_*yNi 5 android linker-errors tcpdump adb libssl

我需要在我的Android设备上执行tcpdump跟踪.


我的设置:

将tcpdump文件推送到SD卡

adb push filepath/tcpdump /sdcard/tcpdump
Run Code Online (Sandbox Code Playgroud)

将文件复制到/ system/bin

为tcpdump文件授予root权限

adb shell
cd /system/bin
su
chmod 777 tcpdump
Run Code Online (Sandbox Code Playgroud)

从Google Play安装BUSYBOX

运行tcpdump trace

tcpdump -vv -s 0 -w /sdcard/filename.pcap
Run Code Online (Sandbox Code Playgroud)

我已经设法在三星Galaxy S4上做到了 - 它工作正常.但是,它不适用于我的三星Galaxy Tab.在tcpdump命令后我收到错误:

tcpdump
soinfo_link_image(linker.cpp:1635): could not load library "libssl.so" needed by
 "/system/bin/tcpdump"; caused by load_library(linker.cpp:761): not a valid ELF
executable: libssl.soCANNOT LINK EXECUTABLE
Run Code Online (Sandbox Code Playgroud)

两个设备都是root用户,并且它们具有相同的tcpdump配置.我 在/ system/lib /中有libssl.so

三星Galaxy S4

C:\Windows\System32>adb shell
shell@android:/ $ su
su
root@android:/ # cd system/bin
cd system/bin
root@android:/system/bin # tcpdump
tcpdump
tcpdump: WARNING: arptype 530 not supported by libpcap - falling back to cooked
socket
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on rmnet_usb0, link-type LINUX_SLL (Linux cooked), capture size 96 byt
es
Run Code Online (Sandbox Code Playgroud)

三星Galaxy Tab

C:\Windows\System32>adb shell
root@android:/ # su
su
root@android:/ # cd system/bin
cd system/bin
root@android:/system/bin # tcpdump
tcpdump
soinfo_link_image(linker.cpp:1635): could not load library "libssl.so" needed by
 "/system/bin/tcpdump"; caused by load_library(linker.cpp:761): not a valid ELF
executable: libssl.soCANNOT LINK EXECUTABLE
 255|root@android:/system/bin #
Run Code Online (Sandbox Code Playgroud)

Par*_*nda 5

http://www.kandroid.org/online-pdk/guide/tcpdump.html

它可能有用。

adb shell tcpdump -i any -p -s 0 -w /sdcard/capture.pcap

# "-i any": listen on any network interface
# "-p": disable promiscuous mode (doesn't work anyway)
# "-s 0": capture the entire packet
# "-w": write packets to a file (rather than printing to stdout)

... do whatever you want to capture, then ^C to stop it ...

adb pull /sdcard/capture.pcap .

sudo apt-get install wireshark  # or ethereal, if you're still on dapper
wireshark capture.pcap          # or ethereal
Run Code Online (Sandbox Code Playgroud)


Kni*_*yNi 0

解决方案

我通过将“libssl.so”和“libcrypto.so”从 Samsung Galaxy S4 复制到 Samsung Galaxy Tab 解决了问题。看起来效果很好。我不知道这一变化可能带来的负面影响。