- 博客(3)
- 资源 (4)
- 收藏
- 关注
原创 函数栈及缓冲区溢出攻击(二)
在本一章,将给出一个例子,讨论如何准备一些特殊的数据,将这些数据传给没有做溢出检测的函数,从而获得程序的控制权。不多说,先上代码 #include #include void B() { printf("Function B has been called\n"); } void A(char* pData) { char a[10] = {0}; strcpy(
2013-11-14 20:37:28 511
原创 函数栈及缓冲区溢出攻击(一)
关于函数栈 栈是向下生长的,简单的说就是栈底地址大于栈顶地址。就x86体系的CPU而言,寄存器ebp指向的是栈底,而寄存器esp指向的是栈顶. 假设函数A调用函数B,我们称A函数为"调用者",B函数为“被调用者”则函数调用过程可以这么描述: (1)先将调用者(A)的堆栈的基址(ebp)入栈,以保存之前任务的信息。 (2)然后将调用者(A)的栈顶指针(esp)的值赋给eb
2013-11-14 01:34:01 662
转载 不良编程文化
“这代码真垃圾”,当我们翻查一些代码寻找一个特别讨厌的bug时,同事大声这样说。“是吗”,我回答到。 像这样的谴责,以及其它一些类似的话,在办公室里经常会听到,而且频率在增加。而最令人不安的是,这代码并不是特别的糟糕。我这话是什么意思?不能把它们写的更好吗?当然!大多数的代码都有改善的空间——只要有足够的时间和资源。垃圾代码确实有,我们都看得见,而且都是我们自己写的,但这并不
2013-11-14 13:08:22 359
图像色彩的处理(图像的灰度化,透明度,亮度的调节)
2010-08-19
VC++ GDI图像编程指南
2010-05-14
数电模电教程foguihoigh
2009-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人