NOP指令概述及作用

/*********************************************************************

* Author  : Samson

* Date    : 08/03/2014

* Test platform:

*              Linux ubuntu 3.2.0-58-generic-pae

*              GNU bash, version 4.2.39

* *******************************************************************/

计算机科学中,NOP或NOOP(No Operation或No Operation Performed的缩写,意为无操作)是汇编语言的一个指令,一系列编程语句,或网络传输协议中的表示不做任何有效操作的命令。

NOP是用执行一条具有操作数,具有相同效果的指令;

NOP指令通常用于控制时序的目的,强制内存对齐,防止流水线灾难,占据分支指令延迟),或是作为占位符以供程序的改善(或替代被移除的指令)。

C语言中最简单的NOP块被称为空语句;其只包括一个分号。

;

但是至于是否是把这样的一个分号在编译的时候编译为NOP指令,则是需要确定编译器是如何进行编译的,有可能对此句进行了优化,不一定就是完全能够对上号的;

NOP通常在破解软件时有特殊用途,例如检查序列号,特定硬件或软件需求,加密狗等的软件。这是通过更改函数和/或子程序以跳过安全检查,直接返回期望的检测值实现的。由于大多数安全检查子程序中的指令会被废弃,它们会被NOP所代替。即是使用NOP指令将进行检查的原来的代码给替换掉。

NOP指令概述及作用,布布扣,bubuko.com

时间: 2024-10-13 01:03:29

NOP指令概述及作用的相关文章

10 面向对象(package关键字的概述及作用)

10.01_面向对象(package关键字的概述及作用) A:为什么要有包 *开发时有很多类,如果放在一个文件夹中不方便管理,而且容易重复 将字节码(.class)进行分类存放 包其实就是文件夹 B:包的概述 举例: 学生:增加,删除,修改,查询 老师:增加,删除,修改,查询 - 方案1:按照功能分 com.heima.add AddStudent AddTeacher com.heima.delete DeleteStudent DeleteTeacher com.heima.update U

Nginx指令概述

指令概述 配置指令是一个字符串,可以用单引号或者双引号括起来,也可以不括.但是如果配置指令包含空格,一定要引起来. 指令参数 指令的参数使用一个或者多个空格或者TAB字符与指令分开.指令的参数有一个或者多个TOKEN串组成.TOKEN串之间由空格或者TAB键分隔. TOKEN串分为简单字符串或者是复合配置块.复合配置块即是由大括号括起来的一堆内容.一个复合配置块中可能包含若干其他的配置指令. 如果一个配置指令的参数全部由简单字符串构成,也就是不包含复合配置块,那么我们就说这个配置指令是一个简单配

emms指令在MMX指令中的作用

emms指令在MMX指令中的作用 转自:http://blog.csdn.net/psusong/archive/2009/01/08/3737047.aspx MMX和SSE都是INTEL开发的基于SIMD(单指令多数据流)的技术.所谓单指令多数据流是指可以用一条指令可以完成多个数据的操作.虽然64位系 统已经推出,但是我们大部分都是使用32位系统,所以如果要完成两个128位的相加运算,用普通32位指令很明显要执行4条相加指令,而基于64位的 MMX指令只需要执行两次即可完成,更强大的SSE能

预编译指令跨平台的作用

程序的编译过程可以分为预处理.编译.汇编三部分,其中预处理是首先执行的过程,预处理过程扫描程序源代码,对其进行初步的转换,产生新的源代码提供给编译器. 预处理过程读入源代码之后,会检查代码里包含的预处理指令,完成诸如包含其他源文件.定义宏.根据条件决定编译时是否包含某些代码的工作. 通过预编译指令,只会把满足条件的代码编译进来,其他代码不参与编译 1, 指令 预编译指令以 #开头,整条语句构成一条预编译指令 2, 作用 C/C++ 语言的预处理主要有三个方面的内容: 1.宏定义: 2.文件包含:

关于iOS app逆向中修改成NOP指令的。。。

逆向一程序,发现程序被setuid(0),setgid(0)从而导致程序以root方式运行了(具体可以在iosre中搜索查看),因此我就想把这条指令NOP掉. 网上查了些方法,比如: 1. 00 00 A0 E1                             NOP 我试了下,在32位,即ARM7 似乎是 mov r0 r0 (两个星期前尝试的了,记得不是很清了.)好吧,这也能实现效果.但在64位下,就变成乱码了,IDA中全变了. 2.用hopper和ida结合来改 在ida里只能直接

在Dockerfile中使用和“Source”的Run指令不起作用?

报错误 /bin/sh: 1: source: not found sh不支持source bash支持source RUN rm /bin/sh && ln -s /bin/bash /bin/sh 或 RUN /bin/bash -c "source /usr/local/bin/virtualenvwrapper.sh" 对于环境变量文件/etc/profile不起作用 原文地址:https://www.cnblogs.com/lgj8/p/12255568.ht

C#运算符大全_各种运算符号的概述及作用

一.[]方括号 ([]) 用于数组.索引器和属性,也可用于指针. 1.数组类型是一种后跟 [] 的类型:int[] fib = new int[100]; //创建一个有100元素的数组若要访问数组的一个元素,则用方括号括起所需元素的索引:fib[0] = fib[1] = 1;for( int i=2; i<100; ++i ) fib[i] = fib[i-1] + fib[i-2];// 如果数组索引超出范围,则会引发异常. 2.不能重载数组索引运算符:但类型可以定义采用一个或多个参数的索

单片机C语言延时需注意的问题

标准的C语言中没有空语句.但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果.这在汇编语言中很容易实现,写几个nop就行了. 在keil C51中,直接调用库函数: #include // 声明了void _nop_(void); _nop_(); // 产生一条NOP指令 作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒.NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS.对于延时比较长的,要求在大于10

day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)

day12 JSP指令 JSP指令概述 JSP指令的格式:<%@指令名 attr1="" attr2="" %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的. JSP中有三大指令:page.include.taglib,最为常用,也最为复杂的就是page指令了. 2 page指令 page指令是最为常用的指定,也是属性最多的属性! page指令没有必须属性,都是可选属性.例如<%@page %>,没有给出任何属性也是可以的!