
安卓逆向
以安卓逆向为方向
nini_boom
很简单,做top of top。
安全不是IT服务的附属,是主人。IT服务依赖的是人,而安全威胁的不是软件、系统而是人、集团甚至是国家的数据。
展开
-
加壳原理
一、APP启动流程(结合源码分析)当我们点击APP图标,到APP运行启动,中间经历了怎样的过程?可以用一张图来概括:首先启动Activity/Service,(Activity、Service是什么?四大组件:Activity、Service、BroadCast Recevicer、Content provider),通知system_server进程,然后以Binder的方式通知Zygote进程,最终进入ActivityThread.main(),开始进入APP世界的大门。我们打开http://原创 2020-11-27 13:08:08 · 1405 阅读 · 0 评论 -
加壳与类加载器
全面了解类加载器的分类、作用以及源码分析,了解双亲委派机制,动态加载第三方dex的函数。类加载器的分类及作用1、类加载器的种类JVM的类加载器包括3种:Bootstrap ClassLoader(引导类加载器)C/C++代码实现的加载器,用于加载指定的JDK的核心类库,比如java.lang、java.uti等这些系统类。Java虚拟机的启动就是通过Bootstrap,该Classloader在java里无法获取,用于加载lib下的类。Extensions ClassLoader(.原创 2020-11-25 16:38:00 · 407 阅读 · 0 评论 -
FART脱壳机制作
几乎所有在APP应用平台的软件,都有壳,若想进一步逆向,查看APP的代码、加解密函数、或者逆向协议,第一步都是要脱壳,脱壳的重要性不言而喻。FBI Warnning感谢寒冰、r0ysue大佬,大佬们的gayhub和个人主页在片尾。原材料谷歌亲儿子手机一部,pixel或者nexus任何版本都阔以,系统Android8.10寒冰巨佬的fart文章,深入理解脱壳原理r0ysue姐编译好的fart rom镜像,请放心食用。过程首先根据手机下载对应的rom包。链接:https://pan.b.原创 2020-11-25 12:14:49 · 8432 阅读 · 4 评论 -
Android系统应用的抓包与防护
最近对抓包这块比较感兴趣,在被问到抓包时的一些问题:证书、单向认证、双向认证怎么处理,以及绕过背后的原理时,一时很难说清个大概,于是整理了下思绪,将这些知识进行总结和整理,末尾再对一个APP进行实战抓包。一、单向认证与双向认证先熟悉几个概念:对称加密与非对称加密对称加密:加密和解密使用同一个秘钥。加密和解密速度很快,常见的如AES。非对称加密:加密和解密使用不同秘钥,这两个秘钥成双成对,叫做公钥和秘钥。数据使用公钥加密后,使用私钥进行解密,使用私钥加密,那就用公钥解密。一般是把公钥给别人,.原创 2020-08-18 16:13:43 · 1170 阅读 · 1 评论 -
将多个脱壳后的dex合并
方法:命名为classes.dex classes2.dex classes3.dex和meta-inf一起压缩成.zip改名为.apk,拖进jeb3。脚本原创 2020-08-16 13:53:26 · 7420 阅读 · 1 评论 -
Drozer的基本使用
之前做APP测试时使用了Drozer,感觉很好用,但是后来一直没有时间整理。在我逐渐对Drozer加深了熟悉才发现,Drozer不仅仅是一个工具,它更像一个综合性渗透测试的框架。在单机情况下,测试单个APP漏洞很好用,在渗透中,也可以当做服务器多个代理的形式,对局域网或者互联网所有的移动端代理进行渗透,对移动端进一步攻击提权。一、安装安装这块,我强烈推荐直接看官网文档安装,英文看起来费劲不要紧,可以使用各类翻译软件。因为在我安装的过程当中,看了别人的博客,不太详细,导致遇到了不少坑。官网的文档最全.原创 2020-05-12 17:26:18 · 1680 阅读 · 0 评论 -
一次有关算法的安卓CTF
某年的CTF大赛题目总结:遇到算法别头大,耐心、细心,让自己静下来。点开之后长这样子,随便输入几个字符,提示错误。查壳发现没有壳。直接使用Jeb进行反编译。看出来了,突破口是this.b.check()这个函数。package ctf.bobbydylan;import android.content.Context;import android.content.Inte...原创 2020-04-24 14:54:19 · 908 阅读 · 0 评论 -
FART:ART环境下基于主动调用的自动化脱壳方案
这是我通读FART的笔记,将FART的原理用自己的理解记录下来的一篇文章。问题一:为了解决后续应用在加载执行解密后的dex文件中的Class和Method的问题,接下来就是通过利用java的反射修复一系列的变量。其中最为重要的一个变量就是应用运行中的Classloader,只有Classloader被修正后,应用才能够正常的加载并调用dex中的类和方法,否则的话由于Classloader的...原创 2020-04-20 16:03:42 · 1964 阅读 · 0 评论 -
某视频APP的脱壳、hook逆向
看了0x指纹大佬的文章,于是跃跃欲试,但是在自己动手过程中发现了很多问题,也学到了很多,以我的视角写出的这篇文章,如果想了解0x指纹大佬的破解过程,请转至这里。前言这看似是一个比较正常的视频软件,也都可以看得到,但是出现了不太和谐的东西,点开之后都是需要花钱才能观看的内容。脱壳查壳,是某数字的,就不单独说了。这里使用frida-unpack进行脱壳。用法在READM.md中...原创 2020-07-18 14:44:08 · 1988 阅读 · 0 评论 -
使用xserver对某应用进行不脱壳抓加密包
在移动APP渗透的技术分享中,现在很多APP都是经过第三方加固、加壳,如何在高防御环境下进行APP渗透呢?以xserver工具为例,我走了一些弯路,在这里记录下来。还有,感谢刘辉同学的帮助。一、测试对象某高速通,经过360加固,抓包无法抓到明文,数据基本都是加密的。像这样无法知道明文,是没有办法进行数据的查看、修改的。所以我们后续的渗透需要知道数据的加密和解密点在哪里。二、xse...原创 2020-02-19 22:11:30 · 5336 阅读 · 12 评论 -
使用IDA对ipa进行反编译
将ipa文件后缀改成.zip,并解压显示包内容,找到exec可执行文件,将其拖入64位IDA,按F5,可将文件编译成类C代码。这说明ipa是可以进行反编译查看逻辑的。...原创 2020-02-08 14:58:31 · 9195 阅读 · 0 评论 -
DEX文件结构
贴上Opcodeenum Opcode { // BEGIN(libdex-opcode-enum); GENERATED AUTOMATICALLY BY opcode-gen OP_NOP = 0x00, OP_MOVE = 0x01, OP_MOVE_FROM1...原创 2020-02-05 16:35:24 · 1082 阅读 · 0 评论 -
逆向基础-------常见的Android文件格式
记笔记,写总结的意义就在于,它们是你掌控这些知识的证明,即使有一天你记不住它们了,但是一翻笔记,知识又能很快回到你脑子里。一、库文件1.1 jar包包含一系列class文件的压缩包,class文件是经过编译后的Java代码集合。也叫"jar包"。问题:java=>classjava=>dex?部分对安全性有要求的jar,会对class文件进行签名,签名信息保存在jar...原创 2020-02-04 12:05:44 · 868 阅读 · 0 评论 -
逆向基础------smali语法学习
.class public LHelloWorld;.super Ljava/lang/Object;#这个V是干啥的,函数返回类型,V代表void、Z代表boolean、B代表byte、#S代表short、C代表char、I代表int、J代表long、F代表float、D代表double、F代表float、L代表java类型#[代表数据类型.method public static m...原创 2020-02-03 14:52:11 · 355 阅读 · 0 评论 -
逆向基础------Dalvik可执行格式
知道学的是啥,有啥用,在平时生活中扮演什么角色时,就会主动想去学了。虽然Android系统采用Java语言来开发应用程序,但Android程序却不是运行在传统的Java虚拟机上的。可能为了解决与Oracle版本问题,或者是Java虚拟机在设备上卡顿问题,Google对Android系统设计了专属的虚拟机,从Android4.4开始引入了ART(Android RunTime)虚拟机,将由J...原创 2020-01-29 11:13:05 · 679 阅读 · 0 评论