![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 83
测试
yanghuo11
这个作者很懒,什么都没留下…
展开
-
skynet环境搭建
skynet环境搭建本博客的使用环境ubuntu20.04gcc version 9.4.0autoconf1. 获取源码并且编译1.1 获取源码githubgit clone https://github.com/cloudwu/skynet.gitgiteegit clone https://gitee.com/mirrors/skynet.git不能访问github,可以去gitee里面clone镜像1.2 编译源码获取完毕之后直接使用make编译make li原创 2022-05-04 19:49:34 · 1340 阅读 · 0 评论 -
c/c++和python交互
环境:gcc version 9.3.0Python 3.8.10wsl-ubuntu20.041. 开发环境搭建安装python的dev包sudo apt install python3-dev安装完成后会在/usr/include/中会有python对应版本的头文件2. 环境测试2.1 Makefile编写INC=/usr/include/python3.8LIB=python3.8SRC=python3call.cTARGET=python3callall: gcc原创 2022-02-20 21:03:32 · 1397 阅读 · 2 评论 -
原始套接字使用总结 (端口扫描和流量统计实现)
1. 网络中的四层应用层传输层网络层数据链路层数据链路层:解决点对点的通讯 (mac地址)网络层:解决主机到主机的通讯 (ip地址)传输层:解决一台主机的任意的进程和另一台主机的任意进程的通讯 (端口)应用层:解决应用程序个各种业务问题1.1 传输层tcp套接字的使用int fd = socket(AF_INET,SOCK_STREAM,0);AF_INET/AF_INET6 ipv4/ipv6这种套接字可以直接使用tcp协议,发送和接受原创 2021-07-11 22:52:02 · 1238 阅读 · 2 评论 -
ptrace使用和调试
1. 文章参考[原创]一窥GDB原理-PwnLinux ptrace系统调用详解:利用 ptrace 设置硬件断点<<软件调试>> 张银奎2. ptrace函数原型enum __ptrace_request{ PTRACE_TRACEME = 0, //被调试进程调用 PTRACE_PEEKDATA = 2, //查看内存 PTRACE_PEEKUSER = 3, //查看struct user 结构体的值 PTRACE_POKEDATA = 5, //原创 2021-06-12 23:22:41 · 4968 阅读 · 6 评论 -
c语言 goto lable 双取址(&&),动态goto的实现
goto 基本用法#include <stdio.h>int main(int argc,char* argv[]){ int *p = (int *)malloc(sizeof(int)); if (!P) { goto error; } return 0;error: return -1;}用法:给定一个标签名直接goto标签名标签名地址获取#include <stdio.h>int main(int argc,char* argv原创 2021-05-05 17:32:43 · 1901 阅读 · 0 评论 -
逆向分析c++虚函数指针和虚函数表及其内存结构
1. 环境和工具Ubuntu 18.04.4 LTSg++ 7.5.0objdump 静态反汇编gdb + peda插件 动态调试2. 从一个程序说起#include <iostream>class AA{public: virtual void print() {std::cout << "AA" <<std::endl;}};class BB{public: virtual void print() {std::cou原创 2020-11-23 16:34:42 · 1200 阅读 · 0 评论 -
c/c++ setjmp、longjmp实现,实现一个简单的协程
文章目录1.任务切换原理1.1 x86用户层几个关键的寄存器1.2 逆向一个函数了解几个关键的寄存器的作用1.2.1 32位汇编1.2.2 64位汇编1.3 切换实现1.3.1 setjmp和longjmp的实现1.4 测试切换代码2. 协程实现2.1 协程设计2.2 协程定义2.3 协程初始化2.4 协程调度1.任务切换原理1.1 x86用户层几个关键的寄存器eip/rip:存放cpu下一条指令esp/rsp:存放栈顶地址ebp/rbp:保存函数栈底,用于快速找到函数参数和局部变量1.2原创 2020-10-30 16:40:35 · 2435 阅读 · 0 评论