首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

IDA应用之旅(一)用IDA查看最简单的sys文件

2012-08-08 
IDA使用之旅(一)用IDA查看最简单的sys文件转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎

IDA使用之旅(一)用IDA查看最简单的sys文件

转载请标明是引用于 http://blog.csdn.net/chenyujing1234 

欢迎大家拍砖!

 

本系列内容是我根据“知其所以然论坛”博主录制的学习视频,做的笔记。

使用的IDA软件版本: IDA.pro.5.5 (参考下载地址: http://www.pc6.com/softview/SoftView_55231.html)

下载后得到IDA.pro.5.5dapro55.zip文件。

 

在Windows 下可以开发exe文件,exe是不可逆向的,通过IDA可以把应用程序逆向,并非不是完全逆向,因为EXE已经把代码优化了。

DEBUG比RELEASE能更好逆向。

IDA它支持多种文件的反汇编,如exe 、sys、dll等。

一、IDA软件的安装1、安装DIA软件

把IDA.pro.5.5dapro55.zip解压后得到IDA应用之旅(一)用IDA查看最简单的sys文件,双击它安装;

2、汉化

将IDA.pro.5.5dapro55.zip解压后得到的文件 IDA应用之旅(一)用IDA查看最简单的sys文件

继续解压得到IDA应用之旅(一)用IDA查看最简单的sys文件,将它拷贝到IDS的安装目录下。

^-^ 此时运行IDA程序,可以看到程序界面了:

IDA应用之旅(一)用IDA查看最简单的sys文件

 

IDA应用之旅(一)用IDA查看最简单的sys文件

我们点击运行按钮,进入到主界面:

IDA应用之旅(一)用IDA查看最简单的sys文件

 

二、测试一个最简单的驱动程序1、准备要测试的驱动程序

编译方法可参考我的文章:<<http://blog.csdn.net/chenyujing1234/article/details/7674104>>

之所以简单,是因为只有一个文件sys.c,文件中只有两个函数:

#include <ntddk.h>VOID HelloDDKUnload (IN PDRIVER_OBJECT pDriverObject) {   KdPrint(("Enter DriverUnload\n"));   KdPrint(("Leave DriverUnload\n"));}extern NTSTATUS DriverEntry (IN PDRIVER_OBJECT pDriverObject,IN PUNICODE_STRING pRegistryPath) {   NTSTATUS status;   status=STATUS_SUCCESS;   KdPrint(("Enter DriverEntry\n"));   pDriverObject->DriverUnload = HelloDDKUnload;   KdPrint(("DriverEntry end\n"));   return status;}

编译后得到我们的目标文件: sys.sys

 

2、反汇编实现

把sys.sys拖到IDA程序里。这里要选择载入的文件类型:

第一个是:PE文件

第二个是:DOS 可执行文件

第三个是:二进制文件。(用于有时我们不知道它的文件类型,eg:ROM镜像文件)

这里我们按默认的。(一般程序会帮我们自动选择类型。)

IDA应用之旅(一)用IDA查看最简单的sys文件

全部按默认,点确定;接下来会提示是否加载PDB文件,点YES。

IDA应用之旅(一)用IDA查看最简单的sys文件

此时在输出窗口中显示:

IDA应用之旅(一)用IDA查看最简单的sys文件

此时我们的结果出来了.

IDA应用之旅(一)用IDA查看最简单的sys文件

 

3、简要分析

我们可以看到在IDA View-A选项卡上会显示三种颜色。

蓝色: 表示是代码段;

棕色: 表示是数据段;

红色: 表示是内核;

IDA应用之旅(一)用IDA查看最简单的sys文件

 

3、1  代码段

 

.sys文件一般是从00010000开始的,而.exe一般是从00040000开始的,dll是从00070000开头的。

IDA应用之旅(一)用IDA查看最简单的sys文件

在查看的汇编代码中,如果可以标识符进步重命名,之后与它有关的所有名字都会改变。

IDA应用之旅(一)用IDA查看最简单的sys文件

 

 

接下来我们来查看函数DriverEntry

IDA应用之旅(一)用IDA查看最简单的sys文件

下图表示:把_HelloDDKUnload@4的代码放入eax+34h的内存中。这样当卸载时可以调用。

IDA应用之旅(一)用IDA查看最简单的sys文件

 

3、2  数据段

在数据段时若我们判断是字符串,那么可以选择以C风格来查看。

IDA应用之旅(一)用IDA查看最简单的sys文件

得到的结果如下:

IDA应用之旅(一)用IDA查看最简单的sys文件

 

若要还原为UNICODE风格,则选择 IDA应用之旅(一)用IDA查看最简单的sys文件

 

4、退出IDA4、1   退出时提示是否要保存,我们选择不保存,且不存数据库。

IDA应用之旅(一)用IDA查看最简单的sys文件

这样我们文件夹中生成的四个文件会被删除:

IDA应用之旅(一)用IDA查看最简单的sys文件

id0:二叉树数据库
id1:文件包含描述每个程序字节的标记

nam:包含IDA NAME窗口的数据库
til:本地数据库有关信息

 

4、2  保存后退出。

保存也有两种方式,一种是压缩,一种是不压缩。

注意:在使用IDA过程中要经常保存,因为IDA常会崩溃,这样会造成数据丢失。

 

 

 

 

 

 

热点排行