首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

念弄个栈攻击的例子,为啥在kernel32.dll 和 ntdll.dll 中找不到 jmp esp

2013-08-09 
想弄个栈攻击的例子,为啥在kernel32.dll 和 ntdll.dll 中找不到 jmp esp网上看了,说能在 kernel32.dll 和

想弄个栈攻击的例子,为啥在kernel32.dll 和 ntdll.dll 中找不到 jmp esp
网上看了,说能在 kernel32.dll 和 ntdll.dll 中找到 jmp esp 

但是我试了找不到,请问这是为什么?
[解决办法]
jmp 是汇编呀,你在代码中就可以直接用。
[解决办法]
任何正常的函数都不会出现 jmp esp; 的...
你是要修改 esp 指向的内存, 让函数返回的时候的返回到你特定的代码中.
你看这个例子 http://bbs.csdn.net/topics/390504487 就是.

[解决办法]

引用:
栈攻击只能利用shellcode,要让函数返回到shellcode 执行,那只有跳转到esp 里了

利用函数的返回值做跳转, 还不是想跳哪里就跳哪里.
你要找 jmp esp 来取跳转, 是不可能有函数会这样写的.
[解决办法]
楼主是想 溢出攻击吧!利用jmp esp跳转到自己的shellcode~~~
操作系统不同, jmp esp的地址有可能不同,xp以下的系统还好点,每次系统文件的加载地址是固定的。win7之后,基本关键的系统文件都有ALSR(地址随机化),所以每次启动内存地址都不固定。这是有可能系统不同造成的。
再者,如果你只是想在自己机器上用,不一定非要 在kernel32.dll 和 ntdll.dll 中找,w_32什么的随便一个地址就行,你又不涉及到通用性的问题~

热点排行