利用ida对程序的静态链接库进行处理
用IDA进行反汇编时最怕遇到的就是跟踪到了程序静态链接的库函数中,看得一头雾水不说,还浪费了大量的时间。其实如果有符号表的话,看看函数名就知道大概功能了,再看看参数就可以pass了。本文以meterpreter主服务dll–metsrv.dll为例,简要介绍一下利用IDA工具FLAIR来对程序的静态链接库进行处理的流程
用IDA打开metsrv.dll,如图:
图上部的条框区域,绿色部分是IDA能识别出的库函数,蓝色区域IDA认为是程序自身的代码,由于程序有600多K,代码量非常大,左侧的函数窗口可以看到都是诸如sub_10002A90之类的函数名,这时我们怀疑程序是不是静态编译链接了某些函数.
1.用string、file等工具识别静态库及版本,平台等
root@bt:/# strings metsrv.dll >1.txtroot@bt:/# cat 1.txt...OpenSSL 0.9.8k 25 Mar 2009.\ssl\ssl_lib.c...root@bt:/#
找到了”OpenSSL 0.9.8k”这样的字符串,我们初步判断是对openssl库进行了静态链接。需要下载openssl 0.9.8k对应的库文件libeay32.lib和ssleay32.lib,可以点击这里下载。
2.下载FLAIR61
FLAIR全名库文件快速识别与鉴定技术(Fast Library Acquisition for Identification and Recognition),IDA安装包里并没有自带这个工具。
官方下载地址:flair61。但需要验证用户名和密码。
也可以点击这里下载IDA6.1及相关工具,里面包括FLAIR61。
3.创建模式文件####
这里对windows环境下的openssl库创建模式文件,使用.\bin\win目录下的pcf工具。
D:\flair61\bin\win>pcf.exe libeay32.lib libeay.patD:\flair61\bin\win>pcf.exe ssleay32.lib ssleay.pat
.\plb.txt文件包含这个工具的详细参数说明。
4.创建签名文件####
D:\flair61\bin\win>sigmake.exe libeay.pat libeay.siglibeay.sig: modules/leaves: 4246/2632, COLLISIONS: 106See the documentation to learn how to resolve collisions.
创建签名文件时一般会产生冲突,这是因为两个函数的字节序列部分可能相同。
这时打开生成的.exc文件,将前四行删除,在冲突的函数组中如果想显示哪个函数名称,在前面添加+号,如果只想在数据库中添加函数注释,在前面添加-号。
_atalla_mod_exp_dh 02 2109 8B4424188B4C24148B542410508B442410518B4C2410525051E8........83C4 +_atalla_mod_exp_dsa 02 2109 8B4424188B4C24148B542410508B442410518B4C2410525051E8........83C4_PEM_write_bio_ECPrivateKey 04 913F 8B44241C8B4C24188B542414508B442414518B4C2414528B542414508B442414+_PEM_write_RSAPrivateKey 04 913F 8B44241C8B4C24188B542414508B442414518B4C2414528B542414508B442414_PEM_write_bio_RSAPrivateKey 04 913F 8B44241C8B4C24188B542414508B442414518B4C2414528B542414508B442414_PEM_write_ECPrivateKey 04 913F 8B44241C8B4C24188B542414508B442414518B4C2414528B542414508B442414-_PEM_write_bio_DSAPrivateKey 04 913F 8B44241C8B4C24188B542414508B442414518B4C2414528B542414508B442414_PEM_write_DSAPrivateKey 04 913F 8B44241C8B4C24188B542414508B442414518B4C2414528B542414508B442414_ec_GFp_simple_is_at_infinity 00 0000 8B4C240833C03941300F94C0C3......................................+_ec_GF2m_simple_is_at_infinity 00 0000 8B4C240833C03941300F94C0C3......................................
这时再执行sigmake.exe libeay.pat libeay.sig就能生成签名文件,ssleay.pat的处理同上。
5.应用签名文件####
将libeay.sig、ssleay.sig文件拷贝至[IDADIR]/sig目录下,用IDA重新打开metsrv.dll,选择 File->Load File->FLIRT Signature File
,分别将libeay.sig、ssleay.sig文件导入到metsrv.dll的数据库中:
这时静态链接的符号表都出来了,可以跟处理之前的图进行对比看看效果:
利用ida对程序的静态链接库进行处理相关推荐
- 静态链接库(.lib)和动态链接库(.dll)的使用
静态链接库(.lib)和动态链接库(.dll)的使用 文章目录 静态链接库(.lib)和动态链接库(.dll)的使用 一.静态链接库 1. 静态链接库概述 2. 创建静态链接库 3. 调用静态链接库 ...
- libcurl linux 静态链接库_GCC 程序编译的静态链接和动态链接
转自:Mr_Bluyee 在链接阶段中,所有对应于源文件的 .o 文件."-l" 选项指定的库文件.无法识别的文件名(包括指定的.o目标文件和.a库文件)按命令行中的顺序传递给链接 ...
- Visual Studio封装静态链接库至新静态库,供程序调用
熟悉Windows开发的人都肯定了解静态链接库和动态链接库. 最近遇到一个问题: A静态库是使用VS编译,因为C++版本的问题,并不能直接在Qt中被调用,因为会报头文件某处错误. 因为A库很大,同时又 ...
- c++动态链接库及静态链接库的生成与使用
c++动态链接库及静态链接库的生成与使用 1,新建控制台工程xdltest,改属性-配置属性-常规-配置类型为 动态库.dll或静态库.lib 2,打开工程后添加 dltest.h, dltest.c ...
- GCC编译过程与动态链接库和静态链接库
1. 库的介绍 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可 ...
- 动态链接库.so和静态链接库.a的区别
静态链接库: •扩展名:.a •编译行为:在编译的时候,将函数库直接整合到执行程序中(所以利用静态库编译生成的文档会更大) •独立执行的状态:编译成功的可执行文件可以独立运行,不需要再向外部 ...
- cnsl是什么意思_VS2010下创建静态链接库和动态链接库
VS2010下创建静态链接库和动态链接库 类封装成dll如果你的工作长期与某个领域相关,比如说长期做直接体绘制 (DVR)方面的开发,那么你可能经常使用自己的传递函数类,如果每一个工程你都把传递函数类 ...
- lib与dll的关系(详解静态链接库和动态链接库)
最近接触到的游戏会有很多的dll和lib文件,之前关于动态链接库和静态链接库一直很不理解,最近发现了一篇很好的文章,非常清晰的讲解了dll与lib的关系,这里拿出来给大家分享下. 原文链接:http: ...
- 静态链接库(Lib)和动态链接库(DLL)
序言:本文主要讲解静态链接库和动态链接库的区别,以及怎么样编译和引用两种库,怎么样从DLL中导出函数和导出C++类. 一.静态链接库和动态链接库 1.静态链接库(.LIB):函数和数据被编译进一个二进 ...
最新文章
- VC/MFC分割字符串(SplitString)返回CStringArray
- linux 设备树调试必须知道的几个路径
- linux磁盘空间清理
- Python单元测试之pytest
- 如何将visual studio 2010编辑模式改为插入???
- 2019-03-10-算法-进化(只出现一次的数字)
- P1552-[APIO2012]派遣【左偏树】
- Java正则表达式中的捕获组的概念及相关API使用
- 系统梳理 Tensorflow、PyTorch 等深度学习框架,洞悉 AI 系统底层原理和算法
- Protues构建最小系统
- 自学JAVA的十大网站你都知道那些
- Gradle下载及安装,配置IDEA
- CVPR 2020 | 几篇GAN在low-level vision中的应用论文
- 深度链接、延迟深度链接、App Links以及关于LinkedME实现深度链接的原理解析
- 强制关闭计算机窗口,windows系统怎么取消关机时强制关闭程序提示窗口?
- 0703齐次方程-微分方程
- KDZD608屏蔽服效率测试仪
- One PUNCH Man——降维
- TinyXML-2解析XML数据
- [转贴]拓展人脉的老派艺术