一、call有以下几种方式:

call 404000h ;直接跳到函数或过程的地址

call eax ;函数或过程地址存放在eax

call dword ptr [eax]

call dword prt[eax

]

call dword ptr [eax+5]

call dword prt[eax+5]

calldword ptr [<&API>] ;执行一个系统API

二、关于系统API

Windows应用程序运行在Ring3级别(包括我们的倚天剑:OllyDBG)

windows等级安排

但有时候需要Ring0级别才能进行操作,那咋整?

我们可以通过系统为我们搭建的桥梁:API函数,我们也称之为系统提供给我们的接口。

因为系统只信任自己提供的函数,所以我们要通过API才能实现对内核的操作。

你可以这么想,假如小甲鱼送给你一辆法拉利跑车,恩,你没听错,是假如,不是真的!那你要怎么来驾驶她?

没错,要通过踩油门来加速,要通过打方向盘来转弯……而油门,方向盘

就是所谓的接口,对于法拉利来说,它们就是API函数。

三、关于mov指令

mov指令格式:mov dest, src

这是一个很容易理解的指令,mov指令将src的内容拷贝到dest,mov指令总共有以下几种扩展:

movs/movsb/movsw/movsdedi,esi:这些变体按串/字节/字/双字为单位将esi寄存器指向的数据复制到edi寄存器指向的空间。

movsx符号位扩展,byte->word,word->dword (扩展后高位全用符号位填充),然后实现mov。

movzx零扩展,byte->word,word->dword(扩展后高位全用0填充),然后实现mov。

四、关于cmp指令

cmp指令格式:cmp dest, src

cmp指令比较dest和src两个操作数,并通过比较结果设置C/?O/Z标志位。

cmp指令大概有以下几种格式:

cmpeax, ebx ;如果相等,Z标志位置1,否则0.

cmpeax, [404000] ;将eax和404000地址处的dword型数据相比较并同上置位。

cmp[404000], eax ;同上。

五、标志位

对于这个概念,建议鱼油以关注苍井空老师的热情去关注它,因为它在破解中起到的作用是至关重要的。

事实上所有的标志位归并与一个32位的标志位寄存器,也就是说有32个不同的标志位。

每个标志位有两个属性:置1或置0,就相当于我们平时说的OK或不OK,OK就买鱼C优盘支持小甲鱼,不OK就看着小甲鱼饿死街头酱紫啦~

哈哈,大家可能更加关注的是32个标志位都要记住?那不折腾死人才怪!

在逆向中,你真正需要关心的标志位只有三个,也就是cmp指令能修改的那三个:Z/O/C。

Z标志位(0标志),这个标志位是最常用的,运算结果为0时候,Z标志位置1,否则置0。

O标志位(溢出标志),在运行过程中,如操作数超出了机器能表示的范围则称为溢出,此时OF位置1,否则置0。

C标志位(进位标志),记录运算时从最高有效位产生的进位值。例如执行加法指令时,最高有效位有进位时置1,否则置0。

六、逻辑运算

逻辑运算

七、关于test指令

test指令格式:test dest, src

这个指令和and指令一样,对两个操作数进行按位的‘与’运算,唯一不同之处是不将‘与’的结果保存到dest。

即本指令对两个操作数的内容均不进行修改,仅是在逻辑与操作后,对标志位重新置位。

小甲鱼很负责任地告诉大家该指令的实战形态百分之九十九是酱紫:test eax, eax(如果eax的值为0,则Z标志位置1)

八、关于条件跳转指令

条件跳转指令,就是根据各种不同标志位的条件判断是否成立,条件成立则跳转。

九、patch

patch也就是我们平时所说的补丁。

所谓给程序打补丁就是我们对程序破解所进行的修改,就是说像我们衣服破了,如果没有打补丁,就会走光的意思。

OllyDBG的“/”可以查看所有打过的补丁。

