Monthly Archives: September 2017

Python正则表达

正则表达式的常用操作符 操作符 说明 示例 . 表示任何单个字符 [] 字符集, 对单个字符给出取值范围 [abc]表示a,b,c, [a-z]表示a到z单个字符 [^ ] 非字符集, 对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符 * 前一个字符0次或无限次扩展 abc*表示ab, abc, abcc等 + 前一个字符1次或无限次扩展 abc+表示abc, abcc, abccc等 ? 前一个字符0次或1次扩展 abc?表示ab, abc | 左右表达式任意一个 abc|def表示abc或def {m} 扩展前一个字符m次 ab{2}c表示abbc {m,n} 扩展前一个字符m到n次(含n) ab{1,2}c表示abc, abbc … Continue reading

Posted in algorithms | Leave a comment

关于C指针的各种用法的具体值分析

在学习堆漏洞方面的知识时,会遇到各种指针,用于修改内存中的值,一直很混淆,因此在此进行了一个小实验,对C语言中指针的各种用法,具体值如何,做了一个比较详尽的实验。虽然花费了很长时间,但是很好地提高了对指针的理解。 #include <stdio.h> #include <stdlib.h> #include <stdint.h> #define malloc_size 0x80 uint64_t *chunk0_ptr; uint64_t *chunk1_ptr; int main(){ chunk0_ptr = (uint64_t*)malloc(malloc_size);//chunk a chunk1_ptr = (uint64_t*)malloc(malloc_size);//chunk b printf(“&chunk0_ptr = %p\n”, &chunk0_ptr); printf(“&chunk1_ptr = %p\n”, &chunk1_ptr); printf(“结论: &p 为 p 在bss段(全局变量在bss段,局部变量在栈上) 的存储地址,且指针长度为4bytes\n”); printf(“chunk0_ptr = … Continue reading

Posted in algorithms | Leave a comment