摘要: 最近通过github和hexo搭建博客时,遇到一些问题,这里写一篇博客记录一下他们的解决方法,顺便推荐几篇关于搭建博客的教程 https://zhuanlan.zhihu.com/p/60578464 https://firstfan119.github.io/2019/12/06/hexo-bui 阅读全文
posted @ 2023-06-23 15:34 alexlance 阅读(26) 评论(0) 推荐(0) 编辑
摘要: ciscn_2019_c_1 这道题的主要应用知识是基本ROP中的retlibc,所以通过这一道题来学习一下retlibc以及复习静态链接和动态链接相关知识 复习 关于动态链接的话,主要是需要知道动态链接库libc.so中的代码映射到内存中结构不变 比如说: //假设在文件中的地址是0x40030, 阅读全文
posted @ 2023-06-15 21:20 alexlance 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 可执行程序是如何诞生的? 编译链接过程(简述) 先稍微回顾一下,在生成可执行文件之前,程序会经历三步,分别是预处理、编译、汇编,预处理是将宏展开、#include、#ifendif这些条件编译,还有添加行号、删除注释信息,生成.i文件,然后是编译阶段,计算机会经过语法分析、语义分析、词义分析,并且进 阅读全文
posted @ 2023-06-03 17:11 alexlance 阅读(414) 评论(0) 推荐(0) 编辑
摘要: C语言流 流 就每个C程序而言,所有的I/O操作只是简单从程序引进和移出字节,这种字节流叫做流,绝大多数流是完全缓冲的,这意味着读取和写入实际上是从一块称为缓冲区的内存区域来回复制数据,从内存中来回复制数据是非常快捷的,用于输出流的缓冲区只有被写满时才会被刷新到设备或文件中,把写满的缓冲区一次性输出 阅读全文
posted @ 2023-05-30 20:31 alexlance 阅读(49) 评论(0) 推荐(0) 编辑
摘要: C语言static篇 变量 #include<stdio.h> void func() { int a = 0; printf("%d\t", a); static int b; printf("%d\n", b); } int main() { func(); return 0; } #inclu 阅读全文
posted @ 2023-05-29 19:50 alexlance 阅读(27) 评论(0) 推荐(0) 编辑
摘要: #:预处理指令宏剥离用 ##:预处理指令宏粘合使用 先谈谈# #define str(n) n #define str(n) aanbb//无法实现 #define str(n) "aanbb"//只能输出字符串“aanbb”,无法达到预期目的 #define str(n) "aa"#n"bb"// 阅读全文
posted @ 2023-05-28 11:43 alexlance 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 预处理器 预定义符号 由预处理器定义的符号 // 进行编译的源文件名称 __FILE__ // 文件当前行号 __LINE__ // 文件被编译的日期 __DATE__ // 文件被编译的时间 __TIME__ // 如果编译器遵循ANSI C,值为1,否则未定义 __STDC__ #define 阅读全文
posted @ 2023-05-28 10:59 alexlance 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 高级指针 补充回顾 标量:这个名称似乎是《C和指针》的特有名词,他是为了区分数组而产生,数组可以通过下标或者数组名间接访问,可以理解为向量,而标量则与其相反,例如结构体,但是在某些博客上,则认为标量是指枚举类型、字符类型以及整数类型 指向指针的指针 int i; int *pi; int **pii 阅读全文
posted @ 2023-05-27 22:34 alexlance 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 先检查一下开了什么保护机制 打开32位ida看看 这个是啥鸭,像这种c++的代码最难看了,只能一个函数一个函数的百度 我在这边简述一下,这些函数一大串就是实现了把s数组中的I整体替换成了you,其他的就没了,然后我们先去找找有没有后门函数之类的 找到了一个叫做get_flag的函数,打开一看,确实是 阅读全文
posted @ 2023-05-26 21:12 alexlance 阅读(106) 评论(0) 推荐(0) 编辑
摘要: ciscn_2019_n_1 题目分析 这题的主要溢出点在于gets(v1),但是这题有两种思路,第一种方法是通过gets函数溢出修改变量v2的值,使v2能够通过if判断语句,执行system函数,第二种方法还是通过gets(v1)溢出,不过这次是通过libc来实现,将ebp覆盖为system函数的 阅读全文
posted @ 2023-05-26 18:47 alexlance 阅读(47) 评论(0) 推荐(0) 编辑