深度搜索破解密码

百度一面的一道题目,今天才想起来实现以下,给面试官说的时候没表达清楚,现在想想原因还是对递归掌握的深度不够,逻辑没有表达好.

下面是代码,其中characters里存放的是密码可能出现的字符,我这里只存了几个,比较方便,不然执行时间过长.
[cpp] view plaincopy
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h&gt

[……]阅读全文

简单栈溢出

C语言中,每一个函数调用都会有自己的栈空间,WIN32下用2个寄存器来标识位于栈顶的工作单元:

EBP:指向当前工作栈区的底部
ESP:指向当前工作栈区的顶部
函数调用步骤为:
(1) 参数从右至左依次入栈
(2) 返回地址入栈
(3) 代码区跳转
(4) 更改EBP,ESP寄存器,开辟新的栈工作区
一个函数调用时的指令大致为
! push arg2;
push arg1;
push arg0;
push 返回地址;
push ebp; //保存旧的栈区底部
mo[……]阅读全文