能力值:
( LV2,RANK:10 )
2 楼
有很多不错的svc hook开源项目
能力值:
( LV2,RANK:10 )
3 楼
能否开源提供完整代码给小白学习下
能力值:
( LV2,RANK:10 )
4 楼
感谢分享
能力值:
( LV2,RANK:10 )
5 楼
恋一世的爱
能否开源提供完整代码给小白学习下
我也是想问有没有一个完整的demo来跟着复习下
能力值:
( LV4,RANK:40 )
6 楼
你瞒我瞒
我也是想问有没有一个完整的demo来跟着复习下[em_85]
等过两天我再整理好发上来。
能力值:
( LV2,RANK:10 )
7 楼
要什么完整demo,论坛里看完相关文章真的写不出来吗.想要源码白嫖还是学习目的
能力值:
( LV1,RANK:0 )
8 楼
你好,代码用在安卓上switch case命中就卡主了。。是什么情况啊
能力值:
( LV4,RANK:40 )
9 楼
jilay
你好,代码用在安卓上switch case命中就卡主了。。是什么情况啊
“BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[1]))”改成“BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[2]))”,试试。
能力值:
( LV1,RANK:0 )
10 楼
一只流浪狗
“BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[1]))”改成“BPF_STMT(BPF_LD | BPF ...
可以了。。
能力值:
( LV1,RANK:0 )
11 楼
在miui上跑过嘛,大佬。我在demo上跑正常hook,注入以后就出问题了
能力值:
( LV2,RANK:10 )
12 楼
测试__NR_kill __NR_openat都正常,__NR_exit会卡死
最后于 2023-7-2 13:49
被恋一世的爱编辑
,原因:
能力值:
( LV2,RANK:10 )
13 楼
测试__NR_kill __NR_openat都正常,__NR_exit会卡死
能力值:
( LV1,RANK:0 )
14 楼
大佬,按照你的教程来,写好demo,拦截的是 __NR_openat 注入游戏(游戏没检测)会崩溃,报错:Process 8911 exited due to signal 31 (Bad system call),可以帮忙看下吗,游戏链接可以在apkpure或者APKCombo搜索Animal Revolt Battle Simulator(版本3.1.1_arm64)https://apkcombo.com/zh/animal-revolt-battle-simulator/com.vdimensionltd.animalrevoltbattlesimulator/download/apk
能力值:
( LV2,RANK:10 )
16 楼
一只流浪狗
等过两天我再整理好发上来。 大佬 64位的信号处理怎么写呀
最后于 2023-9-5 21:16
被万里星河编辑
,原因:
能力值:
( LV2,RANK:10 )
18 楼
请问有尝试hook __NR_clone 的吗 会出现无限重启的情况
最后于 2024-2-11 13:20
被肉蚌葱鸡编辑
,原因: 回答错误
能力值:
( LV1,RANK:0 )
19 楼
尝试hook openat注入后有些为什么跑不进hook
能力值:
( LV1,RANK:0 )
20 楼
mb_gipfprwu
尝试hook openat注入后有些为什么跑不进hook
其他线程的似乎没被应用到
最后于 2024-3-1 08:02
被mb_gipfprwu编辑
,原因:
能力值:
( LV1,RANK:0 )
21 楼
请教大神__NR_openat 的实现该怎么写呢,我写的始终不对。
能力值:
( LV1,RANK:0 )
22 楼
SharkFall
忘了,哈哈哈,不过解决了,现在是32位跑不进hook
怎么解决的呢 我也出现这个问题了
能力值:
( LV1,RANK:0 )
23 楼
#define _GNU_SOURCE #include <jni.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <malloc.h> #include <unistd.h> #include <linux/filter.h> #include <linux/seccomp.h> #include <sys/prctl.h> #include <signal.h> #include <string.h> #include <xhook/xhook.h> #include <xhook/xh_log.h> #include <sys/syscall.h> #include <errno.h> #define SyscallCode 123456 const char *apkPath__; const char *repPath__; static void signal_handler(int signum, siginfo_t *siginfo, void *context); void registerSignalHandler() { // Register signal handler struct sigaction sig; sigset_t sigset; sigfillset(&sigset); sig.sa_mask = sigset; sig.sa_flags = SA_SIGINFO; sig.sa_sigaction = signal_handler; if (sigaction(SIGSYS, &sig, NULL) == -1) { perror("sigaction"); //exit(EXIT_FAILURE); } XH_LOG_ERROR("Finished registering signal handler"); } void installFilterForE() { struct sock_filter filter[] = { BPF_STMT(BPF_LD + BPF_W + BPF_ABS, offsetof(struct seccomp_data, nr)), BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, __NR_openat, 0, 3), BPF_STMT(BPF_LD + BPF_W + BPF_ABS, offsetof(struct seccomp_data, args[5])), BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, SyscallCode, 1, 0), BPF_STMT(BPF_RET + BPF_K, SECCOMP_RET_TRAP), BPF_STMT(BPF_RET + BPF_K, SECCOMP_RET_ALLOW), }; struct sock_fprog prog = { .len = (unsigned short) (sizeof(filter) / sizeof(filter[0])), .filter = filter, }; if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) == -1) { perror("prctl(PR_SET_NO_NEW_PRIVS)"); //exit(EXIT_FAILURE); } if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &prog) == -1) { perror("prctl(PR_SET_SECCOMP)"); //exit(EXIT_FAILURE); } XH_LOG_ERROR("Set new filter end"); } #if defined(__aarch64__) static void signal_handler(int signum, siginfo_t *siginfo, void *context) { ucontext_t *uc = static_cast<ucontext_t *>(context); struct sigcontext *sigc = &uc->uc_mcontext; int code = sigc->regs[8]; if (code == __NR_openat) { char *fileName = reinterpret_cast<char *>(sigc->regs[1]); if (strcmp(fileName, apkPath__) == 0) { sigc->regs[0] = AT_FDCWD; // dirfdNum = AT_FDCWD; sigc->regs[1] = reinterpret_cast<long>(repPath__); // fileName = repPath__ sigc->regs[2] = O_RDONLY; // openFlags = O_RDONLY; sigc->regs[3] = S_IRUSR; // permission: read/write/execute XH_LOG_ERROR("Redirect apk: %s", repPath__); } sigc->regs[0] = syscall(code, sigc->regs[0], sigc->regs[1], sigc->regs[2], sigc->regs[3], sigc->regs[4], SyscallCode); } } #else static void signal_handler(int signum, siginfo_t *siginfo, void *context) { ucontext_t *uc = static_cast<ucontext_t *>(context); struct sigcontext *sigc = &uc->uc_mcontext; int code = sigc->arm_r7; if (code == __NR_openat) { char *fileName = reinterpret_cast<char *>(sigc->arm_r1); if (strcmp(fileName, apkPath__) == 0) { sigc->arm_r0 = AT_FDCWD; // dirfdNum = AT_FDCWD; sigc->arm_r1 = reinterpret_cast<long>(repPath__); // fileName = repPath__ sigc->arm_r2 = O_RDWR | O_CREAT; // openFlags = O_RDONLY; sigc->arm_r3 = S_IRUSR | S_IWUSR | S_IXUSR; // permission: read/write/execute } sigc->arm_r0 = syscall(code, sigc->arm_r0, sigc->arm_r1, sigc->arm_r2, sigc->arm_r3, sigc->arm_r4, SyscallCode); } } #endif void startSvcHook() { registerSignalHandler(); installFilterForE(); } extern "C" JNIEXPORT void JNICALL Java_bin_mt_signature_KillerApplication_hookApkPath(JNIEnv *env, __attribute__((unused)) jclass clazz, jstring apkPath, jstring repPath) { apkPath__ = env->GetStringUTFChars(apkPath, nullptr); repPath__ = env->GetStringUTFChars(repPath, nullptr); startSvcHook(); } 有人能帮我修改这个代码吗,因为当我使用这个代码登录游戏时它会崩溃
能力值:
( LV1,RANK:0 )
24 楼
LKNB888
#define _GNU_SOURCE
#include
#include
#include
#include
#include
#include
#include
#i ...
这段代码好像根本用不起
能力值:
( LV2,RANK:10 )
25 楼
想要学习seccomp bpf最好去看看proot的源码。非常不错