zoukankan      html  css  js  c++  java
  • 【移动安全基础篇】——01、新版本调试方法及Smali函数文件修改

    1. ShakaApktool 工具:比 Apktool 更加强大

    d -> 反编译
    b -> 回编译
    -df -> 使用默认框架
    -o -> 输出目录和文件名

    2. 新调试方法:AndroidStudio/idea + smaliIdea 插件

    (1)反编译 apk 文件

    (2)AS/Idea 中导入源码, File -> open Or Import project

    (3)安装好对应的 app 并打开 Android Device Monitor

    设置远程调试选项
    Run -> Debug Configurations -> Remote Java Application

    Host 填写为 localhost
    端口为 Debug 开放的端口 8700

    (4)使用 adb 以 debug 方式启动 apk
    Adb shell am start -D -n packageName/ActivityName

    (5)下定断点,开始 Debug 操作

    (6)对关注的寄存器添加 watch
    Ps:需要在 monitor 中打开 8700 端口

    动态调试得到注册码信息

    动态调试验证注册码,check 信息为 true

    Smali 代码与 Java 代码格式对照

    静态分析 onClick 函数中的操作

    静态分析出 getPasswordFromName 函数
    3. Smali 函数以及调用
    使用 p-v 寄存器

    .method 访问修饰符 函数名 函数签名
         .locals n #使用 n 个寄存器,即 v0~v(n-1)
         .param p1, “savedInstanceState” #Landroid/os/Bundle; #注释
         … #函数实现
         Return-xxx #返回
     .end method

    调用
    Invoke {参数}, 方法名
    参数都是通过寄存器传递的(Pn, Vn)

    4. Smali 文件修改

    (1)跳转修改;
    (2)添加 log;
    (3)手动调用类中的方法

    总会有不期而遇的温暖. 和生生不息的希望。
  • 相关阅读:
    Nightingale 加发邮件功能
    Centos7 系统进程解析
    Nightingale 夜莺监控系统 安装
    iptables:应用防火墙规则:ptables-restore: line xxx failed [失败]
    CAD2011卸载不干净 无法重装问题
    Make Globle HS 全局热备
    Swarm工具使用
    docker-registry构建私有的镜像仓库
    MySQL Replication
    javascript 设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/devi1/p/13486483.html
Copyright © 2011-2022 走看看