OD基本汇编指令

jmp ;无条件跳转 指哪飞哪 一些杂志中说的直飞光明顶,指的就是它了~ 光明顶一般指爆破地址
根据条件跳转的指令:
JE  ;等于则跳转 
JNE ;不等于则跳转 
 
JZ  ;为 0 则跳转   
JNZ ;不为 0 则跳转 
 
JS  ;为负则跳转 
JNS ;不为负则跳转 
 
JC  ;进位则跳转 
JNC ;不进位则跳转 
 
JO  ;溢出则跳转 
JNO ;不溢出则跳转 
 
JA  ;无符号大于则跳转 
JNA ;无符号不大于则跳转 
JAE ;无符号大于等于则跳转 
JNAE ;无符号不大于等于则跳转 
 
JG  ;有符号大于则跳转 
JNG ;有符号不大于则跳转 
JGE ;有符号大于等于则跳转 
JNGE ;有符号不大于等于则跳转 
 
JB  ;无符号小于则跳转 
JNB ;无符号不小于则跳转 
JBE ;无符号小于等于则跳转 
JNBE ;无符号不小于等于则跳转 
 
JL  ;有符号小于则跳转 
JNL ;有符号不小于则跳转 
JLE ;有符号小于等于则跳转 
JNLE ;有符号不小于等于则跳转 
 
JP  ;奇偶位置位则跳转 
JNP ;奇偶位清除则跳转 
JPE ;奇偶位相等则跳转 
JPO ;奇偶位不等则跳转
------------
说了以上那么多
也许大家会觉得晕
但我们实际用到的一般只有 jmp je jne jz jnz而已 所以大家只要清楚这5个跳转的条件即可,别的那些了解下就好了
----------
下面开始说传递跟比较指令
传递指令:
mov
比较指令:
cmp
-----------
mov是从右边向左边传递
比如说:
mov eax,1   ‘为eax赋值为1
mov ecx,eax  ’这样ecx也就是1了
我们可以现学现用
我们上面讲了跳转
大家可以注意一下,我开头有说是标志位跳转
那么什么是标志位呢
就像
mov eax,1 
mov ecx,eax
cmp ecx,eax  这个就是标志位
我们已知eax跟ecx都是1
那就符合je的跳转条件
je是等于跳转

时间: 2024-10-18 11:43:16

OD基本汇编指令的相关文章

一条汇编指令引发的 蝴蝶效应

系统 : Windows xp 程序 : crackme1 程序下载地址 :http://pan.baidu.com/s/1gdY4wMJ 要求 : 分析算法 使用工具 :OD 可在“PEDIY CrackMe 2007”中查找关于此程序的讨论,标题为“muckis's crakcme #1破解(检测OD)”. OD载入程序,键入命令:bp GetWindowTextA,成功断下,并返回程序领空: 004014A0 |. 68 EA030000 push 3EA ; /ControlID = 3

汇编指令解析

X86架构 [原创]X86汇编之指令格式解析 [原创]汇编指令之OpCode快速入门 [原创]X64汇编之指令格式解析 ARM架构:

Android 图解逆向工程中ARM常用汇编指令(一)

我们走得太快,灵魂都跟不上了. 微小的幸福就在身边,容易满足就是天堂. 在逆向和爆破中我们经常会在IDA中接触到汇编,一般做安卓的不会太了解VB回编等,不太了解的同学可以先查看上篇文章<Android ARM常用的汇编指令合集> 再来继续我们的学习,我们先来看张图. 这个view里面有 PUSH/LDR/SUB/MOVS/BLX/SUBS/BEQ/CMP ,这些差不多都是常见的,不过也不需要看得懂,理解这个指令即可,接下来我们就来分析下这些指令分别有什么作用吧. 先引入 概念性 东西,免得大家

如何实现对ARM汇编指令的调试?

学习ARM汇编语言时,少不了对ARM汇编指令的调试.作为支持多语言的调试器,gdb自然是较好的选择.调试器工作时,一般通过修改代码段的内容构造trap软中断指令,实现程序的暂停和程序执行状态的监控.为了在x86平台上执行ARM指令,可以使用qemu模拟器执行ARM汇编指令,具体的调试方法,一起来看看吧. 一.准备ARM汇编程序 首先,我们构造一段简单的ARM汇编程序作为测试代码main.s. .globl _start _start: mov R0,#0 swi 0x00900001 以上汇编指

汇编指令速查

指令 功能 AAA 调整加 AAD 调整除 AAM 调整乘 AAS 调整减 ADC 进位加 ADD 加 AND 与 ARPL 调整优先级 BOUND 检查数组 BSF 位右扫描 BSR 位左扫描 BSWAP 交换字节 BT 位测试 BTC 位测试求反 BTR 位测试清零 BTS 位测试置一 CALL 过程调用 CBW 转换字节 CDQ 转换双字 CLC 进位清零 CLD 方向清零 CLI 中断清零 CLTS 任务清除 CMC 进位求反 CMOVA 高于传送 CMOVB 低于传送 CMOVE 相等

汇编指令mov、add、sub、jmp

mov:寄存器,数据 mov:寄存器,寄存器 mov:寄存器,内存单元 mov:段寄存器,内存单元 mov:内存单元,寄存器 mov:内存单元,段寄存器 mov:段寄存器,寄存器 mov:寄存器,段寄存器 add:寄存器,数据 add:寄存器,寄存器 add:内存单元,寄存器 add:寄存器,内存单元 sub:寄存器,数据 sub:寄存器,寄存器 sub:内存单元,寄存器 sub:寄存器,内存单元 jmp:段地址:偏移地址  用段地址修改CS 用偏移地址修改IP jmp:寄存器,只用寄存器的内容

查看汇编指令的二进制代码

今天在尝试ptrace设置断点达时候想知道syscall这条汇编指令对应达二进制码是多少. 百度无果之后在stackoverflow上看到这么个问题 http://stackoverflow/questions/9815448/jmp-instruction-hex-code 里边哥们问jmp对应的二进制码是多少,大神是这么回答的 echo 'asm("mov $400835, %rax\n jmp %rax\n");' >a.c gcc -c a.c objdump -d a.

【嵌入式Linux+ARM】ARM体系结构与编程(ARM汇编指令)

自己的一些简单的总结,也是最常用的ARM汇编指令,之后也会不断的补充完善. 1. 汇编系统预定义的段名 .text    @代码段 .data   @初始化数据段 .bss    @未初始化数据段 需要注意的是,源程序中.bss段应该在.text之前. 2.定义入口点 汇编程序的缺省入口是 start标号,用户也可以在连接脚本文件中用ENTRY标志指明其它入口点. .text .global _start _start: 3 .word用法 word expression就是在当前位置放一个wo

汇编指令:push、pop

8086CPU出栈入栈都是以字为单位进行的. push ax 由一下两步完成 1.SP=SP-2 2.将ax中的内容送入SS:SP指向的内存单元 pop ax 1.将SS:SP指向的内存单元中的内容送入ax 2.SP=SP+2 push 寄存器 pop 寄存器 push 段寄存器 pop 段寄存器 push 内存单元 pop 内存单元 只给出内存单元的偏移地址,段地址在指令执行时从ds中获得. 汇编指令:push.pop,布布扣,bubuko.com