首页
社区
课程
招聘
[求助]请问cydia substrate可以hook so函数吗
发表于: 2014-12-10 10:06 22438

[求助]请问cydia substrate可以hook so函数吗

2014-12-10 10:06
22438
在官网上看说是可以hook native code,在http://bbs.pediy.com/showthread.php?t=187948这个帖子中也说了xx助手也用到了substrate hook so的函数,我想应该是可以的吧,但是网上都没找到相关例子,有没有做过的介绍一下它的API,感激不尽。

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

收藏
免费 0
支持
分享
最新回复 (20)
雪    币: 233
活跃值: (148)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
可以的,你看一下官网的例子。
2014-12-10 10:14
0
雪    币: 60
活跃值: (363)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
可以的,可以参考61eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0P5f1y4G2k6r3g2t1N6i4u0@1M7#2)9J5c8W2m8D9N6h3#2Q4x3X3c8Q4x3X3c8Q4x3X3c8m8L8X3c8J5L8$3W2V1i4K6u0V1e0X3q4@1K9i4k6W2i4K6u0V1b7%4W2V1K9h3q4Q4x3X3c8e0N6h3u0K6N6s2u0S2N6r3g2Q4c8f1k6Q4b7V1y4Q4z5p5y4K6L8#2!0q4y4W2)9^5c8q4!0m8x3W2!0q4y4W2)9^5z5q4)9&6x3q4!0q4y4q4!0n7c8q4!0m8x3q4!0q4z5q4)9^5y4#2!0m8b7g2!0q4y4g2!0n7y4#2!0n7x3g2!0q4y4#2)9&6b7g2)9^5y4s2y4G2
2014-12-10 13:35
0
雪    币: 13
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
可以的。 。
2014-12-10 19:33
0
雪    币: 19
活跃值: (262)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
官网我都看过了,没有关于hook native代码的例子,只是讲了几个API
2014-12-10 22:08
0
雪    币: 19
活跃值: (262)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个例子是用c的hook java方法,并不是hook的native方法。
2014-12-10 22:13
0
雪    币: 233
活跃值: (148)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
7
005K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4&6k6r3W2S2M7%4g2T1M7%4c8J5j5i4c8W2i4K6u0W2j5$3!0E0i4K6u0r3j5i4m8A6i4K6u0r3j5#2)9J5c8V1#2e0d9r3!0G2K9@1k6#2L8X3y4@1K9h3!0F1i4K6u0r3
2014-12-10 23:04
0
雪    币: 19
活跃值: (262)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
恩,这个是对so hook的API,但是我还是不太懂dbaK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4&6k6r3W2S2M7%4g2T1M7%4c8J5j5i4c8W2i4K6u0W2j5$3!0E0i4K6u0r3K9h3&6B7k6h3y4@1i4K6u0r3j5h3&6V1M7X3!0A6k6q4)9J5c8W2!0q4y4W2)9^5z5g2)9^5x3q4!0q4z5q4!0m8c8W2!0n7y4q4!0q4y4#2)9&6b7g2)9^5y4q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4q4!0n7z5g2)9&6c8W2!0q4y4g2!0n7x3q4!0n7x3g2!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4W2)9^5z5q4)9&6x3g2!0q4y4q4!0n7z5q4)9^5c8q4!0q4y4g2!0m8y4q4!0m8b7g2!0q4y4W2!0n7z5q4)9^5y4g2!0q4y4W2!0m8y4g2)9&6b7g2!0q4z5q4!0n7c8W2)9&6z5g2!0q4y4q4!0n7z5q4!0m8b7g2!0q4y4W2)9^5c8W2)9&6x3W2!0q4y4q4!0n7b7W2!0n7y4W2!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4g2!0m8y4W2)9^5x3W2!0q4y4q4!0n7c8q4)9&6y4g2!0q4z5q4!0m8x3W2!0m8b7W2!0q4y4g2)9^5b7g2!0m8x3q4!0q4z5q4!0n7c8q4!0n7c8q4!0q4y4#2)9&6b7g2)9^5y4q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4z5q4)9^5x3#2!0n7c8q4!0q4y4W2)9&6b7#2)9^5z5g2!0q4y4q4!0n7z5q4!0m8b7g2!0q4y4g2!0m8c8g2)9^5b7#2!0q4y4W2)9&6y4g2!0n7y4q4!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4q4!0n7c8g2)9^5b7W2!0q4y4g2!0m8c8q4)9&6x3q4!0q4y4g2!0n7x3q4!0n7x3g2!0q4y4g2!0m8y4g2!0n7c8q4!0q4y4q4!0n7b7g2)9^5y4W2!0q4c8W2!0n7b7#2)9^5b7#2!0q4z5q4)9^5x3#2!0n7c8q4!0q4y4g2!0n7z5q4!0m8c8g2!0q4y4g2!0n7c8W2)9&6z5g2!0q4z5q4!0m8y4#2!0m8x3#2!0q4z5g2)9^5y4#2)9^5b7g2!0q4y4q4!0n7z5q4)9^5x3q4!0q4y4q4!0n7z5q4)9^5b7W2!0q4y4g2)9&6x3q4)9&6y4#2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4q4!0n7z5q4)9^5y4#2!0q4y4g2)9^5z5q4)9^5y4W2!0q4y4W2)9^5y4q4)9&6c8W2!0q4z5q4!0n7x3q4!0m8x3W2!0q4x3#2)9^5x3q4)9^5x3R3`.`.
上传的附件:
2014-12-11 08:47
0
雪    币: 60
活跃值: (363)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
那个例子的so你直接换成你自己hook c的函数的so就可以了
2014-12-12 09:48
0
雪    币: 233
活跃值: (148)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
10
你需要先安装官方的com.saurik.substrate.apk,在APK的asset下,你会发现有substrate.h头文件,放到你的项目当中。 另外,当成功安装com.saurik.substrate.apk后,你需要先开启一下,这时会提示要软重启。 这时,你看一下手机上的/system/lib下,会多出一个libsubstrate.so,把这个文件拿到自己的项目编译就好了。

