zeropointdynamics / zelos

A comprehensive binary emulation and instrumentation platform.
GNU Affero General Public License v3.0
408 stars 50 forks source link

cannot emulate linux binary with C++ deps #146

Open sh4m2hwz opened 1 year ago

sh4m2hwz commented 1 year ago
>>> Zelos("./hard_software",linux_rootfs="x86-64,/",virtual_path=["/","/usr/lib/x86_64/"],virtual_filename=["libstdc++.so.6","libstdc++.so.6.0.30","libc.so.6"]).start()
Plugins: trace, overlay, runner, syscalllimiter, yarascan
[main] [SYSCALL] brk ( addr=0x0 ) -> 90000040
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0xb229170 ("./libc.so.6"), flags=0x80000 ) -> 10
[main] [SYSCALL] read ( fd=0x10 (file), buf=0x7f000008e708, count=0x340 ) -> 340
[main] [SYSCALL] fstat ( fd=0x10 (file), statbuf=0x7f000008e5a0 ) -> 0
[main] [SYSCALL] getcwd ( buf=0xb229720, size=0x80 ) -> 10
[main] [SYSCALL] mmap ( addr=0x0, length=0x225028, prot=RX, flags=0x802, fd=0x10 (file), offset=0x0 ) -> 1000
[main] [SYSCALL] mprotect ( addr=0x6000, len=0x1ff000, prot=NONE ) -> 0
[main] [SYSCALL] mmap ( addr=0x205000, length=0x22000, prot=RW, flags=0x812, fd=0x10 (file), offset=0x4000 ) -> 205000
[main] [SYSCALL] close ( fd=0x10 (file) ) -> 0
[main] [SYSCALL] uname ( buf=0x7f000008e8e0 ) -> 0
[main] [SYSCALL] access ( pathname=0xb021082 ("/etc/ld.so.nohwcap"), mode=0x0 ) -> -1
[main] [SYSCALL] access ( pathname=0xb023dd0 ("/etc/ld.so.preload"), mode=0x4 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0xb021428 ("/etc/ld.so.cache"), flags=0x80000 ) -> -2
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/lib/x86_64-linux-gnu/tls/x86_64/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/lib/x86_64-linux-gnu/tls/x86_64"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/lib/x86_64-linux-gnu/tls/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/lib/x86_64-linux-gnu/tls"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/lib/x86_64-linux-gnu/x86_64/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/lib/x86_64-linux-gnu/x86_64"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/lib/x86_64-linux-gnu/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/lib/x86_64-linux-gnu"), statbuf=0x7f000008e330 ) -> 0
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/usr/lib/x86_64-linux-gnu/tls/x86_64/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/usr/lib/x86_64-linux-gnu/tls/x86_64"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/usr/lib/x86_64-linux-gnu/tls/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/usr/lib/x86_64-linux-gnu/tls"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/usr/lib/x86_64-linux-gnu/x86_64/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/usr/lib/x86_64-linux-gnu/x86_64"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/usr/lib/x86_64-linux-gnu/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/usr/lib/x86_64-linux-gnu"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/lib/tls/x86_64/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/lib/tls/x86_64"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/lib/tls/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/lib/tls"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/lib/x86_64/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/lib/x86_64"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/lib/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/lib"), statbuf=0x7f000008e330 ) -> 0
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/usr/lib/tls/x86_64/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/usr/lib/tls/x86_64"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/usr/lib/tls/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/usr/lib/tls"), statbuf=0x7f000008e330 ) -> -1
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/usr/lib/x86_64/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/usr/lib/x86_64"), statbuf=0x7f000008e330 ) -> 0
[main] [SYSCALL] openat ( dirfd=0xffffff9c, pathname=0x7f000008e270 ("/usr/lib/libstdc++.so.6"), flags=0x80000 ) -> -2
[main] [SYSCALL] stat ( pathname=0x7f000008e270 ("/usr/lib"), statbuf=0x7f000008e330 ) -> 0
[StdErr]: 'b'./libc.so.6''
[StdErr]: 'b': ''
[StdErr]: 'b'error while loading shared libraries''
[StdErr]: 'b': ''
[StdErr]: 'b'libstdc++.so.6''
[StdErr]: 'b': ''
[StdErr]: 'b'cannot open shared object file''
[StdErr]: 'b': ''
[StdErr]: 'b'No such file or directory''
[StdErr]: 'b'\n''
[main] [SYSCALL] writev ( fd=0x2 (stderr), *iov=0x7f000008dfe0 ("./libc.so.6: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory\n"), iovcnt=0xa ) -> 7d
[main] [SYSCALL] exit_group ( status=0x7f ) -> void
12:46:05:threads___:ERROR_:Thread main failed: syscall Exit_Group status 127

while I have dependencies what to do?