目录

1.前言

2.一些设置和配置

3.开始了解OD

  代码窗口

  数据窗口

  小端序问题

前言

前3节主要写了恶意代码用到的手段,接下来先写一下关于逆向调试的一些内容。毕竟逆向比较难理解一点。

一些配置和设置

编译器的配置

这里逆向分析用之前防双开的程序。在逆向时,不同的编译器不同的配置编译出来的汇编代码会有所不同,我这里用的是VS2015,编译为Release版本,毕竟debug版本很少在实际逆向时见到,最后在项目属性处把随机地址关掉就可以了(方便调试),然后就可以生成程序开始逆向

快捷方式设置

打开文件资源管理器(快捷键win+e),在快速访问里输入shell:sendto来打开我们的sendto目录,然后把我们OD的快捷方式或者其他一些工具的快捷方式都可以添加到里面,最后的效果就是当我们调试某个程序的时候,可以通过右键->发送到选择我们的工具直接打开

开始了解OD

找到要调试的程序,右键用OD打开,就可以进行调试了,这节首先介绍一下我们的几个窗口

代码窗口

最左边的是虚拟内存地址,每个程序在运行时都会分配。32位程序是4G大小的虚拟内存(00000000~FFFFFFFF),内核部分和应用程序各占2G(应用程序可以占更多)。通过点击OD工具栏上“e”那个按钮(显示模块窗口),可以看到我们程序所在的内存空间(程序领空)和一些系统dll所在的内存空间(系统领空)

接着是16进制数据和其对应的汇编代码。我们编写的代码如何让电脑能够读懂呢?就是通过编译器转化为让系统能识别的PE文件格式,PE中不仅仅包含了我们编写的代码,还包括了关于这个文件的其他信息如文件大小,编译的时间等。通过OD打开PE文件,就会自动识别出代码所在区域,最后OD会把16进制数据和其对应的汇编代码显示出来。关于16进制数据和汇编代码之间的转换,以后再慢慢细讲

最后是注释窗口,在运行过程中,OD如果识别出一些函数名、字符串等内容,就会在这里显示出来。当然我们也可以在这里添加我们自己的注释

在代码窗口的下方还有一个显示注释的窗口,比如我在代码窗口中点击指令时,注释窗口就会显示一些相对应的信息

数据窗口

数据窗口就比较简单明了,从每一栏的标签就可以看出所代表的含义,这里分别列出了地址(和前面代码窗口的虚拟内存地址一样),HEX数据(地址处的数据)、ASCII(HEX数据对应的ASCII)

小端序问题

对于小端序,其实就是计算机为了方便自己运行而弄出来的,当然对于人来说还是会有点奇怪。比如图下的一个地址里的数据是7611F5A0,但可以看到在内存中排列的顺序是A0 F5 11 76。其实就是数据的排列顺序与我们平时学习的数是反过来排列的,以后课程中实际用到就很容易理解了

to the end,关于寄存器窗口和栈窗口我们下节再慢慢讲解

附录

OD:http://geekfz.cn/index.php/reverse_tool/

