Frida-syscall-interceptor
一、目标现在很多App不讲武德了,为了防止openat、read、kill等等底层函数被hook,干脆就直接通过syscall的方式来做系统调用,导致无法hook。应对这种情况有两种方案:刷机重写系统调用表来拦截内核调用inlineHookSWI/SVC指令我们今天采用第二种方法,用frida来实现内联汇编SWI/SVC做系统调用,sysc
Wesley13 Wesley13
2年前
SPI应用场景及详解
java中spi(serviceproviderinterface)是jdk内置的一种服务发现机制,可以基于配置,在运行时加载指定服务。java中提供了很多服务提供接口,如jdbc、jndi等。面对分布式的开发,很多系统之间的调用都是使用rpc直接调用,但是有的时候上游的系统需要调用下游系统很多的接口,导致开发工作量很大。因此上游系统使用sp
Easter79 Easter79
2年前
strace命令使用
命令介绍strace是Linux环境下的一款程序调试工具,用来输出一个应用程序所使用的系统调用。strace底层使用内核的ptrace特性来实现其功能。什么是系统调用?系统调用是通向操作系统本身的接口,是面向底层硬件的。通过系统调用,可以使得用户态运行的进程与硬件设备(如CPU、磁盘、打印机等)进行交互,是操作系统留给
zdd小小菜鸟 zdd小小菜鸟
1年前
Liunx面试
Liunx面试1.查看内核shellunamea2.查看系统调用列表shellman2syscalls3.查看系统调用说明shellman2acct
Stella981 Stella981
2年前
Linux如何动态添加新的系统调用
来自《Linux动态为内核添加新的系统调用》(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%2FHEIQTBks2RExUopLMrmlJA)先来个满满的回忆:https://blog.csdn.net/dog250/articl
Stella981 Stella981
2年前
Linux内核编译及添加系统调用
1总体设计思路系统调用的本质是调用内核函数,以内核态运行程序。为了在内核态下运行,本实验针对Linux的内核进行修改,增加自定义系统调用函数实现用户态程序对任意进程的nice值进行修改或者读取来进行测试。2主要函数的接口设计核心态程序SYSCALL\_DEFINE3(mysetnice,pid\_t,pid,int,flag,i
Wesley13 Wesley13
2年前
vivo 调用链 Agent 原理及实践
一、项目背景2017年,vivo互联网研发团队认为调用链系统对实际业务具有较大的价值,于是开始了研发工作。3年的时间,调用链系统整体框架不断演进……本文将介绍vivo调用链系统Agent技术原理及实践经验。vivo调用链系统的研发,始于对Google的《Dapper,aLargeScaleDistributedSyst
Stella981 Stella981
2年前
Hystrix熔断机制原理剖析
一、前言在分布式系统架构中多个系统之间通常是通过远程RPC调用进行通信,也就是A系统调用B系统服务,B系统调用C系统的服务。当尾部应用C发生故障而系统B没有服务降级时候可能会导致B,甚至系统A瘫痪,这种现象被称为雪崩现象。所以在系统设计时候要使用一定的降级策略,来保证当服务提供方服务不可用时候,服务调用方可以切换到降
Stella981 Stella981
2年前
GOT段在linux系统中实现代码动态加载的作用和其他段的说明
上一节我们看到,当程序想调用系统函数时,在编译阶段无法确认被调用函数所在的虚拟地址。因此必须有机制让程序在运行过程中,在调用系统API的时候有办法去确定所调用的系统函数对应的入口地址,这就是代码运行时对应动态加载的过程。动态加载,也就是在调用系统函数时再去确认所调用的函数地址的技术需要使用两个段,一个是.plt段,一个是.got.plt段。后者其实是.g
Nginx接收Http协议请求转发使用Https协议
缘起公司使用阿里的apigateway,规定不太友好,同是SIT环境,A系统的SIT1环境居然不能调用B系统的SIT2环境的接口。因为各个系统之间部署的SIT环境数量不同A系统可能只有1套,B系统可能有8套,这样的话,可能会随时切换调用B系统的环境,管理员