1 X86和X87汇编指令大全(有注释) 2 一、数据传输指令 3 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 4 1. 通用数据传送指令. 5 MOV 传送字或字节. 6 MOVSX 先符号扩展,再传送. 7 MOVZX 先零扩展,再传送. 8 PUSH 把字压入堆栈. 9 POP ...
分类:
编程语言 时间:
2020-02-23 16:12:20
阅读次数:
77
头一次见这种题。。。 32位程序,开启了堆栈不可执行。 ida看一眼伪代码。main函数跟前有个函数,进去看一眼。 就一个gets函数,干净利落。。。 可以进行溢出。听大佬们说,这种情况,就是特别ida看起来特复杂,就是静态编译的结果。静态编译就不会调用libc中的东西,所以我们也不存在泄露版本利用 ...
分类:
其他好文 时间:
2020-02-22 21:43:43
阅读次数:
122
栈顶指针esp 栈底指针ebp esp寻址 构建函数 1.使用寄存器传递参数 2.使用堆栈来传递参数 push 1 push 2 push 3 把要用的参数压入堆栈后,需要用call调用函数来计算参数,调用call时,会将call的下一行指令的地址压入栈中,所以使用参数时地址为[esp+4,8,12 ...
分类:
其他好文 时间:
2020-02-21 20:34:56
阅读次数:
84
Flutter 中的路由 Flutter 中的路由通俗的讲就是页面跳转。在 Flutter 中通过 Navigator 组件管理路由导航 并提供了管理堆栈的方法。如:Navigator.push 和 Navigator.pop Flutter 中给我们提供了两种配置路由跳转的方式:1、基本路由 2、 ...
分类:
其他好文 时间:
2020-02-20 21:58:01
阅读次数:
61
41. 包含min函数的栈 设计一个支持push,pop,top等操作并且可以在O(1)时间内检索出最小元素的堆栈。 push(x)–将元素x插入栈中 pop()–移除栈顶元素 top()–得到栈顶元素 getMin()–得到栈中最小元素 单调栈) O(1) https://www.acwing.c ...
分类:
其他好文 时间:
2020-02-20 17:01:58
阅读次数:
92
本文始发于个人公众号: TechFlow ,原创不易,求个关注 栈的定义 原本今天想给大家讲讲快速选择算法的,但是发现一连写了好几篇排序相关了,所以临时改了题目,今天聊点数据结构,来看看经典并且简单的数据结构——栈。 栈这个结构我想大家应该都耳熟能详,尤其是在很多地方将和堆并列在一起,称作“堆栈”就 ...
分类:
其他好文 时间:
2020-02-20 09:50:54
阅读次数:
50
一、jvm是干什么的? 大家都知道java是跨平台语言,一次编译可以在不同操作系统上运行,怎么做到的呢,看下图: javac把写的源代码(java文件),编译成字节码(class文件),字节码部署到linux/windows/..上,被对应的jvm解释成机器码运行,jvm的工作就是这个。 大家都知道 ...
分类:
其他好文 时间:
2020-02-19 17:21:07
阅读次数:
65
在C++中,内存分为5个区,分别是堆、栈、自由存储区,全局/静态存储区、常量存储区。 栈:由编译器在需要的时候分配,不需要时自动起初的存储区。连绵的变量为局部变量,函数参数等。 堆:由malloc分配的空间,申请和释放都需要程序员手动进行,释放由free进行释放。 自由存储区:由new分配的内存块, ...
分类:
编程语言 时间:
2020-02-19 17:09:34
阅读次数:
87
此题考整型的有符号无符号的东西。。。 下载文件还是,先检查一下保护。 64位程序,只开启了堆栈不可执行,看一下ida的伪代码。 大概流程就是先让你输入一个数,这个数就是后面read的可以输入的长度,要想进行溢出,就必须有足够的长度,但是有一个校验,不让这个数大于十,我们得想办法绕过这个校验,让我们可 ...
分类:
其他好文 时间:
2020-02-19 14:55:01
阅读次数:
90
这道题是一道基本题,正因为它经典,所以需要重点记录一下。 这道题考察格式化字符串泄露canary,然后rop获得libc版本,之后拿到shell。拿到程序之后我们先检查一下保护。。。 开启了堆栈不可执行和canary保护。接下来ida看一下伪代码吧! main函数中调用了三个函数,我们一个一个点进去 ...
分类:
其他好文 时间:
2020-02-19 13:23:41
阅读次数:
93