zoukankan      html  css  js  c++  java
  • 4.再来看看逆向——OD的简介

    目录

    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/

     

  • 相关阅读:
    计算一个整数的二进制中1的个数
    Java 操作 EXCEL
    WIN7 64位配置Oracle SQL Developer工具
    phpstrom+xdebug调试PHP代码
    Zend Server安装后首次运行就出现Internal Server Error的解决
    在C语言中使用scanf语句时遇到的问题总结
    ElementUI中scrollbar的使用解析
    前端模拟手机屏幕图片渐隐渐现效果实现
    谈谈怎么学习编程?
    underScore学习1:匿名函数中call(this)的作用
  • 原文地址:https://www.cnblogs.com/QKSword/p/10584977.html
Copyright © 2011-2022 走看看