Android逆向——Android逆向进阶(2)

0x00 前言

有价之宝:戳这里
无价之宝:戳这里

说明

最近同步分析ELF文件格式分析。
本文在大佬教学后进行笔记整理以及个人体会进行一个记录。
并且以后的博客中可能会使用英文,顺便对英文进行一个练习。
然后可能会将一些文字用英文代替。
相信你们会见证我的成长。
ELF文件格式分析(1)

内容

1.实例练习。使用软件调试器。

0x01 实例练习

The first step

对demo进行签名,然后安装测试。

Here we find signature verification.

The second step

First,we connect to the virtual appliance.

Open the CMD.

Type the command.

adb connect 127.0.0.1:62001

Open the Android Killer and click 运行。(用的中文的Android Killer,所以还是用运行能说明问题,暂时还没有找英文版的Android Killer,也不知道有没有)

And then click 运行.

open demo.

Get log information(得到日志信息).

The first thing to notice is here.(第一个需要注意的地方是这里)

Here we know which so it’s calling,and then we’re going to look down.这里我们就知道它调用的是哪个so,然后接着往下看。

The second thing to notice is here.

So here we know that the demo stops here.so this is a function of the signature verification

The third step

Open IDA.

Open Exports.

Search the verifyHash string.

Double click to open and observe.

Find a string.”GetApkMFData”。

This string represents the apk signature verification.

We search for where this function is.

We see this strings.

Previously,the files in this folder are signature files.之前说过这种文件夹里放的文件是签名文件

The way we modify it is ti get rid of this string.我们修改的方法就是更改掉这个字符串即可

Open the so file with hex .用hex打开so文件

跳转到0017F590

然后修改,记得这里是16进制要进行一个转换。

The fourth step

保存,回编译进行测试。
save,compile,and test.

0x02 IDA动态调试

准备工作

Androidmanifest.xml 设置

application android:debuggable="true"

在Androidmanifest.xml文件中把false改成true

build.prop

ro.debuggable=true

ps:以上两个条件满足其一即可。

start

第一步

首先把dex文件拖到IDA中。

第二步

Debugger——Debugger Options

在打开的界面选择:

然后设置 set specific options

设置好包名

第三步

Debugger —— Process Options

端口号设置成8700。

然后继续调试即可。

0x03 IDA动态调试远程运行原生可执行程序

连接手机

adb shell进行测试

push android_server

这里不得不说一句,这篇博客是前两天开始写的,但是因为手机的问题,所以一直没有成功,最后还是重新刷新了下手机,获取root权限才完成的。

首先 push android_server

一定要用真机,不要用虚拟机。不然坑太多,填不完。

用小米手机的。用刷机精灵刷吧。反正我rom好了。如果是红米note 4x 我这里还有6块钱买的rom包,可以找我要哈。

具体流程

adb devices
adb push d:\android_server  /data/local/tmp/android_server 
adb shell 
su
cd  /data/local/tmp
chmod 777 android_server 
./android_server

重新打开一个cmd 转发端口

adb forward tcp:23946 tcp:23946

然后打开IDA

IDA操作

Debugger——attach——Remote ARMLinux/Android debugger

配置默认即可

cluck ok

就换显示手机上的进程。

所以我们现在就要选择需要attach的进程

wite

调试开始

找到modiles,然后找到我们需要找的so

然后选择合适的函数,当然这个是静态分析的时候的。

双击进入函数即可

在这里设置断点,然后进行运行。

变成蓝色的时候就代表断点成功了。

然后f8继续运行。

这里最重要的就是R0寄存器。

所以我们需要修改的内容就是这里。那么我们将数值改变。

从64 改成 ff,换成10进制就是从100改变成255。

然后开始运行。

测试成功。

0x04 结束语

IDA动态attach 在这里就成功了。那么现在要做的就是巩固练习。
恩,先横扫一下网上能看的到的so动态调试。

你可能感兴趣的:(Android逆向-操刀天下)