安卓逆向学习第一天笔记


>课1 安卓逆向学习-android 环境配置与常用工具介绍


1.简单介绍

android应用程序时采用JAVA语言开发的,完成源代码的开发后,首先将JAVA源码转换为字节码,然后通过DX工具,将字节码文件 转化为 .dex文件,最后 将 dex格式 的 文件 在 Dalvik虚拟机上运行。


2.配置 android环境

1)配置 JDK   下载版本 jdk1.7  或 jdk1.7
         https://www.52pojie.cn/thread-1016686-1-1.html/
2) 安装Android Stdio 
3) 安装 android SDK
4) 安装 android NDK
5) 安装 eclipse
6) 安卓模拟器
7) 调试使用的手机
8) Android killer

>课2 调试方法及smali文件结构

smali文件结构
1) 头文件

.class <访问权限修饰符> [非权限修饰符] <类名>
.super <父类名>
.source <源文件名称>

2)接口实现

#interfaces
.implements <接口名称>

3)类注释

#annotations
.annotation [注解的属性] <注解类名>
[注解字段=值]
...
.end annotation

4)变量定义

静态变量:
#static fields
.field <访问权限> static [修饰词] <字段名>:<变量类型>
普通变量:
#instance fields
.field <访问权限修饰符> [非权限修饰符] <变量名>:<变量类型>

5)方法描述

#direct methods/#virtual methods
.method <访问权限修饰符> [非访问权限修饰符] <方法原型>
  <.locals>
  [.parameter]
  [.prologue]
  [.line]
  <代码逻辑>
.end

参考网址 : https://blog.csdn.net/lixpjita39/article/details/75193833/

java 代码和 smali 代码一一对应

  1. 调试方法
    源代码修改
    一种老旧的调试方法, 使用 apktool 的 -d 选项
    1) java -jar apktool.jar d -d 目标.apk -o 结果存放目录
    2)修改 Android.mainfest 文件,在application节点中添加 android:debuggable=‘true’
    3)在入口点的类的 onCreat 方法中添加
    invoke-static{},Landroid/os/Debug;->waitForDebugger()V
    4)反编译修改过的apk文件
    java -jar apktool.jar b -d 代码目录 -o 目标.apk名字
    5)手动对apk文件进行签名
    java -jar signapk.jar testkey.x509.pem testkey.pk8 未签名apk名

    导入apk代码
    1)idea/androidStudio File -> open, 选择编译后的文件目录,导入代码
    在相应的位置 下断点
    2)设置远程调试选项
    Run-> Debug Configurations -> Remote Java Application,
    Host 填写为 localhost ,端口为 Debug ,开发端口 8700

    打开目标apk文件
    1)打开apk文件,知道看到wati for debugger提示

  2. 新版本调试方法及smali函数文件修改
    AndroidStudio/ idea + smaliidea 插件

    1)使用apktool/shakapktool 反编译 apk文件

    java -jar apktool.jar d apk文件 -o 反汇编目录
    或者 使用 android killer 反汇编代码

    1. AS/IDEA 中 导入 源码 ,
      3)远程调试选项
      Run -> Debug Configurations -> Remote java Application ,
      Host: localhost
      端口: 8700
      4)使用 adb 以 debug 方式 启动 apk
      adb shell am start -D -n packageName/ActivityName

    5)下好断点 debug
    6) 对关注的寄存器 添加watch!


>课3 JD-Gui 进行代码快速阅读分析

  1. Android Monitor
    AndroidSDK 中 提供 的一款全面监控android系统的应用 , 功能强大
  2. jd-Gui
    把 smail 文件自动 变化为 java代码的工具, 对于 小型的apk有用
  3. jeb
    大型的 smali代码反汇编工具 需要购买

动态调试中 根据 目录信息 找到 关键信息 之后 jeb 中查找字符串 找到关键位置;


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值