关闭

利用ida对程序的静态链接库进行处理

1010人阅读 评论(0) 收藏 举报
分类:

用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.txt

root@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.pat

D:\flair61\bin\win>pcf.exe ssleay32.lib ssleay.pat

.\plb.txt文件包含这个工具的详细参数说明。

4.创建签名文件####

D:\flair61\bin\win>sigmake.exe libeay.pat libeay.sig

libeay.sig: modules/leaves: 4246/2632, COLLISIONS: 106

See 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的数据库中:

这时静态链接的符号表都出来了,可以跟处理之前的图进行对比看看效果:

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

逆向 C++-- 识别类及其构造函数

逆向 C++这些年来,逆向工程分析人员一直是凭借着汇编和 C 的知识对大多数软件进行逆向工程的,但是,现在随着越来越多的应用程序和恶意软件转而使用 C++语言进行开发,深入理解 C++ 面向对象方式开...
  • Blue_Dream_
  • Blue_Dream_
  • 2007-09-22 12:03
  • 5987

静态库的逆向

得到一个工具的SDK开发包,开发出来的程序必须要有正确的许可证才能正常运行,所以想对SDK里面的lib进行逆向破解。   使用VC命令行的工具 lib.exe  /list TSMDd.lib ...
  • qq125096885
  • qq125096885
  • 2015-04-08 09:34
  • 353

使用天乐软件加密狗(JDProtect)保护您的软件,防止程序被跟踪/逆向/反编译/破解

本文介绍在易语言中使用天乐软件加密狗(JDProtect)保护您的软件,防止程序被跟踪/逆向/反编译/破解。关键点是在易语言中调用.lib静态库函数的技术和方法。
  • liigo
  • liigo
  • 2011-04-08 21:56
  • 5249

如何查看静态库中有哪些函数

有两种方法: 1 、从开始菜单中进入 Visual Studio 命令提示,转到lib所在目录      dumpbin   /LINKERMEMBER   vpxmtd.lib   >   ...
  • chenlycly
  • chenlycly
  • 2014-06-12 22:30
  • 4534

ELF64文件逆向分析知识—[2]制作静态库SIG

背景在搭建IDA调试远程Linux的环境过程中,我在Linux上使用file工具查看ELF文件得到了一下信息: 这个可执行文件是使用的是静态编译,同时在最终生成可执行文件时,删除了符号表和重定位信息...
  • txx_683
  • txx_683
  • 2016-12-04 15:18
  • 750

16.IDA-列出函数中存在的全部call

有时待分析的函数反汇编太长,需要确认此函数调用了哪些call 选择View▶Open Subviews▶Function Calls窗口 窗口的上半部分列出了所有调用当前函数(由打开窗口时光标所...
  • hgy413
  • hgy413
  • 2016-01-28 10:30
  • 1654

使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程

标 题: 【原创】使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程。 作 者: shayi 时 间: 2015-02-12,05:19:54 ...
  • liujiayu2
  • liujiayu2
  • 2016-06-19 19:39
  • 2163

openSSL1.1.1的编译

前言准备编译一个开源工程, git下来看说明, 说要openSSL. 那就先编译openSSL. 开源工程说的挺NB的, 要用户git最新版的openSSL:) 一般开源软件只敢说,...
  • LostSpeed
  • LostSpeed
  • 2017-04-07 02:40
  • 2743

用IDA的ARM Decompiler插件,查看SO的C语言源码

破解神器IDA,可以对SO/ELF文件进行反汇编(参见这里),既可以静态分析,又可以动态调试。 更强大的是,有个反编译器(Decompiler,参见这里),可以查看C语言的伪代码,真是太人性化了。
  • gaojinshan
  • gaojinshan
  • 2015-07-27 19:15
  • 13424

Linux Ida and Ird 源码分析

我有一个毛病就是不爱读源代码, 总是喜欢从宏观上看逻辑架构, 对于一些比较通用的代码,网上的分析很多,这个方法学起来的确比较快,毕竟源码,尤其是代码量比较多的源码,读起来是很费力的.但是现在越来越多的...
  • gjq_1988
  • gjq_1988
  • 2017-06-25 18:35
  • 472
    个人资料
    • 访问:796450次
    • 积分:11012
    • 等级:
    • 排名:第1694名
    • 原创:107篇
    • 转载:1382篇
    • 译文:0篇
    • 评论:53条
    最新评论