首页
社区
课程
招聘
[求助]【静态感染ELF加载SO】感染静态感染SO文件技术.DT_NEEDED 感染后启动报错
发表于: 2017-11-25 16:49 5857

[求助]【静态感染ELF加载SO】感染静态感染SO文件技术.DT_NEEDED 感染后启动报错

2017-11-25 16:49
5857

首选 感谢文章  :Android平台感染ELF文件实现模块注入  ab3K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3N6K6L8r3q4T1i4K6u0W2M7i4q4Q4x3X3g2U0L8$3#2Q4x3V1k6S2M7Y4c8A6j5$3I4W2i4K6u0V1x3e0j5K6i4K6u0V1x3g2)9J5k6h3S2@1L8h3H3`.

这个文章启发了我。我比它做的更好,又简单。现在遇到了问题 希望大家 支招。。。。

目前自己写了一个 普通so 被加载成功后会输出打印出一段文字,  然后我想把这个so  感染 到  某APK lib 目录下的 xxxx.SO 文件。
目的是让 APK启动的时候自动加载我的SO。
在技术实现上用了 给 目标SO添加 自动动态链接加载SO的特殊属性项 DT_NEEDED ,然后 自动加载  我的SO.
 APK    在 eclipse自带的模拟器上跑没问题。确实把我的SO也加载起来了,成功输出一段打印文字,用IDA看这个APK 模块确实也被加载起来了。
但是在天天模拟器 和逍遥模拟器 上 测试 就 不行了,感染后的APK启动后直接报错奔溃。调试信息输出     APK原有的SO打开失败(没提到我插入SO名字。。。。)

具体情况:我是把目标SO的DT_NULL 修改为了  DT_NEEDED  ,然后 像其 写入  "my.so"  字符串所在的地址。(注意我这里的my.so 不是决定路径)
不过 再重新打包Apk的时候,my.so  是和 Apk原有的so文件放在同一个目录下。 

在百度上查了资料发现有的安卓系统 的动态链接器  加载SO寻找SO路径的时候 有如下情况:
  动态链接器  找SO路径  先 在安卓系统的 /usr/lib 目录下找    ,      然后再 到  /lib  目录下找。如果都找不到 就报错!


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 64
活跃值: (67)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
修改elf文件里的DYNAMIC节,添加一个类型为DT_NEEDED的节点,还要把要加载的so的名字写入到DT_STRSZ节里去,由于elf文件里的里的地址都是写死的,不一定有空位置让你插一个新的结点,抹掉现有的才有位置插。        自己感觉是只写了  SO文件名,没有写完整的路径  导致  在天天模拟器上  运行报错。
2017-11-25 17:23
0
雪    币: 64
活跃值: (67)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
目前找到了  答案,  不确定,  地址    a10K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3#2G2j5X3W2D9k6g2)9J5k6e0f1I4j5%4c8G2i4K6u0W2j5$3!0E0i4K6u0r3j5h3&6V1M7X3!0A6k6q4)9J5k6o6f1K6y4K6t1H3z5g2)9J5k6h3S2@1L8b7`.`.
从  API  24  开始,动态链接器将无法加载私有库,从而导致应用无法加载。
私有  API(从  API  24  开始实施)
本机库只能使用公共  API,且不得链接到非  NDK  平台库。此规则从  API  24  开始实施,此后应用便无法再加载非  NDK  平台库。此规则由动态链接器执行,因此无论代码使用何种方式加载,都无法访问非公共库:System.loadLibrary(...)、DT_NEEDED  条目以及直接调用  dlopen(...)  都会同样失败。

2017-11-25 17:46
0
雪    币: 64
活跃值: (67)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
DT_SONAME                和        DT_NEEDED      功能是一样的吗?都是加载  SO的吗

