浅谈安卓逆向技术之methood profiling
2022-02-28 17:03:512415浏览
methood profiling 叫做方法剖析,主要是用于热点分析和性能优化,除了可以记录每个函数占用的cpu时间外,

Methood profiling?看到这个我相信很多朋友们是不知道的,但它还有一个名字叫做方法剖析,我相信大家都知道了,而今天小生要给大家讲解的就是Methood profiling,希望对大家都有所帮助!

Methood profiling

Methood profiling 主要是用于热点分析和性能优化,除了可以记录每个函数占用的cpu时间外,还可以跟踪所有的函数调用关系,并提供比栈跟踪法更详细的函数调用序列报告。
举例:

首先我们先打开咱们的雷电模拟器,并把apk拖进去安装好。

我们先打开这个app,我们第一次打开他会有提示,引导界面,我们快速的略过就行,然后它会让你更新,这个时候我们千万不要点更新就行,我们要点取消,记住一定要点取消!

然后我们进入到我的界面去,找到用户登录的地方。

这里我们随便的输入什么都可以,在这里小生就用易锦大学,密码也是用yijindaxue来代替,输入完成以后我们点击登录看看会出现什么情况。

他会提示我们说账号不存在,因为我们并没有注册账号,所以账号不存在也是在情理之中。这个也不影响我们分析他的登录逻辑。

我们在多点几下立即登录,就会出现一个需要验证码的环节,这个时候就需要我们去填写验证码了。

我们在了解app的登录功能之后,我们接下来就去使用咱们的ddms去分析程序的登录逻辑。我们打开我们的cmd,输入ddms启动ddms工具。

没有工具的可以扫码领取。

这个时候我们可以看到小生框起来的地方都变灰的,我们去看一下,首先我们要找到它的包名。

我们点击这个包名。就会看见上面几个选项变亮了。这就说明我们可以正常的去使用这些功能了。

Methood profiling,这样一个功能是在这个工具的那里呢?我们可以去看一下上面几个功能。

这个是介绍的意思,显然不是Methood profiling,当我们点击这个按钮,当然的这个进程就会结束。

这个就是咱们打的methood profiling 了也就是我们方法剖析的按钮。找到之后我们点击第五个按钮。它会弹出以下这个框。这个就是一个自动过滤器的功能。

这里是可以自动设置过滤的地方,而1000这里是设置我们需要过滤的方法个数。

下面这个就是没有过滤。没有过滤就是把所有的方法,剖析的一些方法,调用的信息捕捉出来,然后我们在去点击ok它就会去开始捕捉。我们当前模拟器里面输出的信息。

我们根据提示在模拟器里面,输入2542点击立即登录

然后我们在去暂停方法剖析,点击停止。

停止以后他会弹出以下这个界面。

这里给大家介绍一下,在这里的这个name属性下面的值,我们的一些函数的一些调动流程,以及各个类等,后面还有cputime 时间这块来占用cpu的一些时间等。

如果说我们后面需要做一下优化的话,我们可以根据它的这种方法剖析来看一下它占用的cpu时间。来做一下源码解析器,来进行一下修改。

既然我们提到了这里面的一些函数,我们随便去打开一个看看。

这个就是当前的一个执行方法。这里是他的一个父节点。下面这个是当前方法的上层调用,以及他下面子节点,当前的下层调用。

在这里我们会有朋友会问了,那么多方法我们要怎么样去筛选呢?今天小生就一一告诉大家。

我们在点开方法剖析之前,先打开模拟器,调整一下位置,然后迅速的点击,然后开始方法剖析,点击ok。瞬间点击开始登陆,在迅速的点击结束。

在这里我们一定要快,可能有些朋友会问,我们为什么要这么快呢?因为我们要达成的目的,出手就要快很准,当然也是为了数据更加的精确。

当然我们也可以通过他的包名的信息进行过滤。

我们打开刚刚所剖析的,我们可以看到安卓开头的,还有java开头的,org开头的,而org开头的都是系统方法,我们可以直接的过滤掉,我们还可以根据反编译后的smali文件里面相关的包名来进行一个记录,方便我们在阅读这些方法流程的时候,快速的筛选到相关有用的信息。

当然这个工具还有搜索功能。

如果剖析下来还是多,那我们就要用到这个find搜索了,我们可以通过包名或者方法名,那我们这里要输入什么呢?我们都知道我们点击的时候,会触发一个点击时间,在内部它会调用onclick方法去处理,所以说登录逻辑或者是注册的时候,我们都会优先去搜索onclick方法,让它记下来。我们去搜索一下。

然后我们去分析一下它的登录功能,我们直接打开Android killer,我们已经把app反编译好了,我们去找一下它所在的一个位置。

我们可以在这里去分析。

小结:

友情链接: