记一次APK反编译,拿到自己想要的API过程及应用

Posted DeathAndLife

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次APK反编译,拿到自己想要的API过程及应用相关的知识,希望对你有一定的参考价值。

目的

我的电脑装了一个开机卡

本身已提供了windows和Android和微信的程序

我使用的是iPhone,想拿到API 写快捷指令,这样就可以通过

嘿,Siri 打开/关闭/重启电脑 (现有的app 要打开app 还要点击 觉得麻烦,之前本来想写py脚本用快捷指令运行,但是Pythoniate太贵了 凎)

等等操作

在做这些操作之前询问过客服,不能提供。所以我就自己来弄了。

注意:这些都是我个人使用,这里就不贴出开机卡的厂家和店铺地址了

之前抓过包,抓不到

反编译过程

教程很多,可以直接跳过

反编译工具

  1. apktool

    下载地址

  2. dex2jar

    下载地址

  3. jd-gui

    下载地址 (Github 可能需要加速器)

准备反编译的apk包

  • xxx.apk

开始反编译

  • 准备

    为方便,将三个工具和apk放在同一目录(最好不要有中文路径)

  1. 使用apktool 反编译apk

    java -jar apktool_2.5.0.jar d -f [apk的路径] -o [反编译后的文件夹]
    //执行过程没有报错则反编译成功
    
  2. 使用dex2jar反编译apk拿到Java源代码

    1. 首先将apk后缀名改为rar / zip 压缩包格式并解压

    2. 解压后将其中的 classes.dex文件放到dex2jar-2.0文件夹内

    3. 在这个目录打开cmd

    4. 执行

      ./dej-dex2jar.bat classes.dex
      
    5. 执行完之后就会在当前目录生成一个classes-dex2jar.jar包了,这就是Java源码

  3. 用jd-gui打开Jar包就可以查看源码了

通过一段时间的源码阅读成功找到关键代码

  • 找到了api接口

  • 以及各种接口的方法

  • 这里就不在多说,每个apk都不一样,而且找的过程复杂且枯燥

通过Postman测试接口

发现要成功的请求需要有顺序的三步(三个接口)

这里就不贴出详细的信息了:手动狗头

  1. 第一接口用来初始化客户端(请求的机器)让服务器认为你是一个合法的客户端
  2. 第二个接口是登录接口,会返回 用户id session cookie
  3. 第三个接口就是真正的发送远程控制的命令了(开机,关机,软关机,重启等)

这里看这比较简单,但却是最耗时的,其中找deviceId花费了大量的时间(代码中没有)

最终应用

  • Postman测试好之后就开始了 ios的快捷指令的编写

效果

视频
哔哩哔哩

CSDN口诉一下

  • 嘿,Siri 打开电脑
  • 嘿,Siri 关闭电脑
  • 嘿,Siri 重启电脑

以上是关于记一次APK反编译,拿到自己想要的API过程及应用的主要内容,如果未能解决你的问题,请参考以下文章

反编译Android APK及防止APK程序被反编译

表哥有话说 第62期记一次路由器lua反编译过程

记一次android程序反编译并二次打包的过程

Android APK 反编译

apk是啥文件,Android文件中怎么反编译

linux下的APK反编译软件及过程介绍 .