android获取apk校验码,动态调试\分析链家APK - 获取请求校验方式

本文介绍了如何动态调试和分析链家APK以获取请求校验方式。首先搭建动态调试环境,然后使用Apktool和JEB反编译APK。通过分析代码,找到生成Authorization的逻辑,主要涉及HttpUtil类和相关函数。通过动态调试Smali代码获取AppSecret和AppId,从而实现模拟请求。最后提供了Python版的Authorization生成程序示例。
摘要由CSDN通过智能技术生成

动态调试\分析链家APK - 获取请求校验方式

​ 基础问题请自行百度/谷歌

​ 对链家APK进行抓包,发现链家APK请求头中附带了请求校验信息Authorization,这里需要知道请求校验生成方式,从而模拟请求,获取链家房源信息数据。

目录:

1 、搭建动态调试环境 (androud studio + Android Device Monitor + android 虚拟机/真机)

2、反编译 链家APK ,获取APK的small 代码 , java 代码 (Apktool + jeb)

3、分析反编译后的代码、找到 生成Authorization的逻辑

4、动态调试small,获取生成Authorization的必备参数。

5、验证迭代、实现验证方式

1、搭建动态调试环境

参考:apk逆向 - smali动态调试 搭建环境,测试环境,可以看下面的临时修改方案,快速适应。

工具:

Android studio: 包含用于构建 Android 应用所需的所有工具,包括 Android Device Monitor, SDK, 等一系列工具。

Smalidea:一款动态调试Smali的插件

android 虚拟机/真机:root过的且开启了调试功能的测试机, 建议使用真机,虽然arm架构的虚拟机默认rooot ,并开启了调试功能,但是慢、卡。

mprop:

手机的调试功能

​ 根据android的官方文档,如果调试一个APK,必须满足以下两个条件中的任何一个:

​ 1.APK的AndroidManifest.xml文件中的Application标签包含android:debuggable="true"

​ 2.andorid系统中 /default.prop中的ro.debuggable的值为1,

​ 当Dalvik 虚拟机从Android应用程序框架中启动时,系统属性ro.debuggable 为1 ,所有程序都开启调试支持,若为0,则判断程序 androidManifest.xml,可使用 adb shell getprop ro.debuggable 来检查。

​ 这里选择方式二,好处是不需要对apk进行修改,就可调试,避免修改APK签名验证问题,满足调试、分析需求。

开启调试功能

​ 修改ro.debuggable方式有很多,这里选择 mprop工具来临时修改内存,手机重启后恢复。

​ mprop的使用:

​ 1)使用adb 将mprop push到手机, adb push .\你的存放路径\mprop /data/local/tmp/

​ 2)修改权限 adb shell "chmod 755 /data/local/tmp/mprop"

​ 3)运行使用root权限运行mprop,设置ro.debuggable=1, ./mprop ro.debuggable 1

​ 4)重启 adb, 查看ro.debuggable 属性是否为1

$ adb push .\你的存放路径\mprop /data/local/tmp/

$ adb shell "chmod 755 /data/local/tmp/mprop"

$ adb shell

$ su

# cd /data/local/tmp/

# ./mprop ro.debuggable 1

# exit

# exit

# 重启adb 查看ro.debuggable 属性

# adb shell getprop ro.debuggable

2、反编译 APK,配置调试

工具:

​ Apktool : 逆向Android应用程序工具,可以将程序解码为原始形式 ,并在修改后重新构建为APK程序。这里主要使用它的逆向功能。

​ jeb : 著名APK反编译工具,第三方Java反编译器输出,支持java代码中函数跳转。可以提高效率减少分析时间。

配置Smail调试

使用Apktool 将链家APK反编译,后面会使用它来调试 apktool d Android_lianjia_pc.apk

打开AS , (File -> New -> import Project) 打开反编译结果所在文件夹(Android_lianjia_pc), 将反编译好的项目导入,一路点击,等待导入完成。

在AS中配置远程调试,打开Run->Edit Configurations,添加远程调试 (点击如下图加号选择Remote),

配置远程调试,Name随便填就好,host为localhost,端口8700

打开Android Device Monitor , (Tools -> Android -> Androi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值