API参考官方的文档即可
2014-12-16 00:02
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
11
2015-6-25 09:54
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
mark最近也在研究这个
2015-6-25 10:53
0
雪    币: 76
活跃值: (226)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
13
给你一个用例:

#include "substrate.h"

#define LOG_TAG "DEBUG"
#define LOGD(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, fmt, ##args)

typedef void (*oldfuns)();
extern "C" void hello() {
        LOGD("hello");
}

extern "C" void hook_hello() {
        LOGD("hook hello");
}

oldfuns oldhello;
extern "C" int hook_entry(char * a){
    LOGD("Hook success, pid = %d\n", getpid());  
    LOGD("Hello %s\n", a);
       
        hello();
        MSHookFunction((void*)hello, (void*)hook_hello, (void**)&oldhello);
        hello();
    return 0;  
}
2015-6-30 18:02
0
雪    币: 215
活跃值: (417)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这种貌似只能 hook 导出的方法
2015-7-6 10:21
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
你用过么 这个咋hook 其他apk的so函数 我总是不成功。
2015-7-6 14:57
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
回复多了。。
2015-7-6 14:58
0
雪    币: 38
活跃值: (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
好东西保留下 多谢
2015-7-6 21:49
0
雪    币: 8
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
没啥用处,用的substrate的注入,还得自己装他们的apk,然后link自己的so这样毛用,要自己注入自己hook携程一个apk给别人用这样才行啥,不然你叫用你外挂的人,还去自己装个substrate啊
2016-3-8 15:10
0
雪    币: 26
活跃值: (42)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
c52K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3c8F1i4K6u0W2L8X3g2@1i4K6u0r3K9s2f1K6x3e0j5%4x3K6b7K6i4K6u0r3j5i4u0@1K9h3y4D9k6g2)9J5c8X3c8W2N6r3q4A6L8s2y4Q4x3V1j5#2x3o6M7&6x3U0p5#2x3#2)9J5y4X3&6T1M7%4m8Q4x3@1t1`.   可以看看这篇,挺详细的。
2016-3-8 15:15
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
SnowNight 没啥用处,用的substrate的注入,还得自己装他们的apk,然后link自己的so这样毛用,要自己注入自己hook携程一个apk给别人用这样才行啥,不然你叫用你外挂的人,还去自己装个substra ...
其实  substrate  的客户端不需要安装,安装客户度主要目的是,创建相关的运行环境,因此这一步可以自己做。
2017-5-9 16:27
0
雪    币: 39
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
21
大愚 其实 substrate 的客户端不需要安装,安装客户度主要目的是,创建相关的运行环境,因此这一步可以自己做。
安装客户度主要目的是,创建相关的运行环境,因此这一步可以自己做

--------这一步怎么做呢 
2017-9-24 17:48
0
游客
登录 | 注册 方可回帖
返回