简单的内网穿透教程
9502dbcd33a9699250ff29559da0f87d09accc4643ab754bb2934e7a677d268c4e222e29085a05c11290c9f7f7640feb250197843586167864f68323e334f3ee4bc445ced95d16d40ab411f52d06bb51695c1353b20b4b13e8c6cb19e57054eedf2a0cb6b18196d52aeaffd0b9f148e583f1abe6cf65649313ec310d0ac75e7e73bf1fc24f1db3c5c05174bcd73e76f999113426e2c56b5f44037f85e9d4bb8baa9360a4a31cae0f7aafbe53825eac894087e6b134c6fdab4e0ad0b9b22f31418f734fa3782474430e96ba51ab0b7ecc11412e65881a12981ba92541650966a1d29054d964d7d301d09d5c573931fa4b51e3fede4f31e56e8 ...
apt安装gcc高版本绕过添加ppa源
思路是自己伪造一个
1sudo vim /etc/apt/sources.list.d/toolchain.list
填入以下内容
12deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu precise maindeb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu precise main
签名
1sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F
然后更新即可sudo apt update
K8s学习笔记
学习笔记
K8s
资源类型
k8s中的对象(资源类型)主要有4种,分为:
资源对象:Pod Deployment Statefulset Node Namespace等
存储对象:Volumn PersistentVolume等
策略对象
身份对象
每个对象会有两个字段来描述其信息,为Sepc和Status,前者为对象会被调度到的理想状态、后者为对象的当前状态,go-client中的Controller类就是专门做这件事的,他会通过ListWatch监听对象的当前状态,然后与其理想状态做对比,再进行对应的操作。
Raft
Raft协议为k8s的分布式存储提供了节点间状态同步的基础,核心算法为选举和日志复制
动画演示http://thesecretlivesofdata.com/raft/
Controller
Controller是k8s设计用来控制资源的类,可以从提供的官方示例来学习https://github.com/kubernetes/sample-controller.git,从零搭建一个自己的Controller网上也有不少案例,一个比较不错的:https://blog ...
Angr入门简单使用
使用了一个两个数的数组,在八次运算后看是否相同,如果相同输出win
方法一
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Author: xoreaxeaxeaxModified by David Manouchehri <manouchehri@protonmail.com>Original at https://lists.cs.ucsb.edu/pipermail/angr/2016-August/000167.htmlThe purpose of this example is to show how to use symbolic write addresses."""import angrimport claripydef main(): ...
CTF-HWSCTF2023 Winter WP
Reverse
easyre
用了多线程检查结果
密钥通过动调得到,srand应该在某个地方调用了但是没找到。
1234567891011121314151617181920212223242526272829303132333435#include "stdio.h"typedef u_int32_t uint32_t;void decipher(unsigned int num_rounds, uint32_t v[2], uint32_t const key[4]){ unsigned int i; uint32_t v0 = v[0], v1 = v[1], delta = 0x9E3779B9, sum = delta * num_rounds; for (i = 0; i < num_rounds; i++) { v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + key[(sum >> 11) & 3] ...
Pwn-gdb使用大全
https://blog.csdn.net/Breeze_CAT/article/details/103789233
Afl-QEMU安装
在2.52b版本中,由于年代久远,build_qemu_support.sh文件需要更新一下
将以下内容写到patches的memfd_create.diff中
12345678910111213diff -ru qemu-2.10.0-clean/util/memfd.c qemu-2.10.0/util/memfd.c--- qemu-2.10.0-clean/util/memfd.c 2018-11-20 18:11:00.170271506 +0100+++ qemu-2.10.0/util/memfd.c 2018-11-20 18:11:13.398423613 +0100@@ -37,7 +37,7 @@ #include <sys/syscall.h> #include <asm/unistd.h> -static int memfd_create(const char *name, unsigned int flags)+int memfd_create(const char *name, unsigned int flags) ...
折腾安装Afl-Dyninst
巨无语,弄了两天
首先根据afl-dyninst的更新时间,选择到最近的一个commit - 332198e9abd581de1070f1010932067bcd2ed60b
https://github.com/dyninst/dyninst/tree/332198e9abd581de1070f1010932067bcd2ed60b
下载包,安装
1sudo apt-get install libiberty-dev libboost-all-dev libtbb-dev libdwarf-dev
还需要下载elfutils-0.173版本,默认编译和安装目录即可,主要是apt里面的版本太老了。
解压dyninst,到文件夹下
12345mkdir build && cd buildcmake .. -DBOOST_LIBRARYDIR=/usr/lib/x86_64-linux-gnu -DCMAKE_INSTALL_PREFIX=../target -DLIBELF_LIBRARIES=/usr/local/lib/libelf.so -DLIBELF_INCLU ...
AFL-机制剖析
来源:
https://tttang.com/archive/1595/
https://paper.seebug.org/1732/
这篇文章主要目的是梳理afl的关键机制,即编译和fuzz主要逻辑的梳理。
编译过程
afl-gcc
我们主要用afl-gcc对源码进行编译和插桩。
afl-gcc实际上是对gcc命令的封装。
这里使用了一个关键函数find_as,用于寻找afl-as的路径。
12345678910111213141516// afl-gcc.c: 310int main(int argc, char** argv) { ... find_as(argv[0]); edit_params(argc, argv); execvp(cc_params[0], (char**)cc_params); FATAL("Oops, failed to execute '%s' - check your PATH", cc_params[0]); return 0;}
在命令的转换过程中,加入了-B选项,用于设置 ...