[問題] bash看的到卻執行不了

看板Linux作者 (skycat2216)時間3年前 (2020/08/21 17:35), 3年前編輯推噓18(18018)
留言36則, 17人參與, 3年前最新討論串1/1
https://imgur.com/1ic1J6Y
環境:TermUX Bash版本:5.0.11-1 這真的是要求救了 -- Sent from my WDNMD PiTT // PHJCI -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.136.70.145 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1598002543.A.3BD.html

08/21 17:50, 3年前 , 1F
下個ls -al看一下資訊
08/21 17:50, 1F

08/21 17:54, 3年前 , 2F
檔名手打的還是用 autocomplete? 檔案名稱可能有能搞你
08/21 17:54, 2F
autocomplete也還是回一樣的訊息

08/21 17:55, 3年前 , 3F
最簡單就是檔名後面有空白
08/21 17:55, 3F

08/21 18:26, 3年前 , 4F
大小寫?
08/21 18:26, 4F

08/21 18:43, 3年前 , 5F
ldd file 看一下?
08/21 18:43, 5F
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 這樣算是正常嗎?

08/21 19:11, 3年前 , 6F
目錄對嗎?
08/21 19:11, 6F

08/21 21:19, 3年前 , 7F
find . -name filename -exec './{}' \;
08/21 21:19, 7F

08/21 22:47, 3年前 , 8F
你進了幾次 bin ? pwd 確認一下位置
08/21 22:47, 8F
確認過了,沒有問題

08/21 23:43, 3年前 , 9F
ldd 看看 可能是缺 library
08/21 23:43, 9F

08/22 10:30, 3年前 , 10F
最後的bin跟前面的bin不同一個?執行前ls 一下看看
08/22 10:30, 10F
※ 編輯: skycat2216 (101.137.96.142 臺灣), 08/22/2020 12:31:52

08/22 13:26, 3年前 , 11F
uname -a 看一下
08/22 13:26, 11F
$ 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

08/23 03:20, 3年前 , 12F
感覺你拿到的 binary 不是編給 Termux 這個環境用的
08/23 03:20, 12F

08/23 03:24, 3年前 , 13F
如果碰不到 source code 聯絡不到開發者, 看你要建立
08/23 03:24, 13F

08/23 03:25, 3年前 , 14F
類似 chroot 的環境還是用 linux deploy 在 Android 跑
08/23 03:25, 14F

08/23 03:26, 3年前 , 15F
完整 Linux 發行版環境,只是不知道有沒有必要 root
08/23 03:26, 15F
我以為環境之間頂多只有指令集跟一些細項的差別 到最後我是用AnLinux直接把Kali部署在TermUX上才能動,Linux Depoly要Root,玩不起。 而TermUX的chroot沒有用 不過我接下來得要先思考這個CLI版的Pixitracker怎麼用了

08/23 07:55, 3年前 , 16F
前面加sh試看看
08/23 07:55, 16F

08/23 09:57, 3年前 , 17F
我在舊平版上跑userland+debian當server,電噴很快...
08/23 09:57, 17F

08/23 12:49, 3年前 , 18F
ldd 看得到東西應該不是 shell script 啊
08/23 12:49, 18F
這東西的確不是Shell script ※ 編輯: skycat2216 (101.137.153.162 臺灣), 08/23/2020 19:26:46

08/23 19:57, 3年前 , 19F
檔案確實存在沒錯,但他說的找不到是指缺library
08/23 19:57, 19F

08/24 10:39, 3年前 , 20F
缺lib也不會顯示檔案不在吧,你不會用file看一下嗎
08/24 10:39, 20F

08/24 10:39, 3年前 , 21F
叫你用ls -al你也不要,不知道衝三小
08/24 10:39, 21F
很抱歉,但我其實已經有用過了,不過當時沒有將相關資訊貼上來而已

08/24 12:34, 3年前 , 22F
我自己遇到不只一次,但是每次都想不起來怎麼解的 XD
08/24 12:34, 22F
我這次的解法比較偏鋒一點就是了XD ※ 編輯: skycat2216 (101.137.193.59 臺灣), 08/24/2020 19:07:48

08/24 22:01, 3年前 , 23F
所以不能再委屈一點,再 ls 一次貼結果上來嗎?
08/24 22:01, 23F
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

08/25 08:25, 3年前 , 24F
用strace大概馬上就能知道發生啥事了
08/25 08:25, 24F
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

08/25 13:09, 3年前 , 25F
echo $USER
08/25 13:09, 25F

08/25 13:52, 3年前 , 26F
應是動態連結器不相容,用 readelf 工具的 -l 開關看該
08/25 13:52, 26F

08/25 13:52, 3年前 , 27F
程式編譯進去的連結器路徑
08/25 13:52, 27F

08/25 13:52, 3年前 , 28F
基本上你原生程式要跑得動除了處理器架構要相同外 C 程
08/25 13:52, 28F

08/25 13:52, 3年前 , 29F
式庫也要相容
08/25 13:52, 29F

08/25 13:52, 3年前 , 30F
一般 GNU/Linux glibc 編的程式是不能在 Android/Linux
08/25 13:52, 30F

08/25 13:52, 3年前 , 31F
bionic C 執行環境中執行的
08/25 13:52, 31F

08/25 13:53, 3年前 , 32F
要已 Android NDK 重新自源碼建構才行
08/25 13:53, 32F

08/25 13:53, 3年前 , 33F
08/25 13:53, 33F
$ 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

08/26 07:35, 3年前 , 34F
有種可能就是Kali幫你裝好ld-linux-aarch64.so.1
08/26 07:35, 34F

08/26 07:36, 3年前 , 35F
C的binary基本上都是要透過ld-linux*.so去載入
08/26 07:36, 35F

08/26 15:59, 3年前 , 36F
了解 謝謝
08/26 15:59, 36F
文章代碼(AID): #1VFvLlEz (Linux)