|  | 
 
| |  这一次我们就先来学习一下“基本的汇编知识”
 因为汇编对于破解来讲十分重要,下面介绍一些专门用于软件破解的重要汇编语句, 要学习软件破解技术就一定要把这些汇编语句牢记在心。
 第一类:赋值语句
 mov a,b // 把b值送给a,使a=b
 怎样理解“把b值送给a”这句话呢?举一个例子吧。
 假设现在:a=1,b=2
 那么执行了“mov a,b”这条汇编语句以后,现在a与b的值就变成了
 a=2,b=2.就是说用b中的值去替换a中的值。
 第二类:比较语句
 cmp a,b // 比较a与b
 什么叫做“ 比较a与b”呢?
 假设现在:a=1,b=2
 那么执行了“cmp a,b”后,程序就会把 1与2进行比较。
 至于比较的结果如何,那就要涉及到其他的语句了。
 以上两个语句是赋值语句与比较语句中最常用也是最具代表性的。对于入门者来说,在赋值语句与比较语句这两个大类中,掌握 mov和 cmp 这两个语句就足够了。
 第三类:跳转语句:
 这一类语句所包含的对象比较多,一一来做以说明:
 1) je或jz // 相等则跳(机器码是74或84)
 意思就是:如果a与b中的值相等,程序就会跳向指定的地方去执行
 2) jne或jnz // 不相等则跳(机器码是75或85)
 意思与上一语句恰恰相反:如果a与b中的值不相等,程序就会跳向指定的地方去执行
 3)jmp // 无条件跳(机器码是EB)
 这个跳转语句比较“霸道”。不论什么情况,只要遇到它程序就会跳向指定的地方去执行
 4) jb // 若小于则跳
 这个语句的意思是:如果a中的值小于b中的值,程序就会跳向指定的地方去执行
 与它对应的语句是: ja // 若大于则跳。意义刚好相反
 还有以下一些常见的语句作用与它相似: jg // 若大于则跳 , jge // 若大于等于则跳
 l // 若小于则跳。
 第四类:调用子程序语句:
 调用子程序语句就是call 语句,它的作用就是在程序运行时在需要的情况下调用相应的
 子程序来运行。
 第五类:无作用语句:
 就是:NOP语句,这个语句在以后的软件爆破中应用的十分广泛。它的作用就是:当程序遇到它时,不做任何事情,无条件的执行它后面的语句。
 以上代码就是前文所说的基本的汇编语句,这些常用的语句在以后的破解应用中会大量的应用到。所以无论你用什么方法,一定要记住。这样才能更好的进行后面的学习。
 | 
 
 | 
 |