能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
[求助]简单溢出问题
也许确实是程序在运行过程对字符串有特殊的的处理,使AAA到了堆栈底。我试试跟下程序。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
[求助]简单溢出问题
http://bbs.pediy.com/showthread.php?t=123602
就是论坛里教程,前两篇的内容,用的实例,一个叫easy rm to mp3的程序。
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
[求助]单字节溢出原理
对于调试版本,VC++编译器在“直接调用地址”时会增加检查esp的代码,例如:
ta = (TAdd)add; // TAdd定义:typedef int (__cdecl *TAdd)(int a, int b);
c = ta(a, b);
产生以下汇编代码:
mov [ebp-10h],0040100a
mov esi,esp
mov ecx,dword ptr [ebp-8]
push ecx
mov edx,dword ptr [ebp-4]
push edx
call dword ptr [ebp-10h]
add esp,8
cmp esi,esp
call __chkesp (004011e0)
mov dword ptr [ebp-0Ch],eax
__chkesp 代码如下。如果esp不等于函数调用前保存的值,就会转到错误处理代码。
004011E0 jne __chkesp+3 (004011e3)
004011E2 ret
004011E3 ;错误处理代码
__chkesp的错误处理会弹出对话框,报告函数调用造成esp值不正确。 Release版本的汇编代码要简洁得多。也不会增加 __chkesp。如果发生esp错误,程序会继续运行,直到“遇到问题需要关闭
|
能力值:
( LV2,RANK:10 )
|
-
-
[分享]Exploit 编写系列教程 1-10合集 [修正]
看完教程之后,就实践了一下单字节溢出,自己写了个有存在单字节溢出的程序,溢出过程中出现一个问题:
00401238 add esp,24Ch
0040123E cmp ebp,esp
00401240 call __chkesp (00401320)//在这里这个函数会把堆栈恢复,并弹出错误
00401245 mov esp,ebp //ebp被覆盖
00401247 pop ebp
00401248 ret
__chkesp会把堆栈恢复,没法继续进行了。。想问下,这个东西在每个程序里都存在么?能把它去掉么?
|
能力值:
( LV2,RANK:10 )
|
-
-
[求助]单字节溢出原理
确实是在前一函数中,函数结束时,把覆盖的ebp,赋值给esp,感谢提醒。
现在又遇到个问题,
00401238 add esp,24Ch
0040123E cmp ebp,esp
00401240 call __chkesp (00401320)//在这里这个函数会把堆栈恢复,并弹出错误
00401245 mov esp,ebp //ebp被我们覆盖
00401247 pop ebp
00401248 ret
这样我就没法继续了,,有没有什么办法能把这函数去掉么?
|
能力值:
( LV2,RANK:10 )
|
-
-
[求助]单字节溢出原理
函数调用结束的时候,要退出当前的栈帧
先,mov esp,ebp //使esp,ebp指向同一个地方,就是前一栈帧的ebp, 到这里还是正常的啊
pop ebp //弹出了我们覆盖的地址给ebp, 这时候,ebp的值变成我们覆盖的,这时候堆栈应该不正常了。
ret //相应的这里pop eip也出问题了,就是不明白这里到底怎么弹出的。。怎么弹出跳转地址,或shellcode的地址。。
|
能力值:
( LV2,RANK:10 )
|
-
-
[求助]单字节溢出原理
我又看了下上面提到的教程,讲的还是可以直接填充缓冲区,直到覆盖eip,没有说单字节时候是什么情况。
函数调用结束的时候,要退出当前的栈帧
先,mov esp,ebp //使esp,ebp指向同一个地方,就是前一栈帧的ebp, 到这里还是正常的啊
pop ebp //弹出了我们覆盖的地址给ebp, 这时候,ebp的值变成我们覆盖的,这时候堆栈应该不正常了。
ret //相应的这里pop eip也出问题了,就是不明白这里到底怎么弹出的。。怎么弹出跳转地址,或shellcode的地址。。
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|