
安卓逆向
文章平均质量分 94
开始从零学习安卓逆向的相关知识,用这个专栏作为记录,感兴趣的小伙伴可以一起探讨
鬼手56
代码搞起来还是很轻松的,就是头有点冷
展开
-
Android之Frida框架完全使用指南
文章目录Frida简介环境搭建python安装与虚拟环境配置Frida安装配置代码提示Server环境配置Frida Hook执行HOOKJava层hookHook普通方法重载方法构造方法修改类字段hook内部类和匿名类枚举所有类和方法hook动态加载的DexClassNative层hookhook有导出函数hook无导出函数Frida简介Frida是一款基于Python + JavaScript 的hook框架,本质是一种动态插桩技术。可以用于Android、Windows、iOS等各大平台,其执行脚原创 2021-10-20 22:00:46 · 18289 阅读 · 16 评论 -
Android之Xposed框架完全使用指南
文章目录Xposed环境搭建Xposed简介Xposed原理Xposed的安装Xposed插件开发Xposed插件编写流程Xposed开发之Hook构造函数相关API无参构造函数的hook有参构造函数的hook实际效果Xposed开发之修改属性相关API修改静态字段和成员字段实际效果Xposed开发之hook一般函数相关APIhook一般函数实际效果Xposed开发之主动调用函数相关API调用静态函数调用成员函数实际效果Xposed开发之加壳APP处理实际效果Xposed指纹检测Xposed环境搭建Xp原创 2021-10-17 19:41:22 · 16963 阅读 · 0 评论 -
020 Android之so文件动态调试
文章目录ELF文件格式查看工具so文件加载时的函数执行顺序so文件动态调试so文件调试技巧使用ida动态调试的那些坑进程显示不全illegal segment bitnessmore than one special register presentadb安装强制应用App以32位运行ELF文件格式查看工具和PE文件类似,比PE文件简单,我们可以用NDK中提供的一个工具readelf去查看ELF文件主要表信息目录:D:\Android\sdk\ndk-bundle\toolchains\x86-4.原创 2021-10-02 21:12:21 · 2518 阅读 · 1 评论 -
019 Android加固之APK加固的原理和实现
文章目录前言加载Activity遇到的问题APK的启动过程替换ClassLoader流程获取ActivityThread类对象获取AppBindData类对象mBoundApplication获取LoadedApk类对象info获取info对象中的ClassLoader设计傀儡dex文件手工加固APK代码实现APK加固实现步骤总结前言动态加载dex之后,我们会想说,能不能将整个程序的dex都进行动态加载。如果将加载的dex事先加密,加载前解密,这样就完成了对程序完整的解密了。但这里面遇到一个问题,那就是原创 2021-10-01 17:29:55 · 1872 阅读 · 0 评论 -
018 Android加固之实现dex加载器
文章目录Android APK加固-安全人员角度关于类加载器类加载器类加载器的种类和个数创建类加载实例类加载器DexClassLoader和PathClassLoader使用类加载器动态加载dex文件制作dex文件动态加载dex文件完整步骤回顾Android APK加固-安全人员角度Android安全人员对APK加固采取的角度大概分为以下几个方面:将可执行代码dex文件加密,能够动态解密并执行能够检测当前状态是被调试,想尽一切办法反调试那如果继续再细分一下,实现一个初级的APK加固:使用类原创 2021-08-07 21:32:08 · 1794 阅读 · 0 评论 -
017 Android加固之APK混淆和保护方式
文章目录APK加固介绍使用proguard对apk中的源码进行混淆proguard原理对APK反编译之后的smali进行混淆代码乱序原理乱序实例-Hello对APK中的字符串进行加密解决方案1-StringBuilder拼接解决方案2-编码混淆解决方案3-加密处理小结对APK中的文件进行校验对APK中的Dex文件进行校验对APK中的APK进行校验对APK中的签名进行校验小结APK加固介绍Android应用程序使用的开发语言是JAVA,由于采用的是这种解释型语言,所以代码可以被反编译。如果没有经过混淆或是原创 2021-07-22 21:04:26 · 2646 阅读 · 5 评论 -
016 Android之NDK开发
文章目录NDK入门指南下载NDK和工具NDK工程说明JNI数据类型JNI中的描述符JNI基本使用JAVA代码调用C++代码C++代码调用JAVA代码C++代码修改JAVA字段动态注册NDK入门指南原生开发套件(NDK)是一套工具,能够在Android应用中使用C和C++代码,并提供众多平台库,可以使用这些平台库管理原生Activity和访问物理设备组件。与NDK密切相关的另一个词汇则是JNI,它是NDK开发中的枢纽,Java与底层交互大多数通过它来完成。JNI: Java Native Interf原创 2021-07-07 15:02:54 · 553 阅读 · 3 评论 -
015 Android之可执行文件dex
文章目录从一个hello world开始Dex文件结构文件头各种数据的数组字符串表类型表原型表字段表方法表类数据手工解析Smali代码从一个hello world开始smali代码和dex之间有着千丝万缕的联系,先从一个最简单的dex文件hello world开始,学习整个dex文件的结构.class public LHelloWorld;.super Ljava/lang/Object;.method public static main([Ljava/lang/String;)V .原创 2021-07-07 14:55:53 · 1324 阅读 · 2 评论 -
014 Android之Cydia与Xposed框架入门
文章目录Android Hook框架介绍Cydia Substrate插件编写步骤实例:编写Cydia修改系统字体颜色Xposed插件编写步骤实例:Hook获取手机序列号准备工作获取hook所需要的数据编写hook代码效果测试Android Hook框架介绍Android中比较经典的Hook框架有两个Cydia Substrate,闭源,从苹果开始到Androidxposed,开源,从Android开始到苹果Cydia Substrate插件编写步骤Cydia Substrate插件编写的原创 2021-06-25 10:59:20 · 794 阅读 · 0 评论 -
013 Android锁机病毒分析
文章目录免流服务器-锁机病毒分析秒抢红包-锁机病毒分析免流服务器-锁机病毒分析首先来分析这个免流服务器的锁机病毒,文件信息如下文件: 免流服务器.apk大小: 799835 bytes修改时间: 2016年3月 16日, 23:26:10MD5: 2EFCA46F34A565C2EF4052B89B6B364BSHA1: 5493A958A592BB0B19C43ACB2C1F52C898885207CRC32: 7F89A927安装以后点击安装核心按钮这里在请求root权限,点击原创 2021-06-25 10:44:30 · 3292 阅读 · 1 评论 -
012 动态调试smali代码
文章目录前言配置调试插件调试插件的使用总结常见问题前言之前分析游戏进行破解的时候,都是通过字符串和日志的方式来对程序进行静态分析。但是在遇到算法类型的程序时,这种方法就显得效率特别低,所以就需要对代码进行动态调试。配置调试插件使用Android Studio可以动态调试Smali代码,需要用到一个插件smalidea-0.05.zip打开插件选项点击Install plugin from disk找到插件目录,点击确定,然后重启IDE调试插件的使用将apk导入到Android Ki原创 2021-06-16 12:24:10 · 713 阅读 · 1 评论 -
《全民捕鱼》游戏分析
文章目录分析环境逆向分析日志分析法字符串分析法去除弹窗添加个人信息的破解总结分析环境系统:Android 4.4工具:Windows 10 64bit 夜神模拟器 Android Killer游戏:全民捕鱼V1.7文件: fkby.apk大小: 14450756 bytes修改时间: 2016年3月 11日, 14:53:34MD5: C67C9D8DB091BE205457B1C6B9BC1352SHA1: 0FD4027602C2628568E52806603BA1FC95EBE90原创 2021-06-16 12:15:13 · 2386 阅读 · 0 评论 -
011 smali语法详解
文章目录smali文件解读描述类信息静态字段实例字段直接方法虚方法接口Smali基础语法寄存器数据类型字段和方法的表示Smali指令集空操作指令数据操作指令返回指令数据定义指令跳转指令方法调用指令smali文件解读描述类信息在打开Smali文件时,它的头三行描述了当前类的一些信息:.class public Lcom/test/helloworld16/MainActivity;.super Landroid/support/v7/app/AppCompatActivity;.source "M原创 2021-06-16 12:00:59 · 10110 阅读 · 1 评论 -
010 Android之逆向入门
文章目录Android APK文件结构META-INFresAndroidManifest.xmlclasses.dexresources.arsclibAssetsAndroid APK的入口函数SDK工具adbmonitorAndriod逆向工具AXMLPrinter2.jar->Manifest.xml清单文件解密工具Dex文件反汇编 汇编工具apk签名工具apk反编译工具->apktoolDex2jar工具(转换文件格式)jd-guiAndroidKillerAndroid APK文件原创 2021-06-16 11:29:08 · 990 阅读 · 0 评论 -
009 Android之ContentProvider
文章目录Android文件权限简述ContentProvider 内容提供者ContentResolverURI什么是URIURI示例URI和URLContentProvider实例ContentProvider实例1ContentProvider实例2Android文件权限简述关于Android中关于文件权限的具体解释drwxrwx-x第一位:-表示文件,d表示文件夹,l表示连接二三四:所有者权限,即程序本身访问文件或目录的权限五六七:所在群组的权限八九十:其他用户权限r表示读权限,w表原创 2021-06-16 11:16:48 · 530 阅读 · 0 评论 -
008 Android之Service
文章目录服务概述服务的两种启动方式服务的生命周期startServicestartService实例1startService实例---电话监听器startService实例---计时器bindServicebindService实例---本地人员查询系统服务概述服务Serivce是Android系统中4大组件之一,有以下特点后台运行没有界面服务无法自己启动单例模式(一个服务在系统中只能启动一次)基本使用步骤:继承自Service在清单文件中使用节点配置启动服务服务的两种启动方原创 2021-06-16 11:12:24 · 268 阅读 · 0 评论 -
007 Android之Broadcast Receiver
文章目录广播的概念广播的类型广播接收实例IP拨号器开机自启动监听应用安装和卸载广播的概念现实中的广播:电视台发送广播,使用收听机可以收听广播,得到广播信息Android中的广播:系统会产生很多事件,比如 电量不足 收发短信 拨打电话Android中的收音机:Broadcast Receiver 广播接收器广播接收器类似Windows下的消息钩子广播的类型无序广播:与Intent匹配的广播接收者都可以收到该广播,并且是没有先后顺序之分(同时收到)广播接收者无法使用setResult系列原创 2021-06-16 11:05:44 · 350 阅读 · 1 评论 -
006 Android之Activity
文章目录四大组件之ActivityActivety概述Activity的响应事件Activity之间的数据传递数据传递实例Activity的生命周期Activity声明周期总结Activity的任务栈Activity的启动模式默认启动模式 standard栈顶复用模式 singleTop栈内复用模式 singleTask全局唯一模式 singleInstance四大组件之纽带IntentIntent概述Intent对象的组成Intent过滤器(Intent Filter)Intent对象的解析四大组件之A原创 2021-06-07 10:35:11 · 542 阅读 · 2 评论 -
005 Android之数据存储
文章目录Android文件系统Android文件的访问权限文件访问权限实例数据存储方式内部存储内部存储实例外部存储Shared PreferencesShared Preferences实例sqlite数据库sqlite概述Android中访问Sqlite数据库的类SQLiteOpenHelper类的使用SQLiteDatabase的使用Android文件系统在Android中,每一个应用都是一个独立的用户。文件或者文件夹的权限使用10个字母来表示第一个字母:d表示文件夹-表示文件第一组rw原创 2021-06-07 10:31:13 · 380 阅读 · 0 评论 -
004 Android之其他控件
文章目录ListViewListView常用属性ListView基本使用ListView动态插入数据ListView实现图文混排AdapterAdapter(适配器种类)自定义Adapter的使用Spinner下拉列表AutoCompleteTextView自动补全ListViewListView常用属性属性说明divider设置分割线的颜色dividerHeight设置分割线的高度Scrollbars设置滚动条的显示或者隐藏Fadescrollbars设原创 2021-06-07 10:18:19 · 382 阅读 · 0 评论 -
003 Android之线性布局与基础控件
文章目录Android快速入门三步布局介绍LinearLayout布局属性代码示例基础控件TextView和EditText使用TextView与EditTextImageViewImageView属性使用ImageViewButton与ImageButtonButton与ImageButton的使用RadioButton和CheckBox四种按钮响应方式onClick事件监听事件实现方式-内部类实现接口监听事件实现方式-匿名内部类方式监听事件实现方式-外部类方式电话本小例子界面设计完成打电话功能完成短信发原创 2021-06-07 10:14:37 · 1091 阅读 · 0 评论 -
002 Android之helloworld工程详解
文章目录安卓开发环境Android SDKadb创建第一个hello world工程hello world工程详解manifests清单文件java源码res资源安卓文件目录总结安卓开发环境Android SDKSDK中包含Android开发的编译环境build-tools:编译工具docs:文档sources:源码system-images:系统镜像platfrom-tools:平台工具adb工具:android debug brige 安卓调试桥(D:\Android\sdk\pl原创 2021-06-07 10:08:39 · 1017 阅读 · 5 评论 -
001 JAVA基础
文章目录JAVA环境搭建JAVA基础语法数据类型JAVA数据类型基本数据类型大小基本数据类型包装类自动类型转换强制类型转换常量控制台的输入---Scanner的使用数组如何使用数组数组的遍历JAVA面向对象类与对象如何定义JAVA中的类JAVA中的构造方法多态引用多态方法多态多态中的引用类型转换JAVA中的接口声明接口使用接口JAVA异常什么是异常异常的分类Throwable类的子类常用异常类异常示例捕获异常JAVA环境搭建下载JDK并添加环境变量添加环境变量JAVA_HOME(JDK的安装目录)原创 2021-06-07 09:59:48 · 685 阅读 · 1 评论