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


    使用的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解压后得到,双击它安装;

    2、汉化
    将IDA.pro.5.5dapro55.zip解压后得到的文件

    继续解压得到,将它拷贝到IDS的安装目录下。

    二、测试一个最简单的驱动程序
    1、准备要测试的驱动程序
    编译方法可参考我的文章:<<http://blog.csdn.net/chenyujing1234/article/details/7674104>>

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

    #include <ntddk.h>

    VOID HelloDDKUnload (IN PDRIVER_OBJECT pDriverObject)
    {
    KdPrint(("Enter DriverUnload "));
    KdPrint(("Leave DriverUnload "));
    }



    extern NTSTATUS DriverEntry (
    IN PDRIVER_OBJECT pDriverObject,
    IN PUNICODE_STRING pRegistryPath )
    {
    NTSTATUS status;
    status=STATUS_SUCCESS;
    KdPrint(("Enter DriverEntry "));
    pDriverObject->DriverUnload = HelloDDKUnload;
    KdPrint(("DriverEntry end "));
    return status;
    }

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

    2、反汇编实现
    把sys.sys拖到IDA程序里。这里要选择载入的文件类型:

    第一个是:PE文件

    第二个是:DOS 可执行文件

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

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

     

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

     

     此时在输出窗口中显示:

     

     此时我们的结果出来了.

     

     3、简要分析

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

    蓝色: 表示是代码段;

    棕色: 表示是数据段;

    红色: 表示是内核;

     

     3、1  代码段

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

     

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

     

     接下来我们来查看函数DriverEntry

     

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

     

     3、2  数据段

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

     

     得到的结果如下:

     

     若要还原为UNICODE风格,则选择

     4、退出IDA

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

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

     

     id0:二叉树数据库

    id1:文件包含描述每个程序字节的标记

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

    4、2  保存后退出。
    保存也有两种方式,一种是压缩,一种是不压缩。

    注意:在使用IDA过程中要经常保存,因为IDA常会崩溃,这样会造成数据丢失。
    ————————————————
    版权声明:本文为CSDN博主「Jackchenyj」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/chenyujing1234/java/article/details/7766887

  • 相关阅读:
    idea中使用git进行clone、分支切换、pull、push等
    grep参数说明及常用用法(转)
    性能01篇-如何胜任性能测试工程师岗位
    2016年7款最流行的Java框架
    Python程序员都会喜欢的6个库
    web开发者最有用的10个Python包
    web开发的10款Python框架
    python的十个技巧
    Python的接口测试框架实例
    调试支付宝接口?
  • 原文地址:https://www.cnblogs.com/yuanscn/p/12733013.html
Copyright © 2020-2023  润新知