*  DT_SONAME

    该元素保存着以NULL结尾的字符串的字符串表偏移量,那些名字是共享
    object的名字。偏移量是在DT_STRTAB入口记录的表的索引。关于那些名字看
    Shared  Object  Dependencies  部分获得更多的信息。

*  DT_NEEDED

    这个元素保存着以NULL结尾的字符串表的偏移量,那些字符串是所需库的名字。
    该偏移量是以DT_STRTAB  为入口的表的索引。看“Shared  Object  Dependencies”
    关于那些名字的更多信息。动态数组可能包含了多个这个类型的入口。那些
    入口的相关顺序是重要的,虽然它们跟其他入口的关系是不重要的。

2017-11-25 18:11
0
雪    币: 64
活跃值: (67)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
5

我的问题如上。。。
2017-11-25 22:38
0
雪    币: 64
活跃值: (67)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
还有我想问下  是不是    APK    安装在任何版本的  安卓系统  里面,其  APK自带的第三方库文件    so    都在      "  /data/app-lib/某包名/  "  下面的?   

          第三方apk的so库安装位置,比如:/data/app-lib/com.youhu.phone-1/xxxxx.so
2017-11-25 22:46
0
雪    币: 64
活跃值: (67)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
我目前  怀疑    ecslps  自带的模拟器  安装  APK的时候  会  把  so  直接    安装在        “/usr/lib”  ,而    天天模拟器  则  安装在      "    /data/app-lib/包名/"  下面。
而  DT_NEEDED  这种修改方法来加载第三方so  ,  只能    加载  “/usr/lib”目录下的SO,而不会加载      "    /data/app-lib/包名/"  下面的SO.  除非  你在写入  DT_NEEDED    字段的时候  ,填写的不是  SO名字,而是  SO的具体路径    即      /data/app-lib/包名/xxxxx.so"
不知道我的猜测对不对  ,还在验证中。。。。
2017-11-25 22:51
0
雪    币: 64
活跃值: (67)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个帖子的问题  涉及到很多    安全公司加壳  和  感染级外挂注入黑产等  。。。不愿意回答的人,我能理解。
但是 本版块 作为安卓 逆向交流,总得 有点回复吧
2017-11-25 22:52
0
雪    币: 64
活跃值: (67)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
tag        0xf                DT_RPATH              可以设置搜索    加载  DT_NEEDED        so的路径。    不知道  对不对
2017-11-26 00:01
0
雪    币: 64
活跃值: (67)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
10
3.7.    运行时库查找过程

动态链接器对保存在.dynamic段的DT_NEEDED的共享库的查找有一定的规则,如果DT_NEEDED保存的是绝对路径,那么动态链接器就按这个路径去查找,如果是相对路径,那么动态链接器会在/lib
/usr/lib和/etc/ld.so.conf配置文件指定的目录中进行查找。

ld.so.conf是一个配置文件,可能包含其他的配置文件,存放了路径信息。为了避免每次查找共享库都去遍历这些目录,linux系统提供了ldconfig。ldconfig除了负责每个共享库目录下的共享库SO-NAME的创建删除和更新外,它还会将这些SO-NAME收集起来存放到/etc/ld.so.cache中。当查找共享库时,直接去/etc/ld.so.cache里找即可,而它的结构则是专为查找优化过的。如果在这里没有找到,它会继续查找/lib和/usr/lib,如果还未找到就宣告失败。

所以,如果在系统指定的共享库目录下,添加删除或更新任何一个共享库,或者更改了/etc/ld.so.conf的配置,都应该运行ldconfig这个程序。以便调整SO-NAME和/etc/ld.so.cache,而很多安装软件包实际在往系统安装共享库之后都会调用ldconfig。
2017-11-26 00:19
0
雪    币: 1026
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
你好,我想问下载DT_NEEDED加了加载的so库,在手机运行直接崩溃了,报的错误是dlopen  failed:  invalid  ELF  file 
2018-2-21 19:45
0
游客
登录 | 注册 方可回帖
返回