许大仙's Litt1ε Bl0g

一只想变成大佬的小白

「usercorn」追溯cmd到execute以及elf文件头解析

usercorn源码分析中……

usercorn对binary的加载和对binary文件头的解析 go/cmd/main/main.go中package main->func main()作为usercorn的起始运行点。 其中调用cmd.Main()运行,调用了cmd包中的Main函数,即为go/cmd/launcher.go中的Main() go/cmd/launcher.go中的Main()调用 ...

「usercorn」嵌入式系统fuzz研究之AFL-UNICORN

New Research Here……

为了研究跨CPU构架的内存安全性检测问题,开始学习AFL-Unicorn、drmemory、unicorn的问题。 Unicorn Introduction Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework.Unicorn是一个跨平台、跨构架的轻型CPU仿真框架。 Un...

符号执行入门学习

最近由于在接触fuzz的缘故,需要学习一下符号执行(symbolic execution)和混合执行测试(concolic testing)相关的内容。 一、定义 符号执行 (Symbolic Execution)是一种程序分析技术,它可以通过分析程序来得到让特定代码区域执行的输入(使得指定的目标代码得到覆盖)。 顾名思义,使用符号执行分析一个程序时,该程序会使用符号值作为输入,而非一...

用于dp的状态压缩思想

状态压缩 适用范围 维数很多+总量很少时,可以将状态压缩为一个数来记录 【一般就是有n<20,n<12这种很小的范围的时候,要考虑到状态压缩】 参考:https://www.cnblogs.com/shzr/p/9064737.html 状态压缩就是把很多维度的状态,压缩成一个数值来表示。比如用二进制/十进制等的方式来存储状态,把状态变成一个数字。 例如:vis[x]=1...

「MIT 6.828」MIT 6.828 Fall 2018 lab2

lab2开始了,猴多啊……

Lab2—Memory management 回顾 在lab1中,完成了实模式【16bits】到保护模式【32bits】的转换,但是在系统真正要接管内存【在cr0开启地址转换】,分配真正页表之前,要有一个简单的页表将kernel code载入到内存中【赋值到cr3】。 即kern/entrypgdir.c,设置了虚拟地址0x00000000-0x00400000以及0xF0000000...

「洛谷」基础算法练习

持续更新中……

Car旅行 已知矩形三个顶点求第四个 确定直角点:可以判断(x2-x1)*(x3-x1)+(y2-y1)*(y3-y1)是否为0,如果为0,则证明点(x1,y1)即为直角点,如果不是,我们继续判断(x2,y2),(x3,y3),这三个点肯定有一个是直角点。 利用对角线上的点横坐标之和等于中点横坐标的二倍这个方法求出 若已知直角点为x...

「MIT 6.828」MIT 6.828 Fall 2018 lab1

MIT的os lab完成一次好久啊,但是学到好多……

基础环境 通过git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab搭建实验环境,并在lab目录中输入make(或BSD系统上的gmake)来构建最小的6.828引导加载程序[boot loader]和内核。 make后生成了一个 kernel.img 的镜像。 但是出现了Error,之前构建的之后没有...

「MIT 6.828」MIT 6.828 Fall 2018 Tools

MIT OS学习中……

测试编译链 环境:ubuntu desktop虚拟机(32-bit) objdump -i –info 显示对于 -b 或者 -m 选项可用的架构和目标格式列表 应当支持:elf32-i386 (header little endian, data little endian) gcc -m32 -print-libgcc-file-name -print-file-na...

「堆漏洞」堆结构复习之malloc和free的过程

lab2开始了,猴多啊……

bin的组织结构 ptmalloc【多线程版的malloc】一共有128个bin。用于分配用户动态请求的虚拟空间【系统调用底层:glibc通过brk()&mmap()实现】 bins的情况 unsorted bin 2-64为small bins,共62个【最小为16B,最大为504B,相邻small bin之间8 字节差别,bin内相同大小】 ...

“hitcon pwn writeUp(一)”

完成lab1-lab10啦……

来自HITCON pwn的练习 lab2 这一题是直接让你输入shellcode然后程序就去执行你的shellcode,但正如这道题的名字orw,获取flag的方法是用open,read,write三个syscall来完成的。 prctl( int option,unsigned long arg2,……) 这个系统调用指令是为进程制定而设计的,明确的选择取决于option。...