先看源码: 得出如果password1和password2与条件稳合便得出结论,但是scanf没有取地址符 思路是got覆写技术: 先看got信息: 得到fflush@GLIBC_2.0地址为0x0804a004, 再看一下程序汇编 得到name_addr=ebp-0x70 password1_ad ...
分类:
其他好文 时间:
2017-08-02 18:57:45
阅读次数:
206
1.汇编Lea 指令与 Mov 指令 转:http://www.cnitblog.com/textbox/articles/51912.html 比如你用local在栈上定义了一个局部变量LocalVar,你知道实际的指令是什么么?一般都差不多像下面的样子: push ebp mov esp, eb ...
分类:
其他好文 时间:
2017-07-18 10:08:12
阅读次数:
132
1、函数调用 将esp的值传递给ebp,然后进行函数调用,此时我们可以通过[ebp+数值]访问函数的参数,通过[ebp-数值]访问函数的变量。 ...
分类:
编程语言 时间:
2017-07-08 10:04:24
阅读次数:
123
工具:DTDEBUG 分别用 VC6 和VS2010 编写的程序,逆向出来的代码不同。 例如: VC6 一般自己定义的函数 有以下几种特点: 1. LEA EDI,DWORD PTR SS:[EBP-C0] MOV ECX,30 MOV EAX,CCCCCCCC REP STOS DWORD PTR ...
分类:
其他好文 时间:
2017-06-19 00:37:38
阅读次数:
273
一般寄存器:AX、BX、CX、DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器 索引暂存器:SI、DISI:来源索引暂存器,DI:目的索引暂存器 堆叠、基底暂存器:SP、BPSP:堆叠指标暂存器,BP:基底指标暂存器 EAX、ECX、EDX、EBX:為ax,bx,cx,dx ...
分类:
其他好文 时间:
2017-05-22 12:01:20
阅读次数:
205
系统内存保护 1. 基于栈的缓冲区溢出检测(GS/Canary) 我们首先来介绍基于栈的缓冲区溢出检测(GS)的实现,这个机制的本质思想是在缓冲区溢出导致的覆盖位置设置一个标签值,该值具体位于所保存的EBP和RETN(EIP)地址的上方,当从函数返回时会检查这个标签值,看其是否被修改。由于其位于EB ...
分类:
其他好文 时间:
2017-05-15 21:03:30
阅读次数:
139
_RtlEnterCriticalSection@4:77E022D0 mov edi,edi 77E022D2 push ebp 77E022D3 mov ebp,esp 77E022D5 sub esp,0Ch 77E022D8 push esi 77E022D9 push edi 77E022 ...
分类:
其他好文 时间:
2017-05-12 00:13:28
阅读次数:
616
call之前会将实参压入堆栈, call的时候会将当前IP,也就是返回地址压入堆栈,然后跳转 跳转到子程序后会, 先把ebp压栈, 然后mov ebp, esp 这样就可以通过ebp来取局部变量 执行完后会有一条leave指令,其实就是 mov esp, ebp pop ebp leave执行完后, ...
分类:
其他好文 时间:
2017-04-18 10:11:24
阅读次数:
191
ESP:该指针永远指向系统栈最上面一个栈帧的栈顶 EBP:该指针永远指向系统栈最上面一个栈帧的底部01 修改函数返回地址#include#include#define PASSWORD "1234567"int verify_password (char *password){ int authen... ...
分类:
系统相关 时间:
2017-04-03 20:40:33
阅读次数:
316
几个常用的寄存器 sp/esp/rsp(16bit/32bit/64bit)栈寄存器 指向栈顶 bp/ebp/rbp 栈基址寄存器 指向栈底 ip/eip/rip 程序指令寄存器 指向下一条待执行指令 ...
分类:
其他好文 时间:
2017-03-12 15:10:51
阅读次数:
113