
移动APP安全
文章平均质量分 75
随着App移动应用的广泛应用及移动开发技术的飞速发展,移动应用的安全也越来越被重视。
多学点技术
不多学点技术,迟早要露馅儿!!!
展开
-
解决安卓7.0以后https抓不到包的问题
1、把代理证书放到系统证书根目录下安卓7.0以后,安卓不信任用户安装的证书,所以抓https时无法解码请求,对于第三方应用,需要将证书添加为系统证书,使用安卓手机添加证书。需如下:root手机安装openssl1、burp到导出证书2、计算导出证书的hash值openssl x509 -inform DER -subject_hash_old -in C:\Users\s\Desktop\burp.cer3、生成系统预设格式证书文件openssl x509 -inform D原创 2021-08-25 22:28:24 · 2469 阅读 · 1 评论 -
app抓不到包的几种原因
1 ssl pining(ssl证书验证)单向认证APP对服务端证书做校验 校验服务器的证书和域名。Fiddler/Charles等的证书肯定是校验不过的Charles安装配置:https://blog.youkuaiyun.com/Lu_GXin/article/details/105841312APP做ssl pining的几种方式:举例Python requests库对ssl的校验requests.get(url, timeout=1, verify=false)Python的几种网络请求方式原创 2021-02-15 11:32:38 · 3200 阅读 · 0 评论 -
【APP逆向小技巧】app逆向之如何定位关键代码
目录1 搜索大法2 栈跟踪法( 动态调试 / 函数调用流程 )1 搜索大法假设我们通过抓包得到的请求参数如下图所示通过多次抓包分析出请求参数中duid/tyc-hi/Authorization这三个是动态加密的参数,需要我们反编译app进行破解。使用jadx打开app进行反编译打开搜索框搜索加密参数定位关键代码字符串搜索tyc-hi/"tyc-hi,查看搜索结果;由上图所示,通过搜索tyc_hi进入到一个类似配置文件的类中,并且我们需要的加密参数赋值给不同的变量。那么站在开发者的原创 2020-12-20 13:36:32 · 2958 阅读 · 2 评论 -
实用frida进阶:内存漫游、hook anywhere、抓包
目录1 内存漫游1.1 获取基本信息1.2 提取内存信息1.3 内存堆搜索与执行1.4 启动activity或service2 Frida hook anywhere2.1 objection(内存漫游)2.2 objection(hook)2.3 ZenTracer(hook)3 Frida用于抓包3.1 推荐抓包环境3.2 Http(s)多场景分析3.3 SSL Pinning Bypass3.4 Socket多场景分析本章中我们进一步介绍,大家在学习和工作中使用Frida的实际场景,比如动态查转载 2020-12-19 13:05:38 · 1602 阅读 · 1 评论 -
【frida逆向开发】frida-rpc远程调用某安app方法获取token
目录一、使用fiddler对app进行抓包二、反编译app定位关键代码三、frida-rpc调用相关方法一、使用fiddler对app进行抓包通过抓包可以看到请求参数中X-App-Token: e8f1c71569a7166b6aa9723342923606edc38cb9-c72d-3bc4-8e82-6fd9212d77a00x5fdb0663每次请求都是变化的,这里需要反编译app进行进一步的分析。二、反编译app定位关键代码直接使用jadx反编译app并通过搜索相关参数定位相关代码原创 2020-12-17 17:29:30 · 8254 阅读 · 3 评论 -
【APP逆向】动态调试so库
文章目录一、IDA server安装1、把本地IDA server文件推送进手机目录2、进入手机shell3、修改权限运行server二、了解反调试策略三、反调试处理方法1、给app加上可调式权限2、检查flags中是否有应许debug项3、以调试模式启动APP APP此时会挂住4、以调试模式启动APP APP此时会挂住一、IDA server安装1、把本地IDA server文件推送进手机目录adb push android_server(cpu型号要对应 模拟器是x86) /data/loc原创 2020-11-25 16:52:51 · 1713 阅读 · 3 评论 -
【APP逆向】IDA静态调试so库
目录1、什么是NDK开发?2、java如何调用so库里面的方法/函数?3、.so文件里对应的securityCheck函数名称是?4、Java代码中调用的函数名与.so文件中的函数名不一致?5、System.loadLibrary()加载so文件流程?6、静态调试技巧1、什么是NDK开发?Android NDK:是Android NDK是一套允许您使用C或C++等语言,以原生代码实现部分应用的工具集,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk,用来做Nat原创 2020-11-23 12:05:36 · 1044 阅读 · 0 评论 -
【frida逆向开发】frida脱壳原理及脱壳工具使用
目录一、知识补充二、操作流程演示一、知识补充1、加固后的APP运行流程 1. -->APP启动 2. -->壳dex先加载起来 3. -->壳负责把源dex文件读出来 4. -->壳把源dex文件解密 5. -->把解密后的dex加载进内存 源dex运行起来 2、脱壳原理加固后的APP启动后最终源dex文件会被原创 2020-11-13 17:31:08 · 5574 阅读 · 2 评论 -
【frida逆向开发】盲打之定位signatrue加密方法
目录一、知识补充二、Hook前需要了解的三、Hook中出现的问题处理四、代码整合五、Hook所有加密类一、知识补充Hook Java层方法分类:自定义方法(开发时程序员自己写的,例如:对登录做校验的方法);Java基础类(安装Java自带的基础库)中相关方法 (例如:java.security.MessageDigest,这个是Java中自带的md5加密类,Hook这个类中加密方法update);Java第三方类库(Hook安装的第三方库中的方法,类似于python中的requests库中原创 2020-11-12 19:11:33 · 1408 阅读 · 0 评论 -
【frida逆向开发】如何Hook app启动阶段的方法
如何Hook app启动阶段的方法onCreate启动阶段即app没有完全启动起来。正常在hook一个app之前,要将app运行起来才可以进行hook,但是有些时候我们hook的方法是在app启动阶段执行的,该方法在启动阶段执行一次之后在不会执行。我们知道只有在该方法执行的时候才能hook到。那么现在两者冲突了正常hook要在app完全启动之后;该方法只在app启动阶段运行一次;例如:onCreate方法在app启动阶段首先执行该方法(画界面),且执行一次之后不会在执行。Hook脚本:原创 2020-11-11 21:55:54 · 6927 阅读 · 0 评论 -
【frida逆向开发】Hook应用软件Java层
目录一、目标app二、使用jadx反编译app分析关键代码1、分析需要hook的页面2、定位主界面加载类3、使用jadx分析定位到的加载类三、hook校验函数一、目标app对该app进行hook,实现用任意密码绕过认证。二、使用jadx反编译app分析关键代码注意:前提是app没有进行加固,如果有加固需要先进行脱壳1、分析需要hook的页面app一打开就进入上图的页面(主界面)2、定位主界面加载类使用apktool工具反编译app查看AndroidManifest.xml定位主原创 2020-11-11 14:28:11 · 753 阅读 · 0 评论 -
【APP逆向】了解加固基本原理-FDex2_1.1脱壳工具使用
目录一、加固后的APK包1)为什么要加固?2)加固方式?3)查看app是否被加固二、了解加固后的app启动流程三、FDex2_1.1脱壳工具使用一、加固后的APK包1)为什么要加固?一定程度保护源代码加壳又称加固技术为了加强Android保护强度,随着安全技术的发展,又出现了新型的“加固技术”。Dex加固是对Dex文件进行加壳防护,防止被静态反编译工具破解而泄露源码,整体加固技术的原理如上所示,包括替换application/classes.dex、解密/动态加载原classes.dex原创 2020-11-11 10:45:17 · 8336 阅读 · 2 评论 -
【APP逆向】frida安装配置
目录一、安装模块二、安装frida-server三、简单测试使用frida框架打印app版本和加载的所有类一、安装模块pip install frida # 安装很慢20分钟pip install frida-tools二、安装frida-server放在手机上执行 要注意手机CPU型号下载链接:https://github.com/frida/frida/releases/tag/14.0.8下载好后使用adb工具导入手机指定目录下/data/local/tmp/adb pus原创 2020-11-10 21:15:51 · 540 阅读 · 2 评论 -
【APP逆向】adb常用命令
查看连接设备adb devices 进入安卓设备底层操作系统adb -s 连接的设备名称 shell 给指定设备安装应用adb -s 127.0.0.1:62001 install C:\Users\v_mcsong\Desktop\douyin.apk 卸载用包名进入设备底层操作系统查看应用的包名>adb -s 127.0.0.1:62001 shellroot@shamu:/ # cd /data/appdrwxr-xr-x system system原创 2020-11-08 12:46:22 · 228 阅读 · 0 评论 -
【APP逆向】通过修改smali代码绕过签名校验
目录一、签名校验二、定位入口函数三、定位校验签名函数四、修改smali绕过签名校验五、重新打包/签名/安装检验一、签名校验签名验证,就是在APP中写入自己私钥的hash值,和一个获取当前签名中的私钥hash值的函数两个值相一致,那么就说明APP没有被改动允许APP运行。如果两值不一致那么说明APP是被二次打包的,APP就自我销毁进程。签名验证又可以在两个地方做,一个是在MainActivity.java的OnCreate函数中做,一个是在原生代码文件的JNI_OnLoad函数中做。在OnCrea原创 2020-11-06 16:09:57 · 2378 阅读 · 0 评论 -
【APP逆向】从反编译到打包签名
目录一、反编译二、回编译三、apk文件进行重新签名1、生成签名用的证书2、用证书对apk文件进行签名一、反编译apktool d banban.akp –only-main-classes报错1:E:\反编译工具包\apktool>apktool d C:\Users\v_mcsong\Desktop\banban.apkI: Baksmaling...I: Loading resource table...Exception in thread "main" brut.andr原创 2020-11-05 17:53:14 · 1503 阅读 · 1 评论