永发信息网

怎么查看一个apk使用的动态库有哪些

答案:2  悬赏:0  手机版
解决时间 2021-04-23 03:46
  • 提问者网友:原来太熟悉了会陌生
  • 2021-04-22 16:05
怎么查看一个apk使用的动态库有哪些
最佳答案
  • 五星知识达人网友:枭雄戏美人
  • 2021-04-22 17:17
1) am start -D -n 包名/类名

2) IDA pro attach 进程, 设置新线程,加载so时断点,continue

3) 打开ddms, 查看调试端口, jdb attach port

4) 这个时候应该已经断在新线程,或者加载so处了,在你感兴趣的so处停下来

5) 另外用ida 打开so,查看你感兴趣的函数偏移, 加上你感兴趣的so的基地址,打上断点,continue, 就大功告成了。
全部回答
  • 1楼网友:未来江山和你
  • 2021-04-22 17:27
export ld_trace_loaded_objects=1 ./a.out 输出的结果为: linux-gate.so.1 => (0xb78b5000) librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb78a4000) libselinux.so.1 => /lib/libselinux.so.1 (0xb7889000) libacl.so.1 => /lib/libacl.so.1 (0xb7880000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7726000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb770d000) /lib/ld-linux.so.2 (0xb78b6000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7709000) libattr.so.1 => /lib/libattr.so.1 (0xb7703000) 而对于.so(假设有个liba.so)而言, 另一种获得依赖关系的方式为: export ld_trace_loaded_objects=1 /lib/ld-linux.so.2 ./liba.so 输出结果为: linux-gate.so.1 => (0xb777e000) libdb-4.8.so => /home/db/opt/dbxml/install/lib/libdb-4.8.so (0xb7360000) libxqilla.so.5 => /home/db/opt/dbxml/install/lib/libxqilla.so.5 (0xb6f10000) libxerces-c-3.0.so => /home/db/opt/dbxml/install/lib/libxerces-c-3.0.so (0xb6b6c000) libz.so.1 => /lib/libz.so.1 (0xb6b51000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb6a5b000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb6a35000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb68db000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb68bb000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb68a2000) libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb688b000) /lib/ld-linux.so.2 (0xb777f000) 运行中发现貌似/lib/ld-linux.so.2后面的参数是需要带绝对路径或者相对路径的(当前目录则需要用./作为前缀), 目前还不知道ld-linux.so.2是如何确定参数路径的. 当然, 实际上executable也可以用/lib/ld-linux.so.2来获得依赖列表.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