OD教程(汇编基础)相关推荐

  1. 【8086汇编基础】05--常用函数库文件--emu8086.inc

    8086汇编语言初学者教程(第5部分) 常用函数库 - emu8086.inc 通过引用一些常用函数,可以使你编程更加方便.在你的程序中使用其他文件中的函数的方法是INCLUDE后面接上你要引用的文件 ...

  2. 汇编基础(加速入门)

    汇编基础 语言 人与人沟通的媒介 什么是机器语言? 0与1 最早的程序员,穿孔卡带 运算->加减乘除 这些复杂的机器语言,如何简化? 助记符!! 汇编语言!! 加 IMC <-编译器-&g ...

  3. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  4. Nmap扫描教程之基础扫描详解

    Nmap扫描教程之基础扫描详解 Nmap扫描基础扫描 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以分别对主机.端口.版本.操作系统等实施扫描.但是,在 ...

  5. [译]Vulkan教程(04)基础代码

    [译]Vulkan教程(04)基础代码 General structure 通用结构 In the previous chapter you've created a Vulkan project w ...

  6. Eigen教程1 - 基础

    Eigen教程1 - 基础 参考:https://blog.csdn.net/xuezhisdc/article/details/54619853 固定大小的矩阵和向量 /** 参考链接:http:/ ...

  7. 软件测试python基础_软件测试学习教程——python基础

    原标题:软件测试学习教程--python基础 一,print()函数 print 作用:把" "内部的内容,输出到屏幕. print("hello world" ...

  8. c语言语言教程0基础_C语言基础

    c语言语言教程0基础 Hey, Folks here I am back with my second article on C language. Hope you are through with ...

  9. html5教学文档笔记,4.HTML 教程- (HTML5 基础)

    HTML 教程- (HTML5 基础) 1.HTML 标题 HTML 标题(Heading)是通过 - 标签来定义的. 2.HTML 段落 HTML 段落是通过标签 来定义的. 3.HTML 链接 H ...

  10. 计算机键盘输入法基础知识,教程计算机基础知识-:认识输入法

    教程计算机基础知识-:认识输入法 认识输入法 在任务栏的右边有一个小键盘图标,这就是输入法,默认输入的是英文字母,点击可以选择汉字输入法: 1.切换输入法 1)瞄准任务栏上的小键盘点左键,在出来的菜单 ...

最新文章

  1. JetBrains打造的开发神器,一套代码适应多端!
  2. Exchange Server 2016管理系列课件53.DAG管理之设置滞后数据库副本
  3. 自制仿360首页支持拼音输入全模糊搜索和自动换肤
  4. [界面开发新秀]免费的AYUI,开发360领航版系列教程[2/40]
  5. atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o
  6. [CSS]打败 IE 的葵花宝典:CSS Bug Table
  7. linux常见的查看命令
  8. Windows Media Services (1) 搭建 电影服务器教程
  9. 3.Linux 高性能服务器编程 --- TCP 协议详解
  10. 类的加载过程详解之过程一:Loading(加载)阶段
  11. 前端获取北京时间_js获取标准北京时间
  12. 下载文件HTTP请求及处理过程
  13. ImageOptim使用教程之图片压缩的方法
  14. javaSSH集成的一些感想
  15. 改善C++ 程序的150个建议学习之建议8:拒绝晦涩难懂的函数指针
  16. 201812CCF-CCSP竞赛:第1题-小明上学
  17. 纸吸管,是下一个环保智商税吗?
  18. 手把手教你炫酷慕课网视频启动导航的完美实现
  19. 7-3 DAG图优化 (15 分)
  20. 移动联通电信wap和net接入点判断

热门文章

  1. 既然谭浩强的C语言教材不好,那应该选什么书作C语言教材?
  2. 明月镜片在创业板上市:镜片贡献八成收入,系谢公晚家族企业
  3. 使用 Metasploit 利用 MySQL 默认空密码或弱密码漏洞 (CVE-2002-1809, CNNVD-200212-263, CVE-1999-0502)
  4. 缠中说禅:教你炒股票108课(转载)
  5. c语言反向工程软件,逆向工程工具之Reverse
  6. 软件测试的四个阶段【单元测试、集成测试、系统测试、验证测试】
  7. Python 学习笔记->《流畅python》学习
  8. 基于VHD和grub4dos的秒还原系统
  9. Qimage QBuffer
  10. 用Python制作小游戏之‘植物大战僵尸’(二)完整代码