4.再来看看逆向——OD的简介

摘要:
目录1.前言2.一些设置和配置3.开始了解OD代码窗口数据窗口的小端序列。前言的前三部分主要描述恶意代码使用的方法。接下来,写一些关于反向调试的内容。关于十六进制数据和汇编代码之间的转换,我们稍后将详细讨论注释窗口。如果OD在运行过程中识别出一些函数名、字符串等,则将在此处显示。
目录

1.前言

2.一些设置和配置

3.开始了解OD

  代码窗口

  数据窗口 

  小端序问题

前言

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

一些配置和设置

编译器的配置

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

4.再来看看逆向——OD的简介第1张

快捷方式设置

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

4.再来看看逆向——OD的简介第2张

开始了解OD

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

4.再来看看逆向——OD的简介第3张

 代码窗口

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

4.再来看看逆向——OD的简介第4张

 4.再来看看逆向——OD的简介第5张

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

4.再来看看逆向——OD的简介第6张

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

 4.再来看看逆向——OD的简介第7张 

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

4.再来看看逆向——OD的简介第8张

数据窗口

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

4.再来看看逆向——OD的简介第9张

小端序问题

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

4.再来看看逆向——OD的简介第10张

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

附录

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

 

免责声明:文章转载自《4.再来看看逆向——OD的简介》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇TortoiseSVN文件夹及文件图标、标识、绿色小对号不显示解决方法(转载)ogr2ogr导入gpx下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[原创]反调试技巧总结-原理和实现(1)(2)(3)(4)(5)(6)......

反调试技巧总结-原理和实现 ------------------------------------------------------------------------------------------------------- 2008.8.7shellwolf 一、 前言 前段学习反调试和vc,写了antidebug-tester,经常会收到me...

OD调试初步概念——修改窗口标题

 调试逆向分为动态分析技术和静态分析技术。  动态分析技术指的是使用调试工具加载程序并运行,随着程序运行,调试者可以随时中断目标的指令流程,以便观察相关计算的结果和当前的设备情况。  静态分析技术是相对于动态分析而言的。由于在实际分析中,很多场合不方便运行目标(例如病毒程序,设备不兼容,软件的单独某一模块)。那么这个时候静态分析技术就该上场了。  OD(...

实战之标志位破解绕过注册法

对于我们来说,.net最大的特点就是可以“跨平台”。大多数运行在Windows下的软件都不能很好地支持Linux,也就是说在Windows下能够正常使用的软件在Linux下不能正常运行,这样就很不方便日常的学习和交流。但是有了.net,这一切就发生变化,不管我们的操作系统是什么,只要装有.net,这个系统就可以运行.net的所有语言。 .net包含很多语言...

Linux动态频率调节系统CPUFreq之三:governor

在上一篇文章中,介绍了cpufreq的core层,core提供了cpufreq系统的初始化,公共数据结构的建立以及对cpufreq中其它子部件提供注册功能。core的最核心功能是对policy的管理,一个policy通过cpufreq_policy结构中的governor字段,和某个governor相关联,本章的内容正是要对governor进行讨论。 通过...

OD调试2----破解序列号验证程序

本文所用实验效果图如下,输入用户名和序列号,点击check: 首先我们来分析一下这个程序的运用流程, 我们的目的就是让其跳过错误的对话框,跳出正确对话框。那我们就要找到何处调用的这个函数。 第一步,按F3加载程序。 进入界面后,按F8运行程序,输入用户名和序列号。如下图: 然后点击check,程序会跳转到算法匹配,也就是验证用户名和序列号的地方。我...