码迷,mamicode.com
首页 > 其他好文 > 详细

逆向工具的使用

时间:2021-04-22 15:56:05      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:min   span   owa   操作   显示   stat   jar   params   assets   

1. jadx

https://github.com/skylot/jadx

jadx是一个java写的gui工具,可以直接查看apk和dex的反编译后的java代码,支持直接拖拽apk到gui工具查看。如果apk过大直接拖进去可能会导致界面卡死,可以先解压成dex文件,再把dex文件拖进去查看。

安装方法

brew install jadx

常用命令

// 将demo.apk直接反编译成java源文件到dir目录
jadx -d dir demo.apk

2. apktool

https://ibotpeaches.github.io/Apktool/

apktool是一个Android反编译工具,可以将apk反编译成smail。

安装方法

mac安装教程:

  1. 官网下载script脚本,命名为apktool
  2. 下载apktool jar包,并命名为apktool.jar
  3. 将上述两个文件移动到/usr/local/bin下(需要root命令)
  4. 确保上述两个文件有可执行权限
  5. 控制台执行apktool验证安装

常用命令

// 将xx.apk反编译,输出到kk文件夹。d是decode的意思。
apktool d xx.apk -o kk

可选额外参数

  • -f 表示可以强制删除上一次生成的目录并重新生成反编译产物
  • -s 表示可以不反编译源码保留dex文件
  • -r 表示不反编译资源文件
// 将kk文件夹回编译成x.apk。b是build的意思。
apktool b kk -o x.apk 

3. xposed

https://repo.xposed.info/module/de.robv.android.xposed.installer

xposed是一个不需要修改Apk的情况下可以修改系统或者Apk程序的框架。

安装方法(模拟器)

在已root设备上安装xposed框架,没有root设备的可以用MuMu模拟器代替。

快盘链接中下载模拟器安装包和XposedInstaller_3.1.5.apk。安装好模拟器并在设置中开启root权限后重启,安装XposedInstaller_3.1.5.apk,当出现xposed框架已激活就代表安装成功了。

 

技术图片技术图片

 

开发xposed插件步骤

1.依赖xposed

compileOnly ‘de.robv.android.xposed:api:82‘
compileOnly ‘de.robv.android.xposed:api:82:sources‘

2.AndroidManifest.xml中application节点内配置meta-data

<meta-data
 android:name="xposedmodule"
 android:value="true" />
<meta-data
 android:name="xposeddescription"
 android:value="框架描述" />
<meta-data
 android:name="xposedminversion"
 android:value="82" />

3.assets文件夹中新建xposed_init文件并指定入口类(全类名)

4.编写Hook入口类代码

public class MainHook implements IXposedHookLoadPackage {
?
 @Override
 public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
  if (!lpparam.processName.equals("com.test.kwaidemo")) {
   return;
 }
  XposedHelpers.findAndHookMethod(
    "com.test.kwaidemo.MainActivity",
    lpparam.classLoader,
    "Login",
    String.class, String.class,
    new XC_MethodHook() {
     @Override
     protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
     
    }
?
     @Override
     protected void afterHookedMethod(MethodHookParam param) throws Throwable {
?
    }
   }
 );
 }
}

被Hook类代码如下

package com.test.kwaidemo;
public class MainActivity {
  private void Login(String username, String password) {
     // 具体的登录逻辑
  }
}

常用命令

XposedHelpers.findAndHookMethod()
XposedHelpers.findClassIfExists()
XposedHelpers.getObjectField()
XposedHelpers.setObjectField()

4. monitor

android/sdk/tools目录下,高版本jdk打开后会白屏卡死,需要低版本jdk

可以查看某个app的某个操作的方法调用链(只能在root设备上查看)。以模拟器为例,打开monitor之后,启动模拟器,如果侧边栏并没有显示进程可以使用以下命令重启adb。

adb kill-server && adb server

技术图片

 

抓取某个操作的方法

  1. 选中要抓取的进程名
  2. 点击上图上方箭头所指向的按钮
  3. 点击弹框的ok
  4. 操作app,比如进行一次点击
  5. 再次点击步骤2的按钮就会生成trace文件

技术图片

 

逆向工具的使用

标签:min   span   owa   操作   显示   stat   jar   params   assets   

原文地址:https://www.cnblogs.com/liunx1109/p/14685749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!