作者skycat2216 (skycat2216)
看板Linux
标题[问题] bash看的到却执行不了
时间Fri Aug 21 17:35:41 2020
https://imgur.com/1ic1J6Y
环境:TermUX
Bash版本:5.0.11-1
这真的是要求救了
--
Sent from my WDNMD
○ PiTT
// PHJCI
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.136.70.145 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1598002543.A.3BD.html
1F:推 filiaslayers: 下个ls -al看一下资讯08/21 17:50
2F:→ CMJ0121: 档名手打的还是用 autocomplete? 档案名称可能有能搞你08/21 17:54
autocomplete也还是回一样的讯息
3F:→ CMJ0121: 最简单就是档名後面有空白08/21 17:55
4F:→ OSDBNetwork: 大小写?08/21 18:26
5F:推 r2tw: ldd file 看一下?08/21 18:43
ldd pixilang_linux_arm64
libX11.so.6
libpthread.so.0
libstdc++.so.6
libasound.so.2
libm.so.6
libdl.so.2
libSDL-1.2.so.0
libc.so.6
这样算是正常吗?
6F:→ ketrobo: 目录对吗?08/21 19:11
7F:→ newversion: find . -name filename -exec './{}' \;08/21 21:19
8F:推 aeolus0829: 你进了几次 bin ? pwd 确认一下位置08/21 22:47
确认过了,没有问题
9F:推 akasan: ldd 看看 可能是缺 library08/21 23:43
10F:推 rickieyang: 最後的bin跟前面的bin不同一个?执行前ls 一下看看08/22 10:30
※ 编辑: skycat2216 (101.137.96.142 台湾), 08/22/2020 12:31:52
11F:推 Bencrie: uname -a 看一下 08/22 13:26
$ uname -a
Linux localhost 3.10.61-g856fbd9 #1 SMP PREEMPT Thu Dec 13 16:19:33 CST 2018 aar
ch64 Android
是这样吗?
※ 编辑: skycat2216 (101.137.96.142 台湾), 08/22/2020 22:52:06
12F:推 holishing: 感觉你拿到的 binary 不是编给 Termux 这个环境用的08/23 03:20
13F:推 holishing: 如果碰不到 source code 联络不到开发者, 看你要建立08/23 03:24
14F:→ holishing: 类似 chroot 的环境还是用 linux deploy 在 Android 跑08/23 03:25
15F:→ holishing: 完整 Linux 发行版环境,只是不知道有没有必要 root08/23 03:26
我以为环境之间顶多只有指令集跟一些细项的差别
到最後我是用AnLinux直接把Kali部署在TermUX上才能动,Linux Depoly要Root,玩不起。
而TermUX的chroot没有用
不过我接下来得要先思考这个CLI版的Pixitracker怎麽用了
16F:推 lecheck: 前面加sh试看看08/23 07:55
17F:→ OrzOGC: 我在旧平版上跑userland+debian当server,电喷很快...08/23 09:57
18F:推 Bencrie: ldd 看得到东西应该不是 shell script 啊08/23 12:49
这东西的确不是Shell script
※ 编辑: skycat2216 (101.137.153.162 台湾), 08/23/2020 19:26:46
19F:推 dces4212: 档案确实存在没错,但他说的找不到是指缺library 08/23 19:57
20F:推 filiaslayers: 缺lib也不会显示档案不在吧,你不会用file看一下吗08/24 10:39
21F:→ filiaslayers: 叫你用ls -al你也不要,不知道冲三小08/24 10:39
很抱歉,但我其实已经有用过了,不过当时没有将相关资讯贴上来而已
22F:推 Bencrie: 我自己遇到不只一次,但是每次都想不起来怎麽解的 XD08/24 12:34
我这次的解法比较偏锋一点就是了XD
※ 编辑: skycat2216 (101.137.193.59 台湾), 08/24/2020 19:07:48
23F:推 rickieyang: 所以不能再委屈一点,再 ls 一次贴结果上来吗?08/24 22:01
ls -al的结果
total 5544
drwx------ 2 u0_a353 u0_a353 4096 Aug 25 10:20 .
drwx------ 7 u0_a353 u0_a353 4096 Aug 25 10:20 ..
-rwx------ 1 u0_a353 u0_a353 1296008 Aug 25 10:20 pixilang_linux_arm64
-rwx------ 1 u0_a353 u0_a353 1150472 Aug 25 10:20 pixilang_linux_arm_armhf
-rwx------ 1 u0_a353 u0_a353 1694136 Aug 25 10:20 pixilang_linux_x86
-rwx------ 1 u0_a353 u0_a353 1506752 Aug 25 10:20 pixilang_linux_x86_64
24F:推 smartclever: 用strace大概马上就能知道发生啥事了08/25 08:25
strace的结果
$ strace pixitracker/bin/pixilang_linux_arm64
execve("pixitracker/bin/pixilang_linux_arm64", ["pixitracker/bin/pixilang_linux_
a"...], 0x7fef197dd0 /* 15 vars */) = -1 ENOENT (No such file or directory)
strace: exec: No such file or directory
+++ exited with 1 +++
※ 编辑: skycat2216 (101.136.124.58 台湾), 08/25/2020 10:25:00
25F:推 Bencrie: echo $USER 08/25 13:09
26F:推 LinBuoRen: 应是动态连结器不相容,用 readelf 工具的 -l 开关看该08/25 13:52
27F:→ LinBuoRen: 程式编译进去的连结器路径 08/25 13:52
28F:→ LinBuoRen: 基本上你原生程式要跑得动除了处理器架构要相同外 C 程08/25 13:52
29F:→ LinBuoRen: 式库也要相容08/25 13:52
30F:→ LinBuoRen: 一般 GNU/Linux glibc 编的程式是不能在 Android/Linux08/25 13:52
31F:→ LinBuoRen: bionic C 执行环境中执行的 08/25 13:52
32F:→ LinBuoRen: 要已 Android NDK 重新自源码建构才行08/25 13:53
33F:→ LinBuoRen: 以08/25 13:53
$ readelf -l pixitracker/bin/pixilang_linux_arm64
Elf file type is EXEC (Executable file)
Entry point 0x407dc0
There are 8 program headers, starting at offset 64
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
PHDR 0x0000000000000040 0x0000000000400040 0x0000000000400040
0x00000000000001c0 0x00000000000001c0 R E 0x8
INTERP 0x0000000000000200 0x0000000000400200 0x0000000000400200
0x000000000000001b 0x000000000000001b R 0x1
[Requesting program interpreter: /lib/ld-linux-aarch64.so.1]
LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000
0x000000000010fb84 0x000000000010fb84 R E 0x10000
LOAD 0x0000000000110000 0x0000000000510000 0x0000000000510000
0x0000000000005068 0x0000000000008f08 RW 0x10000
DYNAMIC 0x0000000000110018 0x0000000000510018 0x0000000000510018
0x0000000000000240 0x0000000000000240 RW 0x8
NOTE 0x000000000000021c 0x000000000040021c 0x000000000040021c
0x0000000000000044 0x0000000000000044 R 0x4
GNU_EH_FRAME 0x0000000000101d04 0x0000000000501d04 0x0000000000501d04
0x0000000000001bdc 0x0000000000001bdc R 0x4
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RW 0x10
Section to Segment mapping:
Segment Sections...
00
01 .interp
02 .interp .note.ABI-tag .note.gnu.build-id .gnu.hash .dynsym .dynstr .gn
u.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_
frame_hdr .eh_frame
03 .init_array .fini_array .jcr .dynamic .got .got.plt .data .bss
04 .dynamic
05 .note.ABI-tag .note.gnu.build-id
06 .eh_frame_hdr
07
这…
另外问一下,为什麽我在TermUX上部署Kali之後就能用这套程式了?
最後不都是走Bionic C的动态连结库吗?
※ 编辑: skycat2216 (101.137.169.185 台湾), 08/25/2020 21:09:59
34F:推 smartclever: 有种可能就是Kali帮你装好ld-linux-aarch64.so.1 08/26 07:35
35F:→ smartclever: C的binary基本上都是要透过ld-linux*.so去载入 08/26 07:36
36F:→ skycat2216: 了解 谢谢 08/26 15:59