SVCMonitor内核模块
最近在研究一个加密的反调试,但是他用了很多的SVC去替换普通的libc的函数,而且也准备研究内核模块相关的内容,那么就配合大模型写了一个关于SVC调用监控的内核模块,从而辅助平常的逆向分析。希望大家多点点star,谢谢各位大佬。
项目架构
这个项目架构的组成就是有kpm和APP以及web页面所组成
SVCMonitor/
├── kpm/
├── android/
└── SVC_PC_View/
其中kpm就是核心的依赖Kpatch写的一个内核模块,然后依赖于Apatch,然后大家在Apatch里面进行载入就行
第二个就是这个android,这个就是我们载入模块后控制这个模块的APP,包括:我们要对什么APP进行svc监控、要对那些SVC进行监控、还有就是trace的事件也可以在APP里面看见、还有就是这个设置,里面可以修改我们的superkey,要不然是执行不了命令的
第三个就是这个PC_View了,因为APP他有限制吗,而且屏幕就那么大,每次解析这么多事件肯定不如PC的处理器这么快,而且很难进行复制,那么还不如投放到WEB端进行统一的监控和管理,也方便我们复制还有导出,从而让AI去分析一下这个内核的内容
功能展示
对于这个功能呢,从web端讲吧,毕竟我们分析的时候还是要看web的
1、SVC调用堆栈回溯
这个应该是我写这个项目的初衷了,因为我想看看他是哪里进行调用的吗,所以这个比较重要一点,他是支持地址解析的,就是我将map文件也dump下来,从而再解析的时候就可以看到地址和偏移了

2、PID分析
这个就是有时候我们可能需要对某一个进程或者某一个线程单独看一下他执行了那些操作,所以我写了一个模块来将所有的PID或者TID单独拉出来,看看他的执行链是什么

3、字符串搜索
这个应该不用多说,这个就是可以将解析得到的字符串给他搜索到,或者就是你想看的地址、调用号等等都可以搜索到,而且为了方便统一查看,我还将其字符串统计了出来

4、maps分析
这个就是我设置了一个maps模块,他可以把我们想要看的pid的maps给他拿下来,比如

5、线程调用树
这个还没写好,我本来想搞一下线程调用之间的关系的,因为很多监测不都是创建线程来搞的吗,所以我觉得后续可以添加一下这个功能
项目地址:
440K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6j5K9h3q4G2g2$3q4S2j5i4W2Q4x3V1k6e0g2V1y4y4L8$3&6A6N6r3!0J5M7H3`.`.
交流讨论:
希望大佬们多点点star,后续关于安卓逆向、算法还原、大模型安全的文章会发在公众号,然后有问题也可以及时指正,下面是我的联系方式,非常欢迎对安卓逆向、大模型安全感兴趣的大佬相互交流讨论


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!