我不知道什么是"NOP“在Metasploit框架或其他。
Metasploit释放说,"Nops保持有效载荷大小一致。“有几个问题帖子提到缓冲区溢出。
为什么Nops保持有效载荷大小一致?Nops保持有效载荷大小一致的是什么?什么是Nop,确切地说?一个缩略语?化名?它还能代表更多的东西吗?
"nop“是一个过程还是数据?(你是“运行”nop,还是“发送”nop?)他们为什么叫他们“雪橇”和“雪橇”?(我推断这两个名字都是指你在冬季滑下山的东西,这似乎意味着"nop“以某种方式润滑了某种数据事务)
http://www.offensive-security.com/metasploit-unleashed/
http://my.safaribooksonline.com/book/networking/security/9780596009632/metasploit/evasion_使用_nops_和_encoders#X2ludGVybmFsX0h0bWxWaWV3P3htbGlkPTk3ODA1OTYwMDk2MzIlMkZzYW1wbGVfZXZhc2lvbl9vdXRwdXQmcXVlcnk9
http://www.securitytube.net/questions/id/35
http://seclists.org/metasploit/2009/q2/125
http://en.wikipedia.org/wiki/Buffer_溢出
http://en.wikipedia.org/wiki/Polymorphic_代码
发布于 2013-02-07 22:10:17
在程序集代码中,NOP是No OPeration的缩写。这是最广为人知的x86芯片称为0x90。当处理器加载该指令时,它对一个周期不做任何操作(至少是有用的),然后将寄存器推进到下一个指令。
NOPs保持有效载荷大小一致
..。通过确保任何未被其他代码使用的空间仍将由处理器有效地执行,而不会产生副作用。这个"NOP雪橇“也是幽默名字的来源,比如DEFCON 19 CTF获奖者欧洲无雪橇队。
这一点的实际重要性与写作指令的跳跃有关。跳转可以是相对跳转(读取内存之前的8字节),也可以是绝对跳转(读取位于0x874710位置的内存)。如果以绝对跳转的方式移动数据,则必须重新编码对其的任何引用。如果您将一条指令相对于另一条指令移动,则还必须对相对跳跃进行重新编码。将NOPs放入其中简化了问题,因为在一系列NOPs的任何地方跳转将继续到第一个可执行指令,并防止处理器读取将停止执行并使软件崩溃的无效代码。
最常见的情况是,如果您知道堆栈的指针将指向连续的内存地址范围内的某个位置,那么您可以使用NOPs填充该指针,然后将代码放在后面。
看看这个外壳代码编写教程,它解释了什么时候使用NOPs来获得更好的理解。
https://security.stackexchange.com/questions/30497
复制相似问题