• 2024-07-04Go 使用原始套接字捕获网卡流量
    Go使用原始套接字捕获网卡流量Go捕获网卡流量使用最多的库为github.com/google/gopacket,需要依赖libpcap导致必须开启CGO才能够进行编译。为了减少对环境的依赖可以使用原始套接字捕获网卡流量,然后使用gopacket的协议解析功能,这样就省去了解析这部分的工作量,正确性也可
  • 2024-06-24mips汇编语言语法
    这个博客讲的很好【十分钟教会你汇编】MIPS编程入门(妈妈说标题要高大上,才会有人看>_<!)总览程序分为数据段和代码段:.data声明变量.text书写代码数据段变量名:数据类型变量值代码段syscall为系统调用指令,能够方便我们在Mars上进行预览。利用syscall输出结果的步骤:1.
  • 2024-06-15gdb catchsyscall的内核支持
    intro通常使用gdb调试器,希望知道某个系统调用的发生时机,直接在该系统调用打断点即可。这里有一个假设就是这里使用的glibc库的实现,但是go生成的可执行文件就是一个单独的、静态链接文件,在go生成文件中,gdb的时候并没有可以打断点监测系统调用的方法。我想在go中大概率有对特定系
  • 2024-06-02golang中基于kevent的IO多路复用实践
    https://github.com/zongzw-learn/learn-go/tree/master/basics/tcp-pollerkqueue在golang语言下的使用实践将kqueue的操作细节封装在NetPoller接口中,实现KqueuePoller的三个API:Start启动基于kqueue的IO多路复用事件监听Close停止kqueueSetHandler设置可插入式的数据处理
  • 2024-05-18Linux/Golang/glibC系统调用
    Linux/Golang/glibC系统调用本文主要通过分析Linux环境下Golang的系统调用,以此阐明整个流程有时候涉略过多,反而遭到质疑~,写点文章证明自己实力也好Golang系统调用找个函数来分析https://pkg.go.dev/os/exec#Cmd.Wait源码文件在src/os目录下的:exec.go->exec_unix.go->
  • 2024-05-15mit6.828笔记 - lab3 Part B:页面故障、断点异常和系统调用
    PartB页面故障、断点异常和系统调用虽然说,我们故事的主线是让JOS能够加载、并运行user/hello.c编译出来的镜像文件。虽然说,经过PartA最后几节,我们初步实现了异常处理的基础设施。但是对于操作系统来说,还远远不够,比如说那个trap_dispatch还没完成。所以在回到故事主线之
  • 2024-04-30linux 系统调用分析
    一、linux系统调用介绍linux系统调用是linux为用户空间与内核空间交换提供的一组标准API,这些api能够让用户态进程访问内核代码,从而实现系统资源、硬件、文件读写的访问。需要注意的是,系统调用是用户态进入内核态的唯一入口,为了保证linux内核运行的稳定性,用户程序不能随意的访问内
  • 2024-04-24MIT6.S081 Lab syscall
    这一个实验的主要内容就是给xv6添加两个系统调用:trace和sysinfo。Usinggdb(easy)这个部分我就不做了……M1的MacbookAir上的gdb太难安装了,所以暂时用不了gdb调试……Systemcalltracing(moderate)Inthisassignmentyouwilladdasystemcalltracingfe
  • 2024-04-16《Evading EDR》— FUNCTION-HOOKING_DLLS
    最近一直在做EDR相关的工作,虽然略有了解EDR的机制,但是并未深究其完整的工作框架和可能的绕过机制,借工作空闲时间依靠智谱清言阅读一下《EvadingEDRTheDefinitiveGuidetoDefeatingEndpointDetectionSystems》一书。在众多现代端点安全产品的组件中,最常部署的是负责函数
  • 2024-04-12C 语言宏 + 内联汇编实现 MIPS 系统调用
    目录内联汇编宏函数宏定义Syscall内联汇编编译测试笔者最近作业要求练习MIPS汇编,熟悉MIPS汇编代码与C语言代码的对应关系。然而SPIM/MARS仿真器不能链接共享库以调用外部函数(如stdio.h下的函数),只能通过系统调用实现。C语言可以通过内联汇编(InlineAssembly)实现系统
  • 2024-04-06免杀-syscall
    3x3syscall我们windowsapi的调用,通过层层调用最终还是会进入ntdll的底层函数的调用,再通过syscall快速调用进入0环实现的代码,下面我将记录一些syscall的底层基础知识,最后的代码实现是通过现成项目直接快速调用敏感api,这种现成syscall的项目很多,但是感觉都比较久了免杀效果不太好
  • 2024-03-05从零开始写 Docker(四)---使用 pivotRoot 切换 rootfs 实现文件系统隔离
    change-rootfs-by-pivot-root.png本文为从零开始写Docker系列第四篇,在mydockerrun基础上使用pivotRoot系统调用切换rootfs实现容器和宿主机之间的文件系统隔离。完整代码见:https://github.com/lixd/mydocker欢迎Star推荐阅读以下文章对docker基本实现有一个大
  • 2024-02-23Syscall笔记
    本文首发:https://xz.aliyun.com/t/13687基础知识我们知道,系统核心态指的是R0,用户态指的是R3,系统代码在核心态下运行,用户代码在用户态下运行。系统中一共有四个权限级别,R1和R2运行设备驱动,R0到R3权限依次降低,R0和R3的权限分别为最高和最低。而我们的**syscall**是一个计算机
  • 2024-02-22从零开始写 Docker(一)---实现 mydocker run 命令
    本文为从零开始写Docker系列第一篇,主要实现mydockerrun命令,构造了一个具有基本的Namespace隔离的简单容器。如果你对云原生技术充满好奇,想要深入了解更多相关的文章和资讯,欢迎关注微信公众号。搜索公众号【探索云原生】即可订阅本文主要实现我们的第一个命令mydoc
  • 2024-02-05RK3568驱动指南|驱动基础进阶篇-进阶7 向系统中添加一个系统调用
      瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和MaliG522EE图形处理器。RK3568支持4K解码和1080P编码,支持SATA/PCIE/USB3.0外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568支持安卓11和linux系统,主
  • 2024-01-31手写docker—构造容器(二)
    Dockerrun命令实现本文需要实现第一个命令Mydockerrun,类似于dockerrun-it[command]命令。通过创建新的Namespace来对新进程进行视图隔离。核心需要解决如下问题:命令行参数解析的问题,具体实现时通过github.com/urfave/cli库来实现对用户输入命令行的解析,需要解析
  • 2024-01-21Go语言核心36讲 46 | 访问网络服务
    你真的很棒,已经跟着我一起从最开始初识Go语言,一步一步地走到了这里。在这之前的几十篇文章中,我向你一点一点地介绍了很多Go语言的核心知识,以及一些最最基础的标准库代码包。我想,你已经完全有能力独立去做一些事情了。为了激发你更多的兴趣,我还打算用几篇文章来说说Go语言的网
  • 2023-12-092023最新高级难度Go语言面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-高级难度Go语言面试题合集问:请深入解释Go语言的内存分配和GC(垃圾回收)机制,以及它们如何影响程序的性能。Go语言的内存管理由内置的垃圾回收器自动进行,它将内存分为三个区域:堆、栈和全局区。栈存放局部变量、参数、返回地址等小对象,堆存
  • 2023-12-04go network poller 一
    网络基础协议架构tcp链接假如需要开发者去实现一套新的网络协议(例如redis的resp),是基于TCP的,那tcp这层的协议,是否需要开发者自己去实现?这层如果自己实现,其实很复杂,会涉及很多算法相关.因此,出现了socket对传输层进行了抽象,开发者不需要关注传输层具体
  • 2023-12-02【pwn】shellcode revenge --0~9,A~Z字符的shellcode
    查一下保护拖进ida看主要逻辑这里的代码逻辑为mmap开辟一段有执行的地址,可以写入shellcode,但这次写入的shellcode有限制if(buf>90||buf<=47||buf>57&&buf<=64) break;这里的限制shellcode的十六进制数对应的字符只能是0~9,A~Z,这些十六进制数对应的shellcode
  • 2023-11-27CentOS 7中的系统调用:加深你对操作系统的理解
    CentOS7中的系统调用:加深你对操作系统的理解在CentOS7这样的Linux发行版中,系统调用(SystemCall)是操作系统提供给应用程序的接口之一,它扮演着连接用户空间和内核空间的桥梁。系统调用是操作系统核心功能的一部分,理解它不仅对于系统管理员和开发人员是至关重要的,而且对于深入理解
  • 2023-11-13go使用定时器
    go使用定时器packagemainimport( "fmt" "os" "os/signal" "syscall" "time")funcmain(){ initTask()}funcstop(ticker*time.Ticker){ //创建一个通道来接收信号 sigCh:=make(chanos.Signal,1) //监听指定的信号 si
  • 2023-10-25Metasploit Linux Reverse_Tcp Shellcode 源码分析
    分析Metasploitlinux/x64/shell/reverse_tcpshellcodeShellcode生成使用msfvenom生成c格式的stagedshellcode$msfvenom-plinux/x64/shell/reverse_tcp-fc-ax64--platformlinuxLHOST=192.168.48.233LPORT=4444Payloadsize:130bytesFinalsizeofcf
  • 2023-09-20Clone fail unable to access 'httpsgithub.comLovi-githubmyUserCenter.git' OpenSSL SSL_read
    bug:unabletoaccess'https://github.com/xxx':OpenSSLSSL_read:SSL_ERROR_SYSCALL,errno10054关于git提交github出现errno10054、port443:Timedout等问题解决_git提交10054_husishuai的博客-CSDN博客按照上边的解决方法即可
  • 2023-09-18Windows和Linux下通过go实现自删除
    自删除在攻防中都挺常见的,自写远控通常也有需要。可是在度娘里搜不到什么办法,于是就查查Windowsapi学习记录一回。linux先获得当前程序的文件名,再使用syscall这个包中的Unlink调用系统来删除一个目录或者文件的链接,链接没了也就删除完成了。fileName,_:=os.Executable()