一.函数调用栈过程总结 Fig 1. 函数调用发生和结束时调用栈的变化 Fig 2. 将被调用函数的参数压入栈内 Fig 3. 将被调用函数的返回地址压入栈内 Fig 4. 将调用函数的基地址(ebp)压入栈内,并将当前栈顶地址传到 ebp 寄存器内 二.函数调用栈实例说明 首先我们来看看以下程序调用栈的过程: int sum(int a,int b) { ; temp = a+b; return temp; } int main() { ; ; ; ret = sum(a,b); cout<<…
栈溢出 一.基本概念: 函数调用栈情况见链接 基本准备: bss段可执行检测: ​ gef➤ b main Breakpoint at . gef➤ r Starting program: /mnt/hgfs/Hack/CTF-Learn/pwn/stack/example/ret2shellcode/ret2shellcode gef➤ vmmap ROPgadget ROPgadget --binary rop --only 'pop|ret' | grep 'eax' ROPgadget…
看门见码 #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> void getshell(void) { system("/bin/sh"); } void init() { setbuf(stdin, NULL); setbuf(stdout, NULL); setbuf(stderr, NULL); } void vuln() {…
准备知识引用自https://www.freebuf.com/articles/rookie/182894.html 0×01 利用思路 ret2libc 这种攻击方式主要是针对 动态链接(Dynamic linking) 编译的程序, 因为正常情况下是无法在程序中找到像 system() .execve() 这种系统级函数 (如果程序中直接包含了这种函数就可以直接控制返回地址指向他们,而不用通过这种麻烦的方式). 因为程序是动态链接生成的,所以在程序运行时会调用 libc.so (程序被装载时…
下面我将参考其他资料来一步步示范shellcode的几种编写方式 0x01 系统调用 通过系统调用execve函数返回shell C语言实现: #include<unistd.h> #include<stdlib.h> char *buf [] = {"/bin/sh",NULL}; void main { execve(); exit(); }   execve函数在父进程中fork一个子进程,在子进程中调用exec函数启动新的程序.execve()用来执行第…
Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/amd64下的Linux Pwn常见的Pwn手法,如栈,堆,整数溢出,格式化字符串,条件竞争等进行介绍,所有环境都会封装在Docker镜像当中,并提供调试用的教学程序,来自历年赛事的原题和带有注释的python脚本. 课程回顾>> Linux Pwn入门教程第一章:环境配置 Linux Pwn入门教程…
果然集训就是学长学姐天天传授水铜的动态规划和搜索,今天讲DP由于困意加上面瘫学长"听不懂就是你不行"的呵呵传授,全程梦游.最后面对连入门都算不上的几道动态规划,我的内心一片宁静,甚至有一丝的想笑. 弱鸡第一次写博客,来分享一些对汉诺塔问题的理解吧: http://www.cnblogs.com/fanzhidongyzby/archive/2012/07/28/2613173.html 遵从tls"遇到不懂问题就xjb乱搜"原则,搜到了这篇文章.看完之后基本有了点眉…
“OOP永远是我的好朋友爸爸!” ——来自某无能狂怒的菜鸡 身处在OO的第一个摸鱼黄金周中的我,感觉到了巨大的满足感.如果写博客这种充满意义的事情可以代替我们亲爱的作业,那么我提议每周来两个:)下面开始正经分析~ Homework 1  简单多项式求导 Part1 程序架构分析 面对人生的第一次面向对象程序,没有学过java的我认认真真思考了整个代码框架,最后通过不懈努力,完完全全写成了面向过程(毕竟我又没得对象). 在这次作业中使用了三个类:PolyDerivation.Poly.Term.程…
这个ACM退役帖,诸多原因(一言难尽...),终于决定在我大三下学期开始的时候写出来.下面说两个重要的原因. 其一是觉得菜鸡的ACM之旅没人会看的,但是新学期开始了,总结一下,只为了更好的出发吧. 其二是感觉没什么好写的,直到上学期期末我发现ACM给了我一些宝贵的东西,想跟大家分享一下. 主要有缘起ACM,如何准备ACM的,ACM究竟给了我什么三个部分内容(长文警告). 缘起ACM 从高中的时候说起....不,开玩笑,还是从大学说起吧.高考结束后,由于分数没有过二本线,无奈的选择了郑州的一所民办…
关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/12/es-code03/ 前提 上篇文章写完了 ES 流程启动的一部分,main 方法都入口,以及创建 Elasticsearch 运行的必须环境以及相关配置,接着就是创建该环境的节点了. Node 的创建 看下新建节点的代码:(代码比较多,这里是比较关键的地方,我就把注释直接写在代码上面了,实在不好拆开这段代码,300 多行代码) public Node(Environment env…