iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android加密参数定位实现方法
  • 460
分享到

android加密参数定位实现方法

2024-04-02 19:04:59 460人浏览 泡泡鱼
摘要

目录巧用搜索-静态分析objection定位frida-hooklog注入动态调试在逆向一个Android程序时,如果只是盲目的分析需要阅读N多代码才能找到程序的关键点或Hook点,

在逆向一个Android程序时,如果只是盲目的分析需要阅读N多代码才能找到程序的关键点或Hook点,本文将分享一下如何快速的找到APP程序的加密参数位置,其实不论是找关键位置、找hook点,找加密参数、代码逻辑追踪,都是类似的处理方法。

巧用搜索-静态分析

一般静态分析找加密参数的流程都是先查壳(脱壳)、反编译、查找程序的入口方法、分析程序的执行流程。
假设已经使用Android killer反编译了未加壳的app,直接使用工程搜索检索需要查找的参数名,根据AK的反馈信息进行对比,找到其对应的参数位置。也可以根据应用执行流程逐行向下分析代码,比较累。

objection定位

objection是基于Frida的动态分析工具包,可以免root动态调式apk,同时支持iOS和Android。安装方法可以到GitHub查看。github:https://github.com/sensepost/objection
在通过搜索之后如果有几个不确定的位置,则正好可以使用Objection,Objection就是专业的定位小能手,从定位流程上来说也只有三步。

1、注入目标进程


objection -g com.xxx.xxx explore 

2、跟踪类


android hooking watch class 'com.xxx.xxx.lx.apiSign'

3、查看入参和返回值


android hooking watch class_method 'com.xxx.xxx.lx.ApiSign.a' --dump-args --dump-return

然后通过参数和返回值与请求接口中的协议进行对比就可以却确定究竟是在哪一个位置了。

frida-hook

frida、xposed这类hook工具也是动态分析的一种。假设某App的接口有 signature 签名,并且该参数值看上去非常像是Base64,并且长度为定长且少于20位。这个时候如果通过工具全局搜索没有找到,则可以通过frida凭感觉Hook下App中所有操作Base64的位置。
Frida代码如下:


var Base64Class = Java.use("android.util.Base64");
Base64Class.encodeToString.overload("[B", "int").implementation = function(a,b){
 var resault = this.encodeToString(a,b);
 console.log(">>> Base64 " + resault);
 if(resault.length <= 20){
  var stackAdd = threadinstance.currentThread().getStackTrace();
  console.log("resault stackAdd is:" + Where(stack));
 }
 return rc;
}

通过这种方式大概率能打印出签名计算的位置,这也属于巧计的一种,大家一定不要忘记这种定位方式。

log注入

代码注入也属于动态分析,流程是先修改apk的smali代码,既是在某关键函数前加入 android/util/Log 输出,配合LoGCat 查看程序执行时的log数据。

关于android/util/Log的 Log extends Object 一共有5个方法:Log.v() Log.d() Log.i() Log.w() and Log.e()

一般使用Log.v() 日志输出函数就可以了,不做案例了,详细内容会往书中写。

动态调试

其实定位的方法只有两种静态分析和动态分析,动态调试也属于动态分析,和上面的方法异曲同工。

动态调试这里可以理解为堆栈调试,有时候需要利用到不同的工具和方法,

比如 JEB调试、smali调试、IDA调试等等。

不再细说了,本文简单总结一下。

到此这篇关于android加密参数定位方法的文章就介绍到这了,更多相关android加密参数定位方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: android加密参数定位实现方法

本文链接: https://www.lsjlt.com/news/122697.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作