1. 壳检测工具 GDA

2. 逆向分析APP 一般流程

 1. 使用自动化检测工具检测APP是否加壳,或者借助一些反编译工具依靠经验判断是否加壳
2. 如果apk加壳,则需要先对apk进行脱壳
3. 使用`jeb`, `jadx`, `apktool`等反编译工具对apk进行反编译
4. 先依据静态分析得到的关键字符串、关键API调用快速定位到需要分析的函数和流程
5. 如果关键字符串或者关键API无法快速定位,则apk可能使用了字符串加密、反射调用等手段;此时可以使用hook或动态调试等手段
6. 定位到关键函数后,再跟进是java实现还是JNI实现进一步做分析,其中so中的函数逻辑分析难度较大

3. JAVA 的双亲委派模型原理及作用

原理:

  1. Bootstrap ClassLoader(引导类加载器)

    C/C++ 实现的加载器,用于加载JDK的核心类库,比如: java.lang、java.util

    等系统类。JAVA虚拟机启动就是通过Bootstrap ClassLoader;在JAVA里无法获取该类和对象,负责加载/lib下的类
  2. Extention ClassLoader (拓展类加载器)

    JAVA 实现的加载器,提供了除了系统类之外的额外功能,可以在java里获取,负责加载/lib/ext下的类
  3. Application ClassLoader (应用程序类加载器)

    JAVA 实现的加载器,开发人员写的代码默认就是由它来加载,ClassLoader.getSystemClassLoader返回的就是它

双亲委派模型:

当一个加载器要加载一个类时,会向上让父类去加载该类,该类加载不了,再向下加载,都加载不了,则该加载器加载

加载器加载类的顺序

Boostrap -> Extension -> Application -> 自定义的类加载器

作用:

  1. 避免重复加载,如果一个类被加载过了,则直接读取该记载的class
  2. 更加安全,无法通过自定义的类来替代系统的类,防止核心API库被随意篡改

android 逆向笔记的更多相关文章

  1. Android逆向笔记之AndroidKiller与Android Studio的使用

    https://blog.csdn.net/a_1054280044/article/details/60465267 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...

  2. 【转】Android逆向入门流程

    原文:https://www.jianshu.com/p/71fb7ccc05ff 0.写在前面 本文是笔者自学笔记,以破解某目标apk的方式进行学习,中间辅以原理性知识,方便面试需求. 参考文章的原 ...

  3. 2021年正确的Android逆向开发学习之路

    2021年正确的Android逆向开发学习之路 说明 文章首发于HURUWO的博客小站,本平台做同步备份发布.如有浏览或访问异常或者相关疑问可前往原博客下评论浏览. 原文链接 2021年正确的Andr ...

  4. android 应用笔记

    android 应用笔记 android 应用笔记 小书匠 Android 综合教程 Android常用技巧 安卓系统架构 安卓源码开发 安卓驱动 Linux内核 安卓应用开发 Java 教程 tic ...

  5. [转]Android逆向之动态调试总结

    一.在SO中关键函数上下断点 刚学逆向调试时.大多都满足于在SO中某关键函数上下断点.然后通过操作应用程序,去触发这个断点,然后进行调试 详细的步骤可以参见非虫大大的<Android软件安全与逆 ...

  6. android逆向学习小结--CrackMe_1

    断断续续的总算的把android开发和逆向的这两本书看完了,虽然没有java,和android开发的基础,但总体感觉起来还是比较能接收的,毕竟都是触类旁通的.当然要深入的话还需要对这门语言的细节特性和 ...

  7. Android 学习笔记之Volley(七)实现Json数据加载和解析...

    学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

  8. Android开发笔记:打包数据库

    对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...

  9. Android学习笔记进阶之在图片上涂鸦(能清屏)

    Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...

  10. android学习笔记36——使用原始XML文件

    XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...

随机推荐

  1. [转帖]MinIO Client(mc)完全指南

    https://www.cnblogs.com/lvzhenjiang/p/14944821.html 目录 一.获取MinIO Client(mc) 1.1 docker版 1.2 Homebrew ...

  2. [转帖]Linux设备与内存单位-扇区、块、段、页(sector、block、segment、page)

    每个概念是对不同的对象而言的,但它们有一定的联系 这些概念的分析背景是Linux下的内存页和磁盘结构 扇区 是硬盘等存储设备传送单位,大小一般为512B 块 是VFS和文件系统的传送单位(所以相关设备 ...

  3. [转帖]shell删除文件前几行或后几行

    https://www.cnblogs.com/1394htw/p/14852207.html shell删除文件前几行或后几行 #!/bin/bash #删除前两行 sed -i '1,2d' fi ...

  4. [转帖]银河麒麟服务器操作系统V10SP1-x86_64系统环境下部署aarch64虚拟机

    文章目录 主机系统环境 搭建aarch64虚拟机环境 ①安装"虚拟系统管理器" ②编译安装Qemu for Aarch64 ③获取aarch64架构的qcow2镜像 ④使用qcow ...

  5. 慢SQL的致胜法宝

    大促备战,最大的隐患项之一就是慢SQL,对于服务平稳运行带来的破坏性最大,也是日常工作中经常带来整个应用抖动的最大隐患,在日常开发中如何避免出现慢SQL,出现了慢SQL应该按照什么思路去解决是我们必须 ...

  6. vue中$once的使用

    $once 可以给组件实例绑定一个自定义事件,但该事件只能被触发一次,触发之后随即被移除 $once的简单使用 <template> <div> <button @cli ...

  7. element-ui表格排序

    <el-table :data="TableAwitDoArr" style="width: 100%"> <el-table-column ...

  8. 【笔记】学到几个 golang 代码小技巧

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 从这篇文章学到:10个令人惊叹的Go语言技巧,让你的代码更 ...

  9. 微信小程序-behaviors

    什么是 behaviors behaviors 是用于组件间代码共享的特性,类似于一些编程语言中的 "mixins" 每个 behavior 可以包含一组属性,数据,生命周期函数和 ...

  10. Paddlenlp之UIE模型实战实体抽取任务【打车数据、快递单】

    项目连接:可以直接fork使用 Paddlenlp之UIE模型实战实体抽取任务[打车数据.快递单] 0.背景介绍 本项目将演示如何通过小样本样本进行模型微调,快速且准确抽取快递单中的目的地.出发地.时 ...