4.再来看看逆向——OD的简介的更多相关文章

  1. OD 界面简介

    1 为汇编代码对应的地址窗口 2 为汇编代码对应的十六进制机器码窗口 3 为反汇编窗口 4 为反汇编代码对应的注释信息窗口 5 为寄存器信息窗口 6 为当前执行到的反汇编代码的信息窗口 7~9 为数据 ...

  2. Python之入门篇1

    一.安装python解释器 官网: https://www.python.org/downloads/windows/ 自行下载安装,添加环境变量 #测试安装是否成功 windows --> 运 ...

  3. BitSet 是个好东西

    顾名思义,就是位集合(bit set),是从JDK 1.0就出现的东西,后面的版本又慢慢强化. 我们说学习一样东西,最好是场景驱动 - 要考虑它的使用场景,这样才有意义. 那么,BitSet的应用场景 ...

  4. 32位汇编第五讲,逆向实战干货,(OD)快速定位扫雷内存.

    32位第五讲,逆向实战干货,快速定位扫雷内存. 首先,在逆向之前,大家先对OD有一个认识. 一丶OD的使用 标号1: 反汇编窗口 (显示代码的地址,二进制指令,汇编代码,注释) 标号2: 寄存器窗口( ...

  5. 从零开始的程序逆向之路 第一章——认识OD(Ollydbg)以及常用汇编扫盲

    作者:Crazyman_Army 原文来自:https://bbs.ichunqiu.com/thread-43041-1-1.html 0×00 序言: 1.自从上次笔者调戏完盗取文件密码大黑客后, ...

  6. 逆向---03.mov、test等汇编指令、EAX、关键Call、OD调试技巧

    上一篇:逆向---02.je & jmp & jnz .OD调试 基础知识:(栗子中也会说的)栗子:链接: https://pan.baidu.com/s/1qZbbTvQ 密码: i ...

  7. 逆向---02.je & jmp & jnz 、OD调试

    上一篇:逆向---01.Nop.中文字符串搜索.保存修改后程序 OD调试基础:(01.02篇练手工具:https://pan.baidu.com/s/1kW2qlCz) nop是删除跳转,你别问我,我 ...

  8. 逆向安全基础之IDA使用简介

    转载:http://m.blog.csdn.net/ilnature2008/article/details/54912854 IDA简介 IDA是业界一个功能十分强大的反汇编工具,是安全渗透人员进行 ...

  9. 【逆向笔记】OD工具使用-逆向TraceMe.exe

    名词注释 System breakpoint:系统断点,OllyDbg用CreateProcessA加载DEBUG_ONLY_THIS_PROCESS参数执行,程序运行之后会触发一个INT13,在系统 ...

随机推荐

  1. JAVA学习笔记(4)—— 排序算法

    排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ...

  2. OPENSSL_Applink 错误

    原因 : 程序太老, 调用了参数为 FILE * 类型的 api. 解决方式: 1. windows exe, 可直接#include<openssl/applink.c>  // ext ...

  3. (原创)动态内存管理练习 C++ std::vector<int> 模拟实现

    今天看了primer C++的 “动态内存管理类”章节,里面的例子是模拟实现std::vector<std::string>的功能. 照抄之后发现编译不通过,有个库函数调用错误,就参考着自 ...

  4. 【转】Python——plot可视化数据,作业8

    Python——plot可视化数据,作业8(python programming) subject1k和subject1v的形状相同 # -*- coding: utf-8 -*- import sc ...

  5. ogma

    Ogma是Linkurious的JavaScript图形可视化库.Ogma的一个实例是一个javascript对象,它在内部存储一个图形, 并根据样式规则在HTML容器中呈现它. Ogma有两个版本: ...

  6. 论文阅读笔记四十九:ScratchDet: Training Single-Shot Object Detectors from Scratch(CVPR2019)

    论文原址:https://arxiv.org/abs/1810.08425 github:https://github.com/KimSoybean/ScratchDet 摘要 当前较为流行的检测算法 ...

  7. ***阿里云ECS实战配置虚拟主机 + Apache 配置虚拟主机三种方式

    阿里云ECS实战配置虚拟主机 买了一台ECS阿里云服务器,性能感觉有点富余,想着可以陪着虚拟主机多一些WWW目录好放一些其他的程序.比如DEMO什么的. 今天研究了下,主要是就是做基于不同域名的虚拟主 ...

  8. Gradle 打包上传至私有仓库配置

    allprojects{ apply plugin: 'java' apply plugin: 'idea' apply plugin: 'maven' group 'com.xxxxx.base' ...

  9. kafka可视化客户端工具(Kafka Tool)的基本使用(转)

    转载地址:https://www.cnblogs.com/frankdeng/p/9452982.html 1.下载 下载地址:http://www.kafkatool.com/download.ht ...

  10. CentOS6.x 下 /etc/security/limits.conf 被改错的故障经历

    Intro 我司本小厂,每个员工都是身兼数职,所以开发人员直接登录线上服务器改东西是常态.有些开发人员,自持水平较高(的确水平也是较高,但缺乏对系统的敬畏),所以总是越俎代庖,改一些本身应该是线上运维 ...