专栏首页逆向技术逆向知识第一讲,IDA的熟悉使用

逆向知识第一讲,IDA的熟悉使用

            逆向知识第一讲,IDA的熟悉使用

一丶熟悉IDA,以及手工制作sig文件.

IDA,静态分析工具,网上随便找一个即可下载.

首先,我们写一个可执行EXE,最简单的

使用IDA打开.

1.提示使用什么格式打开

因为是PE格式,所以我们选择PE即可.点击OK

2.重新打开一下

如果以前已经打开过这个PE,那么重新打开,则会显示这三个按钮,

1.overwrite 重新写入,代表覆盖以前的.(联系中常用这个,工作中不常用)

2.load existing 加载已经存在,这个很常用,因为有的时候汇编的注释很多,或者样本分析不会是一天完成,那么加载这个已经存在的即可.

3.取消.

3.打开后显示的视图

这个视图是罗列出函数的逻辑.

我们不看这个,主要是看汇编代码.

1.切换到汇编代码

右键,点击Text View

2.查看汇编代码.

这里有代码提醒功能,那么我们要学会怎么做,IDA是读取.sig文件,然后显示出来的.

那么我们要学会怎么做.

二丶制作.sig文件.让IDA显示.

制作.sig文件,我们依赖于一个VC自带的工具,还有特征提取工具.

1.VC 自带的lib.exe

2.特征提取工具pcf.exe

都会打包.

第一个,我们首先手动制作一个.sig文件.

1.熟悉什么是特征,以及特征是什么.

先熟悉一下特征是什么

首先上图看到,我们已经显示出来了system这个库函数了,那么是怎么显示的? IDA读取sig文件,但是读取sig文件也要有特征匹配才会显示.

首先我们双击system,进去查看它的汇编,以及二进制代码.

默认是没有机器码的,所以我们要显示出来机器码.

Options(选项) - > General(一般)

然后出来下图

只需要在画红色方框的地方,写入大小,则会显示机器代码多少

特征就是固定的二进制代码, 注意,是固定的二进制代码,打死都不会变的.

比如上面的push ebp的机器代码,是55

但是注意,偏移不是,比如最后的一个红框后面的偏移,因为这个受很多因素干扰.

2.使用lib.exe提取obj文件出来.

注意,因为printf是属于libc.lib中,所以直接把libc.lib的obj提取出来

这里我的环境变量已经配置好了,可以直接使用CMD命令行了,注意,如果你没有配置,请网上搜索配置的方法.

vc的lib.exe目录所在文件.

vc98 -> bin ->lib.exe, 这里给的是一部分,因为我不知道你的vc在哪里装着,所以这个是不会变的.

而libc.lib所在的文件路径,也是在vc98下面,只不过不是bin了,变成了lib了

首先lib工具的使用命令

1.遍历lib中所有obj的文件

lib /list xxx.lib

2.lib.exe提取obj文件出来.

命令:

lib /extract: xxxxx.obj  lib文件名

比如上面随便提取一个

lib /extract: build\inter\st_obj\xxxxx.obj  libc.lib

 3.使用pcf.exe(特征提取工具)

这个工具要自己去下载.

官方网址: http://www.hex-rays.com/products/ida/support/ida/flair61.zip

需要用户名和密码

当然也会打包,只不过版本比较低.

首先,使用pcf文件,生成一个.obj文件的特征码.结尾是.pat

命令:

pcf xxxx.obj

查看特征码格式.

前边都是机器码,后面的2E 2E 2E 2E...代表的是偏移什么的,反正就是做补充的.

比如机器码

55

68 

FF 25 00 00 40 00

那么写到文件中就是55 68 FF 2E 2E 2E 2E 2E 2E 2E 2E 

其中两个2E代表一个.

四丶生成.sig文件.

这个会用到sigmake的工具

命令  sigmake  xxxx.pat  xxxx.sig

举例子:

sigmake printf.pat  printf.sig

那么生成的文件就是printf.sig

只需要把这个文件拷贝到IDA目录下的sig目录下即可.然后使用IDA的时候我们需要简单设置一下.

命令就是上面那个命令

制作完成之后拷贝到IDA的sig目录下.

然后打开IDA, 快捷键Shift + F5  

出来下面的界面

那么现在我们右键,添加我们的sig文件进去即可.这个时候我们的printf就可以显示了.

添加进去

点击OK即可.

此时我们的printf就已经显示出来了.

上面只是一个简单的.生成一个,当然可以写脚本生成很多个.

当然也有脚本,脚本使用方法.(.bat)

脚本名称  libc

注意不是libc.lib

可以一键升成libc库中的所有.sig

 课堂资料:  链接:http://pan.baidu.com/s/1boN2Zvx 密码:rfag

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 16位汇编第八讲指令第四讲

            16位汇编第八讲指令第四讲 一丶串操作类指令 1.什么是串操作?   1.串操作指令是8086指令系统中比较独特的一类指令,采用比较特殊的数据串...

    IBinary
  • Linux基础知识第五讲,远程管理关机启动网卡命令

    两个网卡. 绿色标注的是网卡名称.这只是一个名称,不重要. 通过 ifconfig查看IP地址.一个是本机测试网卡是否 正常通信的IP地址.也就是本地地址...

    IBinary
  • 系统权限远程线程注入到Explorer.exe

    我们上一面说了系统服务拥有系统权限.并且拥有system权限.还尝试启动了一个进程. 那么我们是不是可以做点坏事了. 我们有一个系统权限进程.而调用 Cre...

    IBinary
  • ip地址判断

    题目描述 输入一个ip地址串,判断是否合法。 输入描述: 输入的第一行包括一个整数n(1<=n<=500),代表下面会出现的IP地址的个数。 接下来的n行...

    张俊怡
  • 软件工程期末考试复习(九) 建立对象模型软件重用工作量估算能力成熟度模型

    1、软件估算模型使用由经验导出的公式来预测软件开发工作量,工作量是软件规模(KLOC或FP)的函数,工作量的单位通常是人月(pm)。

    用户2417870
  • Python一条龙:创建、读取、更新、搜索Excel文件

    CSV文件是由逗号分隔的值文件,其中纯文本数据以表格格式显示。它们可以与任何电子表格程序一起使用,如Microsoft Office Excel、Google ...

    量化投资与机器学习微信公众号
  • 安全|常见的Web攻击手段之CSRF攻击

    黄小怪
  • 一些小巧的IP

    目前,越来越多的工程师会用到Vivado IP Integrator(IPI)。它的强大之处在于通过实例化和互连IP构建复杂的设计。现在的IPI中,不仅可以添加...

    Lauren的FPGA
  • 响铃:流量IP商业化走出了两条完全不同的路:独乐乐、与众乐乐

    如今IP依然又热又挤又平,热不用说,挤是因为每个细分领域都诞生出头号种子,比如纯原生网红IP有papi酱、网文IP有六神磊磊、星座文化类IP有同道大叔、影视IP...

    曾响铃
  • 50.如何将多张图片合并到一起

    TalkPython

扫码关注云+社区

领取腾讯云代金券