![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android安全逆向知识
Android安全逆向知识
一条不更新的懒狗
个人网站 https://www.huruwo.top/ HRUWO的安卓安全CTF,Python编程相关知识分享站 手机爬虫网页爬虫等资料
展开
-
完美解决国内仓库repo init和repo sync
repo init因为每次repo sync都要先repo init同步远程仓库信息,因此被墙了每次都会失败。-u 选择镜像地址repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest是清华提供的镜像源repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest是中国科学技术大学的镜像源用了镜像还是失败原因就是你不是首次的init 之前的init可能用了原创 2021-11-07 13:52:40 · 4428 阅读 · 0 评论 -
完美的失败方案让 repo init 安卓源码仓库恢复到最初状态
repo sync -d报错The program 'repo' can be found in the following packages: * phablet-tools * repoTry: sudo apt install <selected package>安装reposudo apt install repo没有repo initerror: command 'sync' requires repo to be installed first.原创 2021-11-07 13:52:08 · 3874 阅读 · 0 评论 -
ubuntu虚拟机出现/etc/ssl/certs/ca-certificates.crt CRLfile: none 错误
export GIT_SSL_NO_VERIFY=1 repo initsudo curl -k https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o reposudo chmod +x repohttps://mirrors.tuna.tsinghua.edu.cn/help/AOSP/curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/reporepo init原创 2021-11-07 13:49:45 · 867 阅读 · 0 评论 -
IDA使用手册_(1)
1.快捷方式Shift+F12: 快速查看so文件中的字符串信息,分析过程中通过一些关键字符串能够迅速定位到关键函数;F5: 可以将ARM指令转化为可读的C代码,同时可以使用Y键,对JNIEnv指针做一个类型转换,从而对JNI里经常使用的JNIEnv方法能够识别;Ctrl + S: 有两个用途,在IDA View页面中可以查看文件so文件的所有段信息,在调试页面可以查看程序中所有so文件映射到内存的基地址。tips:在进行so调试过程中,很有用的一个小技巧就是IDA双开,一个用于进行静态分析;一个用于原创 2021-10-30 18:28:25 · 944 阅读 · 0 评论 -
逆向开发技术栈通_逆向方向
岗位要求:1、熟悉HTTP、TCP等网络协议及数据抓包、分析;2、熟悉Android程序apk以及so的逆向分析流程;擅长安卓逆向,熟悉静态与动态的分析方法;3、精通C/C++、JAVA编程,精通汇编语言;4、精通软件逆向工程、加密解密知识、各种软件逆向工程开发工具的使用; 熟悉软件逆向分析流程,能够独立完成软件逆向工作;5、熟练掌握各种调试工具:Smali、Dedexer、Dexdump、Apktool、Dex2jar、IDA、OLLYDBG其中一种或多种;6、熟悉Android底层运行机制。原创 2021-10-30 18:23:19 · 189 阅读 · 0 评论 -
Xposed对抗带壳APK
if (loadPackageParam.packageName.equals("xxx.xxx.xxx")) { XposedBridge.log(" has Hooked!"); XposedBridge.log("inner => " + loadPackageParam.processName); Class ActivityThread = XposedHelpers.findClass("android.app.A.原创 2021-10-30 18:22:48 · 136 阅读 · 0 评论 -
再谈Android抓包工具与Android抓包思路
前言数据分析 逆向的开端往往从数据拦截开始,无论是数据抓取还是参数计算。第一步就是数据拦截人,如果没有这一层估计也就无法下手了。联系到之前的闲鱼数据抓取和闲鱼数据采集系统的搭建过程。有不少朋友联系我怎么抓不到闲鱼的数据包啊。我觉得有必要分享下一些我自己常用的数据包抓取工具吧。鉴于整个闲鱼数据采集/爬虫系统还在搭建过程中,这篇算是插入内容。和之前的文章分开发表,不算在系列里面。常用的抓包工具分析介绍下我用过的也就是市面上常用的一些抓包工具,并分享其特点。1.anyproxy阿里 开源的 可以二原创 2021-10-29 17:12:55 · 1090 阅读 · 0 评论 -
Android持久化原理与应用
xxxx为什么要持久化如何持久化利用持久化完成换机为什么要持久化避免频繁的登录认证 只需要一次认证即可在一段时间里继续保持登录状态如何持久化持久化的核心就是保存一个认证信息字段在手机,保存的形式可以是cookie sql储存 sp文件1.保存cookie web端用的比较多 okhttp也有自带的cookie机制2.保存密码 账号 直接再次请求 必不可能3.保存token 比较常用 重点讲这种用户信息、设备ID等信息以保证用户的唯一性。服务端并对token设置一定的期限。服务端把生成的to原创 2021-10-27 14:02:22 · 101 阅读 · 0 评论 -
NDK安全开发笔记--请求参数加密
前言为了防止接口被滥用 通常需要对请求添加特别的参数。这样在请求时遇到不对的可以直接忽略,防止数据抓取。对应加密算法的选择,通常有AES MD5等。其中的细节和不同单独开一篇密码学知识。本次加密采取MD5加密java层新建native方法即可,传入需要加密的字符串public native String encryptMD5(String str);load sostatic { System.loadLibrary("native-lib-1"); }原创 2021-10-25 14:49:50 · 227 阅读 · 0 评论 -
js安全与逆向学习笔记1_实战空中网
逆向目标网站地址http://www.kongzhong.com/逆向功能->登录验证https://passport.kongzhong.com/login?backurl=http://www.kongzhong.com[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xf8kWLEW-1635144476220)(en-resource://database/675:1)]加密参数分析fiddler抓包GET https://sso.kongzhon原创 2021-10-25 14:48:09 · 318 阅读 · 0 评论 -
vegas视频软件使用教程和笔记
1.拖入素材即可导入2.在vegas里调音时按ctrl+shift+I,可以显示已调的音高数3.空格播放和暂停素材4.S切分素材5.delete删除选择的部分6.滚轮放大缩小尺度刻度7.视频素材 按住右键拖动 选择一段素材8.按住ctrl 拖动素材尾端 改变长度 可以调节播放速度9.调音对轨操作 一段一段看 把词填进去 比如一个嘟嘟嘟的音乐 填进去的鬼畜就是在每个嘟嘟嘟里面写一个fa即可10.音频右键 规格话 放大音量调节音频高低 加shift半个音...原创 2021-10-25 14:46:41 · 1735 阅读 · 0 评论 -
最新 lineageos 编译过程 详细过程
sudo apt-get updatehttps://github.com/MiCode/Xiaomi_Kernel_OpenSourcerepo init -u https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android.git -b cm-14.1 --repo-url=https://gerrit-googlesource.lug.ustc.edu.cn/git-repo14.1 可以https://www.free原创 2021-10-25 14:44:20 · 1218 阅读 · 0 评论 -
Android Hook原理分析--Xposed hook 原理分析
hook寓意为钩子,在编程中寓意拦截替换。整体逻辑就是将执行的方法拦截执行替换之后再执行回去,各大框架原理不同但是过程类似。XposedXposed框架核心思想在于将Java层普通函数注册成本地JNI方法,以此来变相实现hook机制Xposed在对java方法进行hook时,先将虚拟机里面这个方法的Method改为nativeMethod(其实就是一个标识字段),然后将该方法的nativeFunc指向自己实现的一个native方法,这样方法在调用时,就会调用到这个native方法,接管了控制权。在这原创 2021-10-22 10:36:05 · 631 阅读 · 0 评论 -
Android Hook原理分析--Frida hook 原理分析
java层 hookfrida-java采用常见的Dalvik Hook方案,将待hook的java函数修改为native函数,当调用该函数时,会执行自定义的native函数。但是和其他hook框架不同的是,使用frida时,我们hook的代码是js实现的,所以有一个基于js代码生成native函数过程。具体hook实现代码如下:so层 hook参考文章https://bbs.pediy.com/thread-229215.htm...原创 2021-10-22 10:35:26 · 2032 阅读 · 0 评论 -
Smali基础知识
https://blog.csdn.net/yuanguozhengjust/article/details/80493963原创 2021-10-22 10:33:22 · 70 阅读 · 0 评论 -
vue_antd项目搭建步骤
安装node.js直接下载安装包即可 自带npm安装vue-clinpm install --global vue-cli新建项目 vue init webpack vue_hello_world项目导入 antdcd vue_hello_worldnpm install ant-design-vue --save-dev代码引入antdimport Antd from 'ant-design-vue'import 'ant-design-v原创 2021-10-22 10:29:14 · 504 阅读 · 0 评论 -
VM虚拟机使用代理访问外网
设置 代理外面打开ss 允许局域网链接[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g2gMZsHL-1634869708796)(en-resource://database/974:1)]ipconfig查看ip信息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fY6hRM77-1634869708797)(en-resource://database/977:1)]进入vm 打开网络设置[外链图片转存失败,源站可能有防盗链机制原创 2021-10-22 10:28:43 · 1034 阅读 · 0 评论 -
android NativeHook相关框架
xHookSubstratedlfcinlineHookDobbyYAHFASandHook原创 2021-10-22 10:27:47 · 440 阅读 · 0 评论 -
Android SO(ELF)文件格式
SO(ELF)文件格式详解[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mw7UPeoR-1634801215208)(en-resource://database/577:1)]手动的写一个工具类来解析一个elf文件参考资料https://blog.csdn.net/zhangmiaoping23/article/details/82314758...原创 2021-10-21 15:27:05 · 95 阅读 · 0 评论 -
Android SO文件加载流程
配合源码查看loadLibrary文件路径java.lang.System.java方法内容 @CallerSensitive public static void loadLibrary(String libname) { Runtime.getRuntime().loadLibrary0(Reflection.getCallerClass(), libname); }loadLibrary0java.lang.Runtime.java经过一些跳转 到了原创 2021-10-21 15:25:57 · 304 阅读 · 0 评论 -
Android加固与脱壳分析
加固与加固原理Android APP脱壳的本质就是对内存中处于解密状态的dex的dump。首先要区分这里的脱壳和修复的区别。这里的脱壳指的是对加固apk中保护的dex的整体的dump,不管是函数抽取、dex2c还是vmp壳,首要做的就是对整体dex的dump,然后再对脱壳下来的dex进行修复。要达到对apk的脱壳,最为关键的就是准确定位内存中解密后的dex文件的起始地址和大小。那么这里要达成对apk的成功脱壳,就有两个最为关键的要素:脱壳与脱壳原理Android APP脱壳的本质就是对内存中处于解密状原创 2021-10-21 15:09:39 · 1872 阅读 · 0 评论 -
加固加壳分析(2)_给apk手动加壳
https://github.com/ray-tianfeng/dex-shellhttps://www.cnblogs.com/chenxd/p/7820087.html加壳原理和流程从整体来看我们需要把dex文件保护到so里面去,因此我们需要进行三个步骤1.打包生成出源Apk2.解开出源Apk核心的Dex文件3.将分解出来的Dex进行加壳并且组装回去4.为了避免签名冲突问题还要进行一个重新签名过程...原创 2021-10-21 15:08:06 · 198 阅读 · 0 评论 -
加固加壳平台分析(1)
一些知名常见的加固平台分析1.腾讯乐固2.360加固3.爱加密加固4.梆梆加固5.阿里聚安全加固原创 2021-10-21 15:07:35 · 577 阅读 · 0 评论 -
Android SO 逆向总结 -- 如何得出所需的逆向算法
前置步骤1.抓包确定目标参数2.jadx 发现是否有壳 回填2.jadx java层 hook 动静态 分析 参数加密地方3.参数加密属于so层 找出对应的so文件 也就是 native 属于哪个so4.进入so层 ida分析 打开确定是否混淆 是否动态加载进入SO层分析参考文章看雪 夜幕 吾爱init.array so 初始化 shift F7data 字段查看信息进入方法DCD sub_939D8+1看见了混淆F5查看伪代码修复参数JNI_OnLoad函数注册.dat原创 2021-10-21 15:06:49 · 526 阅读 · 0 评论 -
FART脱壳机的使用与进阶(1)_FART的安装与使用(pixel为例)
FART是什么ART环境下基于主动调用的自动化脱壳方案。https://github.com/hanbinglengyue/FARTFART的测试强度实战中,可以应对大多数的抽取型函数壳。也就是市面上大量的商业厂商使用的加密方式。包括梆梆/百度/腾讯/360等多个加密厂商提供的加密壳。可以做到不仅能正确dump出dex文件,同时也可以修复大部分的核心函数。亲测一些比较知名的apk加固之后可以正确的dump下来。当然并不是完美的,但是基于FART的思想可以改进,做到更加全面的脱壳工具。FART原创 2021-08-18 16:49:28 · 4062 阅读 · 4 评论 -
加固加壳脱壳分析(3)_实战手动脱壳某家加固
手动脱壳准备一个加固的Apk文件frida环境一台Root手机手动脱壳准备本次的脱壳目标就是一个叫每日优先的软件我在论坛里分析了很久 最后发现这个软件适合用来练手目标就是脱出完整的dex文件分析源码整个目录结构我们用jdax打开可以看到没有我们要找的目标包和类,所以软件dex被加壳保护起来了。分析哪家的壳百度搜索 secneo.apkwrapper找到了这个加固厂商为梆梆加固可以通过这个分析加固特点了核心加固技术:1.防逆向(Anti-RE) 抽取classes.dex原创 2021-08-13 18:15:21 · 1695 阅读 · 0 评论 -
加固加壳脱壳分析(2)_脱壳原理和一些脱壳机分析
脱壳原理基于静态分析的源代码失效,脱壳的核心就是在于动态运行时候的把源代码dex文件dump下来。所以最重要的几个点包括:1.找到合适的脱壳点,也就是dex被解密加载进内存的点。2.分析出dex文件的内存大小以及起始地址。当然所有的操作要在运行期间读取出来这些信息为了做到这一点我们需要一些特殊的方式思路上的具体表现为了能够找到dex文件的内存大小和地址,我们可以用两种方式:1.找到解密并且将dex文件加载到内存的点,在此刻将dex文件记录并dump下来2.直接从内存里搜索出已经加载好的d原创 2021-08-13 18:14:07 · 575 阅读 · 0 评论 -
加固加壳脱壳分析(1)_加固加壳原理和几代壳
什么是加固加壳对App资源代码进行保护,使其不容易被反编译工具解开。加固的核心在于保证软件正常运行的同时又能保证源码的安全性。为什么要加固加壳若应用不做任何安全防护,极易被病毒植入、广告替换、支付渠道篡改、钓鱼、信息劫持等,严重侵害开发者的利益。加固的方向有哪些从对抗静态分析入手资源文件保护dex文件保护AndroidManifest.xml文件的保护从对抗动态分析入手反调试反hook从对抗重打包入手Apk签名校验安装包文件完整性校验加固具体思路dex和elf文件是加固的重原创 2021-08-13 18:13:36 · 1385 阅读 · 0 评论 -
Android9.0动态链接库加载链接完全解读(1)--System.loadLibrary到dlopen
什么是Android LinkerAndroid 的加载/链接器linker 主要用于实现共享库的加载与链接。从 System.loadLibrary 追溯jni 开发的 so load平时我们进行JNI开发 要链接我们的so库只需要执行System.loadLibrary函数即可static { try { CLogUtils.e("开始加载 Test so文件 "); System.loadLibrary("Test");原创 2021-07-25 17:04:28 · 951 阅读 · 0 评论 -
AndroidPMS反射动态代理hook详解
代码内部 动态代理 hook PMS 实现签名修改核心知识点梳理代理 静态/动态代理PMS实现原理使用动态代理hookPMS代理 静态代理 动态代理PMSContext -> ContextWrapper@Override public PackageManager getPackageManager() { return mBase.getPackageManager(); }/** * Set the base context for原创 2021-07-16 16:36:20 · 886 阅读 · 0 评论 -
微信机器人_微信聊天消息记录拦截分析
前言近期要针对微信聊天记录进行分析和拦截,通过xposed工具制作成机器人回复系统。为此对整个的微信代码结构分析了一遍,找到了核心的消息记录类-sql工具类。分析过程收到消息->写入数据库针对整个拦截,首先从界面的ui入手 。从对方消息发送 再到消息通知 再到界面显示红点 再到打开界面框读取消息。整个的过程最终走向的就是数据存储。也就是微信在第一时间收到消息并储存到了sql记录里面。清晰的知道了:收到消息==写入数据库数据库操作类按照经验 db 就是和数据库相关的包名和类。正好原创 2021-06-29 11:19:14 · 1538 阅读 · 0 评论 -
WeChat8Xposed通用hook框架适配新版微信--修复NotificationManagerCompat适配异常
说明原文首发于WeChat8Xposed通用hook框架适配新版微信-单元测试适配新微信如有访问异常或者问题讨论请前往原文浏览前言最近在研究个人的微信bot,也就是想做一个微信聊天的机器人。搜索之下发现了一个有意思的库WechatSpellbook。Wechat Spellbook 是一个使用Kotlin编写的开源微信插件框架,底层需要 Xposed 或 VirtualXposed 等Hooking框架的支持,而顶层可以轻松对接Java、Kotlin、Scala等JVM系语言。让程序员能够在几分原创 2021-06-22 14:38:11 · 788 阅读 · 0 评论 -
WeChat8Xposed通用hook框架适配新版微信-单元测试适配新微信
说明原文首发于WeChat8Xposed通用hook框架适配新版微信-单元测试适配新微信如有访问异常或者问题讨论请前往原文浏览前言最近在研究个人的微信bot,也就是想做一个微信聊天的机器人。搜索之下发现了一个有意思的库WechatSpellbook。Wechat Spellbook 是一个使用Kotlin编写的开源微信插件框架,底层需要 Xposed 或 VirtualXposed 等Hooking框架的支持,而顶层可以轻松对接Java、Kotlin、Scala等JVM系语言。让程序员能够在几分原创 2021-06-22 14:14:10 · 1794 阅读 · 0 评论 -
再谈Android抓包工具与Android抓包思路
说明文章首发于HURUWO的博客小站,本平台做同步备份发布。如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览。原文链接 再谈Android抓包工具与Android抓包思路 直接点击即可前往访问。前言数据分析 逆向的开端往往从数据拦截开始,无论是数据抓取还是参数计算。第一步就是数据拦截人,如果没有这一层估计也就无法下手了。联系到之前的闲鱼数据抓取和闲鱼数据采集系统的搭建过程。有不少朋友联系我怎么抓不到闲鱼的数据包啊。我觉得有必要分享下一些我自己常用的数据包抓取工具吧。鉴于整个闲鱼原创 2021-01-28 15:02:29 · 416 阅读 · 1 评论 -
用flutter开发的app如何配置代理进行抓包
说明文章首发于HURUWO的博客小站,本平台做同步备份发布。如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览。原文链接 用flutter开发的app如何配置代理进行抓包 直接点击即可前往访问。前言在日常开发的过程中,遇到需要对我们的app或者别人的app进行测试需要配置拦截器来测试效果。尤其是第三方的软件,比如闲鱼技术使用的就是flutter的框架来进行抓包测试。要抓取这种用flutter的开发的软件的包,需要对flutter的源码进行额外的处理。也就是说针对闲鱼类似的软件进行爬原创 2021-01-28 15:00:47 · 1199 阅读 · 0 评论 -
逆向开发技术栈通_安全方向
熟悉 Android安全机制,了解签名、打包、反编译等;熟悉 Android SO的动态加载机制,实现过 SO 加密保护壳;熟悉 Dex 文件格式及相关的动态加载机制,了解 Dex 保护壳的开发;了解 apk中h5,js相关资源的加固方法;熟悉 Android 系统下常见的反调试方法。做过app加固产品的优先考虑;能逆向主流加固产品的优先考虑;熟练掌握静态分析工具IDA等逆向分析工具,熟悉smali、ARM或x86指令集,熟悉PE,DEX、ELF文件格式;了解xposed、frida等Hoo原创 2021-04-05 19:43:55 · 185 阅读 · 0 评论 -
逆向开发技术栈通_逆向方向
岗位要求:1、熟悉HTTP、TCP等网络协议及数据抓包、分析;2、熟悉Android程序apk以及so的逆向分析流程;擅长安卓逆向,熟悉静态与动态的分析方法;3、精通C/C++、JAVA编程,精通汇编语言;4、精通软件逆向工程、加密解密知识、各种软件逆向工程开发工具的使用; 熟悉软件逆向分析流程,能够独立完成软件逆向工作;5、熟练掌握各种调试工具:Smali、Dedexer、Dexdump、Apktool、Dex2jar、IDA、OLLYDBG其中一种或多种;6、熟悉Android底层运行机制。原创 2021-04-05 19:43:23 · 510 阅读 · 2 评论 -
Android Framework 的整体建构
Android系统架构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yFYDl9Fi-1617622964848)(en-resource://database/723:1)]可以看出Android系统一共分为4层:1、Application2、FrameWork层3、Library层+Android Runtime4、Linux KernelAndroid Framework其中AndroidFramework在第二层,他是把一些基本的的或者和设备打交道的原创 2021-04-05 19:42:53 · 152 阅读 · 1 评论 -
2021年正确的Android逆向开发学习之路
2021年正确的Android逆向开发学习之路前言在做从正向的程序开发转到逆向开发的两年里,深切体会到两种开发的不同。尤其是学习道路这一块走了很多的弯路,当然我现在也不是厉害的逆向。所以所有的看法仅代表个人意见,如有不同看法请在评论区打出来。正向开发为什么容易学习以普通的Android开发为例,一位新手想要学习正常的Android开发,那么他非常容易获得:谷歌官方提供的入门教程谷歌官方提供的免费好用的IDE AndroidStudio各种入门 进阶的 尤其是中文的 书籍 比如 第一行代码 A原创 2020-12-06 14:58:02 · 1438 阅读 · 0 评论