记录一次app逆向分析---某电子称重机

这次逆向只有向称重机发送商品数据的一部分


相关的工具包在这里:
链接:https://pan.baidu.com/s/1hDNQe7zpG47T2KS0Nqm_Dw
提取码:vr4n

一、使用抓包工具抓取请求的数据

  1. 在设备上点击数据下载到设备,抓取请求数据

在这里插入图片描述

  1. 点击上传后只有这三条数据出现,分析后发现是通过最后一个请求将数据传输到设备上,并且是采用WebSocket的方式

在这里插入图片描述

  1. 自己编写代码尝试和设备建立通讯,发现可以成功,可是商品数据都是经过处理上传的,所以需要知道它是如何生成的,才能不使用app就可以将数据上传

二、使用AndroidKiller对apk进行反编译

  1. 将apk拖入到AndroidKiller中,出现反编译成功,等待结束就行
    在这里插入图片描述
  2. 在工程搜索中对url中的字符,WebSocket中传输的特殊关键字进行搜索,这里只贴出来了一个

在这里插入图片描述

  1. 发现并没有想要的结果

三、用 jd-gui 打开jar文件

  1. 由于在AndroidKiller中没有任何发现,避免查找缺失,使用jd-gui再找一遍

    • 将smali文件转成jar包

       1.先将smali转dex,借助工具smali.jar,在终端下cd到文件所在目录,输入  java -jar smali.jar project/smali/ -o classes.dex
       2.然后将dex转换成jar即可,借助工具dex2jar-2.0,输入 d2j-dex2jar classes.dex
      
    • 为了方便我是采用网上提供的一键反编译工具,将apk文件拖到_onekey-decompile-apk.bat上就可以了

  2. 以 getWebSocket 为例,将jar文件拖到jd-gui上方就可以打开文件,并搜索

在这里插入图片描述

  1. 还是没有找到自己想要的结果

感觉到这里好像没办法继续了,尝试以上方法都定位不到想要的数据生成方法,也就没办法使用AndroidStudio进行动态调试了,可是数据已经被抓包工具抓到了,为何反编译后的代码中一个有用的方法都定位不到???


四.分析

  1. 能抓到请求,数据也肯定是在本地处理后在传输到设备上的,表示所有的方法都在app里面,既然java里面没找到,那就看看js代码里面
    有以下发现,这里有发送和接受信息等备注,说明方法很可能就在这个文件里面

在这里插入图片描述

  1. 发现了这个,这下可以明确了数据的上传实在这里进行的,再看看数据是不是也是在这里进行处理的

在这里插入图片描述

  1. 这个地方刚好是抓包中存在的关键字 cmd ,并且通过之前的抓包可以看到数据是多次发送的,在这个地方加上断点,如果点击后能在这里停止,那么数据的处理就在 package 方法里
    在这里插入图片描述
    在这里插入图片描述

五.实现

  1. adb devices 检查设备是否在线

    • 实体机打开开发者模式,启动usb调试功能,连接数据线
    • 模拟器直接使用即可
      在这里插入图片描述
      如图则说明能检测到设备,否则尝试断开数据线重连或重启设备
  2. 在浏览器上访问 edge://inspect/#devices 或者 chrome://inspect/#devices
    在这里插入图片描述

  3. 在设备上进入到指定页面,浏览器上就会显示对应的信息
    在这里插入图片描述

  4. 点击 inspect,会进入到调式页面,找到之前发现的 dataDistribution.js 文件,找到需要打断点的位置

在这里插入图片描述

  1. 在设备上进行对应操作
    在这里插入图片描述
    发现能够在这里停下来,并且可以查看到原始数据和app上的数据是一一对应的

六、结束

后面只要将对应的js代码拷贝出来调用或者将代码转换成其他语言就可以实现不打开app也可以修改商品信息并发送给称重机了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值