19k words 17 mins.

# vmlearning 笔记 首先清楚什么是 vm,虚拟机器,一种实现不同架构的程序的解释性的软件程序。virtual machine 关于 vmpass 这种解释性的程序,工作原理是根据不同的 cou 架构,不同的程序会生成不同的机器语言代码,指令代码。这个中间文件称作 IR,一般有两种形式 ——bitcode, 二进制机器码,以及.ll 文件,后者是为了方便我们阅读的,可读性较高。 vmpass 程序,对于我们提供的想要模拟运行的代码,我们需要提供类似于指令代码程序的文件,.ll 或者 bc 文件,而文件是被 assmebly...
17k words 16 mins.

# Glibc 高版本 # 前言: ​ 本文旨在讲述在 glibc 2.34ubuntu 高版本下(2.34-0ubuntu3.2)的一些利用手法是否依旧可以使用。会对某些手法进行概括,并没有对其进行深入透彻的讲述。感兴趣的朋友可以自行学习,最后详细介绍了 house of banana. 我只是站在了前任师傅的高台上,为大家进行一些总结分析。 ​ 前不久打算深入的去了解在 2.34 以及 2.35 这两个较高版本的 glibc 的堆漏洞的利用。 # 2.34 (2.35) 如何利用 # 一些对比 2.34 与 2.35 其实非常接近,一般情况下,我们利用的手法也都是一致的,除了继承了...
5.1k words 5 mins.

# Pwnable.tw re-alloc 说明:因为没有合适的 glibc 资源(自已懒),这里只是进行了一个理论分析。 # 环境保护 1234567dreamcat@ubuntu:~/Desktop/pwnable/re-alloc$ checksec --file=re-allocRELRO STACK CANARY NX PIE RPATH RUNPATH Symbols FORTIFY Fortified Fortifiable FILEPartial RELRO Canary found NX enabled No PIE No RPATH No RUNPATH 83)...
849 words 1 mins.

# Reverse 常见的加密算法 在 reverse 的题目中,常常会对我们的输入以及内存数据进行加密,然后与已有的密文进行对比,从而判断我们的输入是否正确 # 基于特征值识别的加密算法:DES,AES,T 系列,md5,sm4 ida pro 插件 https://github.com/polymorf/findcrpyt-yara # T 系列 # TEA,XTEA,XXTEA 有一个明确的特征值,然后对明文进行一些基本的算数运算 # AES—— 块加密算法 有一个固定的 256 字节的数组 sbox [256] 的数组(用于矩阵运算的密钥),...
3.9k words 4 mins.

# 20220512 开始加速学习逆向,以滴水逆向的教程为路线。 下面的内容基于 32 位 pe 程序 # 1,进制 8 进制的 2-3.(32 位) 010 - 011 补码加法:0000 0000 0000 0000 0000 0000 0000 0010 + 1111 1111 1111 1111 1111 1111 1111 1101 结果 17777777777…(8) # 2,EXE 执行文件如何执行程序 什么是程序。什么是数据 程序是数据与可执行代码的组合。 PE 文件结构 # dos 头 12345678910111213141516171819202122typedef...
4.1k words 4 mins.

# 202205 春秋杯 pwn torghast # 环境及保护 2.31 的堆题目 1234dreamcat@ubuntu:~/Desktop/chunqiubei/pwn/torghast$ checksec --file=pwnRELRO STACK CANARY NX PIE RPATH RUNPATH Symbols FORTIFY Fortified Fortifiable FILEFull RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols ...
3k words 3 mins.

# 202205 春秋杯 个人赛 ,chunzhiIOT # exp 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091from pwn import *r=process('./pwn')#context.log_level =...
531 words 1 mins.

# kernelpwn 的进一步学习后, # 虽然很多东西原理与用户态相似,但是终究还是区别很大,尤其是在内存的管理,在用户态的 glibc 使用 pmalloc 进行堆块的管理。但是在内核态,我们申请的空间不在仅仅是局限在几十字节的数据,而且进程对于空间的申请更加频繁,我们需要一个高效简单的管理机制。 目前在内核的空间 主要使用的内存管理机制有 slab,slub,slob,其中 slab 是最早的管理机制,但是在 2.6 的 kernel 后被 slub 所代替。目前 slub 也是默认的管理器。而 slob 主要应用在轻量级和移动端的设备中。 虽然 slab 被 slub...
16k words 15 mins.

# Inctf2021 pwn kqueue heap_overflow # 环境以及保护 首先这个文件系统解压出来重新打包会出现问题,因为按照上一篇博客所讲的,创建 file_system 文件夹后,把文件系统的包丢进去,一旦更改后缀名称就是导致归档失败,无法使用 gunzip 进行解包。手动提取后,使用 find 打包,会导致我们启动的时候,报错我们没有挂载的权限。所以我没有重新打包。 提取出来的 vmlinux 123456789dreamcat@ubuntu:~/Desktop/wykernel/inctf2021_kqueue$ checksec vmlinux[*]...
8.9k words 8 mins.

# ciscn_babydriver uaf, 修改自身的 cred # 保护检查: # qemu 12345dreamcat@ubuntu:~/Desktop/kernel/babydriver$ cat boot.sh #!/bin/bashqemu-system-x86_64 -initrd fs.cpio -kernel bzImage -append 'console=ttyS0 root=/dev/ram oops=panic panic=1' -enable-kvm -monitor /dev/null -m 128M --nographic...