IDA Pro分析Android软件

本文转载自:http://www.52pojie.cn/thread-237886-1-1.html



IDA Pro: 被称为最强大的 Android静态分析工具


说明:本图文教程的方法及工具均分享自看雪移动区版主@非虫的原创图书《Android软件安全与逆向分析》#5.6.3#

          特为整理出来,新手教程 求高手指点啊O(∩_∩)O

========
使用IDA Pro定位关键代码的方法:
1、搜索特征字符串。具体操作为:①快捷键Ctrl+S,打开搜索类型选择对话框-->双击Strings,跳到字符串段-->菜单项“Search-->Text”;
                                                      ②快捷键Alt+T,打开文本搜索对话框,在String文本框中输入要搜索的字符串点击OK即可;


    
不过 目前IDA Pro对中文字符串的显示和搜索都不支持,需要编写相关的字符串处理插件来解决。
2、搜索关键的API。搜索方法与上面的是一样的。
Tips:
Android API(可供调用的系统接口)可以分为:可选API、Wi-Fi API、定位服务、多媒体API、图形API等;

3、通过方法名来判断方法的功能。这种方法比较笨拙 对于混淆过的代码,定位关键代码比较困难。下面的CrackMe就可以通过方法名来定位关键代码。

======== 
下面我们就以一个CrackMe为实例来演示IDA Pro分析Android的流程。
首先安装运行APK程序 可以看到主界面上有两个按钮,点击第一个按钮“获取注解” 会Toast弹出三条信息;点击第二个按钮“检测注册码
则会显示“注册码错误”。很显然 第一个按钮是混淆视听的。
Tips:
IDA Pro是直接分析Android程序的主体dex文件 所以需要将dex文件从原程序中分离出来 可以用RAR压缩解压缩软件直接将dex从apk中拉出来,修改修复以后再借助它压缩进去即可。


所以我们就可以按钮事件的响应为突破口来查找关键代码。
很容易知道该CrackMe.apk的主Activity类为MainActivity,于是在Exports选项卡页面上输入Main,代码会自动定位到以Main开头的所在行 其中
的方法也就一目了然了。
Tips:
一个Android程序是由一个或多个的Activity以及其他组件组成 每个Activity都是相同级别的,不同的Activity实现不同的功能。每个Activity都是Android程序的一个显示“页面” 主要负责数据的处理及展示工作。
每个Android程序有且仅有一个主Activity(隐藏程序除外) 它是程序启动的第一个Activity 通常标识为“android.intent.action.MAIN”.

     

通过图我们可以看到有两个名为OnClick()的方法 我们可以试试它们分别是对应哪一个。分别双击这两个代码行 会来到相应的反汇编代码(IDA View-A)处,
按下空格键切换到流程图。从而容易得出第二个OnClick()方法是关键 且可以看到代码的分水岭就是“if-eqz v2,loc_2D0DC”。左边红色箭头表示不满足时执行的路线;
右边表示条件满足时执行的路线。


 


将鼠标定位到指令“if-eqz v2,loc_2D0DC”,然后点击IDA Pro主界面上的“Hex View-A”选项卡,


 


知偏移地址为0x2D0BE 相应的字节码为“38 02 0f 00”,
所以只需将if-eqz的OpCode值38改为if-nez的OpCode值39即可。
(说明:也就是利用十六进制编辑器 将偏移地址0x2D0BE的“38 02 0f ”改为“39 02 0f”,具体什么什么是OpCode 我不明白了o(╯□╰)o)
修改好之后的修复dex文件的合法性 所以就借助@非虫的工具 

 


修复好之后 拖进RAR解压压缩软件 并删除其中的签名文件夹“META-INF”,这时CrackMe.apk的破解就完成了 签名安装就可以测试了。

附件:  CrackMe DexFixer.rar (162.49 KB, 下载次数: 382) 
1. 下载IDA Pro: 首先,需要从官方网站下载IDA ProIDA Pro是一款反汇编软件,可以用于分析二进制文件,包括Android应用程序。 2. 反编译应用程序: 使用IDA Pro打开APK文件。可以使用“File”菜单中的“Open”选项来打开APK文件。在打开文件时,IDA Pro会提示您选择反编译选项。您可以选择自动或手动反编译。 自动反编译选项将自动开始反编译过程,并将所有反编译结果保存在一个新目录中。手动反编译选项将允许您手动选择要反编译的文件和目录。 3. 查看代码: 一旦应用程序被反编译,您可以开始查看代码。使用IDA Pro的“View”菜单中的“Open subviews”选项可以打开各种代码视图,例如文字视图、结构视图等。 4. 寻找漏洞: 使用IDA Pro可以分析应用程序的代码,以寻找潜在的漏洞。例如,您可以搜索应用程序代码中的不安全函数、缺少的安全措施等。 除此之外,还可以使用IDA Pro查看应用程序中使用的加密算法、数据库访问等敏感功能,以寻找潜在的漏洞。 5. 分析网络流量: 如果应用程序涉及网络通信,您可以使用IDA Pro分析应用程序发送和接收的网络流量。可以使用IDA Pro的“Network Traffic Analysis”插件来分析网络流量。 总之,使用IDA Pro可以帮助您分析Android应用程序的安全问题,以寻找潜在的漏洞和提高应用程序的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值