摘要:
1、编译python代码 1.1 python代码 test.py 1 def ftest(): 2 x = 3 3 ftest() 1.2 编译工具 disass_py.py #-*- coding:utf8 -*- import dis import sys def disassemble_fi 阅读全文
摘要:
1、go func 编译如下程序,将断点打在go recvGen 和go tstPrint 处,分别单步调试进入newproc 函数查看fn地址 package main import "fmt" func tstPrint(x int, c chan int) { fmt.Printf("%d", 阅读全文
摘要:
1、settls 从引导代码中可以看到,在执行settls前将m.tls放入了DI。 go/src/runtime/asm_amd64.s:159 TEXT runtime·rt0_go(SB),NOSPLIT|NOFRAME|TOPFRAME,$0 .... LEAQ runtime·m0+m_t 阅读全文
摘要:
1、调度器初始化 调用点:src/runtime/asm_amd64.s:349 -> CALL runtime·schedinit(SB) runtime/proc.go : 526 func schedinit() { // raceinit must be the first call to 阅读全文
摘要:
1、入口 1.1 准备go程序 package main func test() int { return 1 } func main() { go test() } 编译 go build main.go 1.2 使用readelf 查找入口 root@xxx:/data# readelf -h 阅读全文
摘要:
原文 1. 汇编知识 1.1. 寄存器 64 位模式下,虽然处理器现在只能支持 48 位的地址,但是理论上,地址最大为 64 位。从寄存器来看,64 位模式与 32 位最主要的区别如下所示: 16 个 64 位通用寄存器(32 位模式只有 8 个通用寄存器) 8 个 80 位浮点寄存器 1 个 64 阅读全文
摘要:
原文 阅读源码版本python 3.8.3 参考书籍<<Python源码剖析>> 参考书籍<<Python学习手册 第4版>> 官网文档目录介绍 Doc目录主要是官方文档的说明。 Include:目录主要包括了Python的运行的头文件。 Lib:目录主要包括了用Python实现的标准库。 Modu 阅读全文
摘要:
原文 概述 对于大型的工程项目,依赖许多人的配合,包含大量不同的代码库与服务,有的我们能够访问程序的源代码,有的可以访问程序的可重定位文件,有的可以访问到可执行文件及其环境,假如我们想在在不同的层面改变或者添加一些逻辑,操作系统、编译器以及程序语言、代码库等都提供了 一些机制使得 开发者可以 方便的 阅读全文
摘要:
本文是《Hooking Linux Kernel Functions, Part 3: What Are the Main Pros and Cons of Ftrace?》的翻译文章。 前言 Ftrace是一个Linux实例程序,通常用于跟踪内核函数。 但是,当我们寻找一个有用的解决方案,允许我们 阅读全文
摘要:
本文是《Hooking Linux Kernel Functions, Part 2: How to Hook Functions with Ftrace》的翻译文章 前言 Ftrace是一个用于跟踪Linux内核函数的Linux内核框架。 但是,当我们尝试启用系统活动监控以阻止可疑进程时,我们的团 阅读全文