学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

2万

积分

41

好友

1157

主题
发表于 2020-6-11 00:02:12 | 查看: 4846| 回复: 2
  在传统的软件开发模型中,通过编译器、汇编器和链接器中的一个或几个创建可执行程序。为了回溯编程过程(对程序进行逆向工程),使用各种工具撤销汇编和编译过程,这些工具就叫做反汇编器和反编译器。反汇编器撤销汇编过程,可以得到汇编语言形式的输出结果;反编译器则以汇编语言甚至是机器语言作为输入,将高级语言结果输出。
  但是反编译有几点困难至今还没有完美解决:编译过程造成损失;编译属于多对多操作;反编译非常依赖语言和库。
  反汇编算法:线性扫描(linear sweep)和递归下降(recursive descent)两种主要的反汇编算法。
  线性扫描:反汇编从第一个代码段的第一个字节开始,以线性模式扫描整个代码段,逐条反汇编每条指令,直到遍历全部字节。此方法对于长度固定的指令集(MIPS)反汇编会更加容易,因为可以方便的的定位到随后的指令。缺点就是无法正确的将嵌在代码中的数据分离出。
  递归下降:根据一条指令是否被另一条指令引用来决定是否对其进行反汇编。

  交互式反汇编器专业版,常常称其为IDA Pro,属于递归下降反汇编器。上周看书有一些心得,在这里一篇篇分享一下。
  1.为了准备逆向用的实例,先用VC生成一个release版的Hello World。

#include <windows.h>
INT WINAPI WinMain(HINSTANCE hInstance,
   HINSTANCE hPrevInstance,
   LPSTR lpCmdLine,
   int nShowCmd)
{
    MessageBox(NULL, "IDA Pro", "IDADemo", MB_OK);
    ExitProcess(0);
}

2.打开IDA 6.1,为进入IDA界面提供三种选项,分别是New(新建),Go(运行),Previous(上一个)。


  3.对于没有进行过逆向分析的,点选New,新建一个工程,进入IDA界面。


  4.选择File菜单下的Open,打开想要逆向的可执行文件,会显示一个Load a new file的界面。



  这里可以选择
  (1).程序的类型;
  (2).处理器的类型;
  (3).加载的段地址和偏移量;
  (4).是否允许分析;
  (5.)一些加载选项;
  (6).内核和处理器的一些选项;
  (7).windows系统dll所在的目录。
  默认选择PE文件就可以,对于一些网络数据包或者其他格式的文件,可以使用二进制加载,自己进行解析。

  5.加载完毕之后就进入逆向工作界面了。



  6.初始是图形视图,有一个Graph overview窗口,可以在里面用鼠标拖动定位到程序的某个位置。也可以在IDA View-A中点右键选择Text view改成文字视图,这样能看到段和偏移量,快捷切换为空格键。


  7.整个界面内容很丰富,但是一开始使用不到这么多功能,把不用的子窗口关闭。
  工作区有多个子窗口,IDA View-A是反汇编窗口,HexView-A是十六进制格式显示的窗口,Exports是导出表(这个程序中能让外面调用的函数),Imports是导入表(程序中调用到的外面的函数),Functions是函数表(这个程序中的函数),Structures是结构,Enums是枚举。

  8.IDA很智能,鼠标移到某些标识符上会自动有适当的提示,双击还能自动跳到相应的位置。把一个函数逆向的方法很简单,只要按F5键就会出来逆向出的C语言程序了。



  9.退出IDA时,会进行文件保存确认,如果需要继续进行分析,将IDA中间数据库打包,下次继续打开就可以进行分析;如果不需要继续分析,选择不要打包,不要存储数据库。


  IDA打开应用程序时,会为其创建一个数据库,后缀为IDB。IDB由4个文件组成,后缀为id0的二叉树形式的数据库,后缀为id1的程序字节标识,后缀为nam的Named窗口的索引信息,后缀为til的给定数据库的本地类型定义的相关信息。
  一旦IDA为某个可执行程序创建数据库,它本身就不再需要访问这个可执行文件,除非使用IDA的Debug功能。

  PS:更多的内容,后续持续更新。



温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046

    发表于 2020-7-6 20:01:14
    看不到图片

      发表于 2022-5-14 08:26:20
      谢谢分享谢谢分享

      小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

      GMT+8, 2024-4-24 03:27 , Processed in 0.097728 second(s), 49 queries .

      Powered by Discuz! X3.4

      Copyright © 2001-2021, Tencent Cloud.

      快速回复 返回顶部 返回列表