美文网首页
IDA使用分析

IDA使用分析

作者: XX开发从开始到放弃 | 来源:发表于2017-08-25 18:06 被阅读0次

本测验IDA的使用

使用环境:IDA version 6.6.141224

open文件的时候 可能会出现

强行打开后 发现

这种情况 查看函数本身内容可以看到,但函数本身的命名已经无法阅读了

这种情况只有经过砸壳才能处理

open还会出现

这个时候表面IDA无法识别这样的二进制文件。

出现这种情况的原因 可能是因为之前的选择文件处 未能正确选择

如MD5是:2D987244AE37F66B4C54592853B5D2D6。这个文件无法识别 打开如下

发现里面都是资源文件 这个时候需要对其解压,找到其中的plist文件,plist文件里对有效的app文件有说明

如图

简单能判断MultiCall为它的执行文件,将这个文件拖入IDA,即能识别

有些只需要简单识别,和文件名保持一致的即可识别打开

如MD5为02EA5313EBFFACDA1700E4FE44BE97D7

下面开始正式分析一个样本  样本列表如下图

解压完层层tar文件

解压过程为:

1:将文件改为.deb后缀

2:终端 tar xvf .deb

这个时候有无插件的解压结果是分情况的,下面是无插件的解压结果

并无外挂插件,在外挂层面上这个样本没有恶意行为。

接下来主要分析私有API的使用。

plist文件如下

因目前暂无iphone,无法动态运行该样本,放入IDA中如下

app的入口函数为 TwangAppDelegate applicationDidFinishLaunching,其他几个都是里面的函数 c伪码为

这个函数里简单分析如下

1:获取本例的audiosession会话,调用AVAudioSessionCategoryPlayback:这个类别会静止其他应用的音频回放。可以使用AVAudioPlayer的prepareToPlay和play方法,在应用中播放声音。主UI界面会照常工作。这时,即使屏幕被锁定或者设备为静音模式,音频回放都会继续。

2:获取sharedApplication本例application句柄,将状态栏方向设置为3(暂不管3为什么方向) setStatusBarOrientation

3:初始化TwangViewController并将其添加在主windows上,并使主window可见。

好,接下来分析TwangViewController里面的东西

这个类里面粗略一看

-[TwangViewController shouldAutorotateToInterfaceOrientation:]:这个函数意思很简单 该界面是否自动化支持界面旋转

-[TwangViewController viewDidUnload]:这个函数也很简单,是指界面在消失,即类的实例在析构的时候,界面的指针要设置成nil避免成为野指针

-[TwangViewController dealloc]:这个函数同上

-[TwangViewController didReceiveMemoryWarning] :这个函数是指app使用内存超标的时候发出的警告

-[TwangViewController pickerView:widthForComponent:]

-[TwangViewController pickerView:rowHeightForComponent:]

-[TwangViewController pickerView:numberOfRowsInComponent:]

-[TwangViewController pickerView:didSelectRow:inComponent:]

-[TwangViewController pickerView:viewForRow:forComponent:reusingView:]

-[TwangViewController pickerFrameWithLandscapeSize:]

-[TwangViewController numberOfComponentsInPickerView:]  这几个函数是控件pickerView的datasource和delegate,简单的说就是提供pickerview的component间距有多宽,每一行高度是多少,有多少个component,每个component有多少个rows,点击了会怎样等等。

重点来看一下-[TwangViewController viewDidLoad] 这个函数 如下

分析如下:

1:初始化一个glView,并将其添加到view上(当然并不清楚glView是什么东西),对这个glView添加一个观察者对象,它的响应函数是flippedEvent,触发条件是 Flipped

2:又添加一个观察者对象,这次的观察动作是 UIApplicationWillResignActiveNotification,响应函数是regignactive。简单点说,就是程序从后台切换到前台被激活的时候,触发这个函数。

3:又添加一个观察者对象 这次的动作是UIApplicationDidBeacomeActiveNotification,响应函数是becameActive。

4:触发glView的startAnimation动作

分别来看这几个函数是干嘛的

flippedEvent:

点击这个事件,则方向转为1方向,并设置这一动画的时间和角度,获取glView,触发playSwivelSound函数

resignactive:

glView调用停止播放,停止动画的函数

becameActive:

glView调用开始播放,开始动画的函数

如果就这样按照顺序去分析 分析恶意代码的耗时时间太长了

在无插件的情况下 分析恶意代码从四个内容入手

1:funtion。IDA提供代码中使用funtion列表,从function列表从浏览可能的恶意API的使用,如果有,进入实现处进行分析。

2:imports。IDA提供导入头文件,导入的framework,浏览这个列表也能发现可疑行为。

3:strings。从代码文件中抽离strings进行浏览,发现可疑行为。

4:names。从代码文件中抽离names进行浏览,发现可疑行为。

本样本未能发现恶意代码···

但是在样本MD5 = 2B98489938AAFA0D4DEB281239B913F6中 import里发现了AddressBook的框架调用

这个时候需要定位到此处去查看addressBook是否有未经用户允许擅自查询通讯录的行为

定位代码处为

有三处

+[ABAddressHelper getPersonNote:] 为

分析如下:

+[ABAddressHelper getPersonURL:] 代码为

+[ABAddressHelper getServerURL] 处代码为

其中ABAddressBookCopyPeopleWithName这个函数并未在ABAddressBook的数据源里实现,而仅仅在取得用户同意的基础之上才能在数据源里实现这个函数,

在别处使用这个函数都将是不合法的。

所以此处使用了私有API,属于恶意代码。

相关文章

  • IDA使用分析

    本测验IDA的使用 使用环境:IDA version 6.6.141224 open文件的时候 可能会出现 强行打...

  • ida pro动态调试步骤

    在上篇文章中,我简单介绍了使用IDA Pro静态分析so文件。今天,我将介绍一下如何使用IDA Pro动态调试so...

  • IDA的一些使用调试心得

    (例子详见最新分析的熊猫烧香病毒,并不止应用于病毒分析,也可以应用于其他逆向) 在使用IDA使用之前,一定要分析出...

  • 攻防世界 no-strings-attached(Reverse

    解题概要 使用pe分析是32位文件,使用ida反汇编分析代码逻辑,是一道要求用户输入flag,然后比较的题目。正确...

  • 逆向实战 (27)

    用IDA分析MachO文件 IDA -> File -> New instance New -> 新打开一个窗口 ...

  • IDA 使用

    当IDA加载后,3个立即可见的窗口分别为IDA-View窗口、函数窗口和消息输出窗口,所有窗口都可通过View▶O...

  • IDA使用

    function调出:上方菜单-view-open subviews-functions 输出窗口:上方菜单-wi...

  • Android逆向 之 IDA静态分析so(一)

    概述 本文使用IDA对android调用so进行静态分析,以此实验掌握so层的一些分析技巧。 前置条件 ARM 汇...

  • 新手大全

    IDA使用大杂烩

  • IDA6.8动态调试so-windows

    1.打开cmd进入IDA6.8目录的dbgsrv子目录,执行以下命令: 2.IDA 设置 使用IDA调试安卓elf...

网友评论

      本文标题:IDA使用分析

      本文链接:https://www.haomeiwen.com/subject/ivcpdxtx.html