kayoch1n's blog

「願いは誰にも 撃ち落とせない」

数论学习笔记 - 欧几里得算法

心を燃やせ

欧几里得算法 欧几里得算法是一个用来计算两个整数的最大公因数的算法,最早出现在欧几里得的《几何原本》(wiki语)。 辗转相除法 在天朝,该算法又叫做“辗转相除法”。为了求得两个正整数 $a$ 和 $b$ 的最大公因数,首先用 $b$ 除 $a$ 得到余数 $d_1$,接着将 $b$ 作为被除数、$d_1$ 作为除数,用 $d_1$ 除 $b$ 得到余数 $d_2$,然后分别将 $d_...

数论学习笔记 - 欧拉函数

今日の空は青いですね☀

欧拉函数(Euler’s totient function) 定义 定义欧拉函数 $\varphi(n)$ 是小于 $n$ 且 和 $n$ 互质 的正整数的集合的计数,即 \[\varphi(n)=\mid S\mid \text{ , }S=\big\{x\mid x\in\mathbb{Z}^{+}\text{, } x\le n\text{ and }\gcd(x,n)=1\bi...

数论学习笔记 - 蒙哥马利算法

⚡在固定模数的情况下对大整数取模⚡

正文 计算机中的模运算 a % m,在数论里面可以看作求 $a$ 的模 $m$ 最小非负剩余,用手工运算实现的话就是用长除法(long division)得到余数。长除法的算法描述步骤如下, 初始条件 $q_0=0$,$i=0$ 用 $q_i$ 乘以 $m$ 得到 $A_{i}=q_im$ $q_i=q_i+1$ 比较 $A_{i}$ 和被除数$a_i$。如果 $A_{...

Buuoj冲分过程(指俯冲)その2

一些PWN

正文 babyfengshui_33c3_2016 #!/usr/bin/python3.6 from pwn import * from LibcSearcher import LibcSearcher filename = './babyfengshui_33c3_2016' e = ELF(filename) p = process(filename) # p = remote...

Ubuntu 安装各种程序

[]~( ̄▽ ̄)~*🍻

正文 操作系统是64bit的ubuntu 18.04 。 ubuntu@VM-0-5-ubuntu:~$ cat /etc/os-release NAME="Ubuntu" VERSION="18.04.4 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.4 LTS" VERSION_ID=...

Buuoj冲分过程-vn_pwn_simpleHeap

一个glibc堆利用的例子 🍺明けましておめでとうございます😆

正文 sub_C39 函数有一个 off-by-one 漏洞,会从stdin读取、写入多一个字节。根据堆内存的chunk结构,我们可以覆盖下一个chunk mchunk_size的最后一个字节并修改chunk的大小,然后利用chunk的分裂特点、分配得到重叠的chunk并泄露出 main_arena.top 的地址;进一步利用重叠的chunk修改 fastbin并在 main_arena ...

Buuoj冲分过程(指俯冲)その1

一些PWN

正文 Requirements python ropgadget pwntools LibcSearcher file xxx arch, stripped? ...

glibc 堆内存分配学习笔记

本文是关于glibc的堆内存分配源代码malloc.c的学习笔记.

前段时间项目组换了一个新来的产品经理;这位大佬还未熟悉产品, 别人问到啥问题都要找测试回答, 连客户演示、销售之类的问题都要来找测试, 晕😵, 到底我是产品还是你是产品? 宏定义 名称 32bit取值 64bit取值 定义 备注 SIZE_SZ 4 ...

Buuoj冲分过程-ciscn_2019_c_1

ROP入门

正文 Check二进制对象 先把程序下载下来检查下是什么情况:x86-64,有符号表,禁止从堆栈执行代码而且没有栈溢出警惕标志。 [root@VM_0_5_centos buuoj]# file ciscn_2019_c_1 ciscn_2019_c_1: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically ...

信息安全学习笔记 - BUUOJ RE

问题 reverse2 用IDA分析程序逻辑得出,有一个作为全局静态变量存在的C字符串,原始值为 "hacking_for_fun}",main函数将这个字符串中的"r"和"i"换成"1",这个就是答案。 [SUCTF2019]SignIn IDA分析程序逻辑。题目用到了一个叫做gmplib(多精度运算库),其中一个函数 mpz_powm 用来计算高次幂剩余。题目要求输入一个长度99...