
Android加固
文章平均质量分 78
双刃剑客
双刃
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【无标题】加固替换Application学习笔记
会生成一个 Context。// LoadedApk------->mApplication ContextImpl的mPackageInfo属性。// ContextImpl---->mOuterContext(app) 通过Application的attachBaseContext回调参数获取。// 如果没有调用到该方法 , 说明该应用中没有配置 ContentProvider;原创 2022-12-01 11:30:46 · 663 阅读 · 0 评论 -
ART深入浅出6--了解Dex文件格式(3)
hander_off_ 是 hander结构的偏移,这个偏移是从codeItem.insns_ + sizeof(TryItem ) * codeItem.tries_size_ 开始的。finally块是放在最后的,而且finally只有address_值,没有type_idx_的值。ins_size_是指令的大小,单位是2字节。handler结构是一个不定长的结构,在TryItem数组之后有一个handler_size的leb128编码的数据,表示handler的结构。ins_size_是参数的个数。转载 2022-11-24 11:40:21 · 612 阅读 · 0 评论 -
入门ART虚拟机(3)——加载类和方法
在DexFile_defineClassNative方法中,调用class_linker对象的DefineClass来加载类。在DexPathList类的findClass方法中,遍历dexElements数组的每一个成员(前面笔记提到过,每一个Element对象里面封装着一个DexFile),然后调用DexFile的loadClassBinaryName方法来加载类。调用FindOatClass查找与被加载类对应的OatClass,然后调用LoadClassMembers加载类的成员。转载 2022-10-17 11:38:13 · 384 阅读 · 0 评论 -
入门ART虚拟机(2)——加载DEX文件续
现在假设正在加载的DEX,是一个被加固程序处理过的DEX,并且DEX壳代码HOOK execv函数,阻止了OAT文件的生成。因为是第一次加载该DEX,所以返回kDex2OatNeeded,MakeUpToDate将会调用GenerateOatFile为DEX生成对应的OAT文件。继续看openDexFilesFromOat,这里假设该DEX是第一次被加载,系统中不存在对应的OAT文件。因为没有对应的OAT文件,所以最终会调用DexFile::Open方法来直接加载原始的DEX文件。转载 2022-10-12 10:51:41 · 939 阅读 · 0 评论 -
入门ART虚拟机(1)——加载DEX文件
下一篇笔记再继续看DexFile_openDexFileNative源码,预留一个问题:假设要动态加载DEX文件,一些核心class的方法指令被抽走加密或虚拟化,在运行时再还原或解释执行。DexFile_openDexFileNative在加载DEX时,会有一个dex2opt的过程,通常壳代码会HOOK execv函数,阻止dex2opt对指定DEX文件的优化,那么这会对DexFile_openDexFileNative的执行产生哪些影响?loadDexFile是DexPathList的一个静态成员方法。转载 2022-10-12 10:12:08 · 755 阅读 · 0 评论 -
【Android 逆向】加壳技术识别 ( VMP 加壳示例 | Dex2C 加壳示例 )
加壳技术识别的必要性 : 拿到 APK 文件后 , 如果想要分析其 DEX 文件 , 需要先 识别出该 APK 是使用的什么技术进行的加壳 , 如果该 APK 只是使用了整体保护 , 只需要将内存中的 DEX 文件 DUMP 下来即可;每个加壳的应用必然使用 DEX 整体加固 , 然后在该基础上 , 使用 函数抽取 , VMP , Dex2C 中的一种加壳技术 , 也有可能使用 3 33 者中的多种加壳技术 , 进行混合加壳;函数抽取特征 : 获取到加壳后的 DEX 文件 , 其函数体是无效的;转载 2022-09-22 17:41:39 · 2364 阅读 · 0 评论 -
几维加固分析(学习加固版本)
这篇帖子起因是前段时间想挂个协和的号,随便拿了个测试机下载好APP后打开卡在启动界面,以为是测试机root之类的东西被检测到后拒绝启动了。于是准备看看怎么回事,发现这玩意儿使用了几维加固,正准备分析分析,突然发现测试机WiFi没连上,连上网之后就正常了,于是就把它丢在一边没管了。然后过年在家闲着没事,想起还有这么个东西,正好几维加固以前没有遇到过,于是又在垃圾桶里把它翻出来了。分析完后,实在是忍不住想吐槽一下,,不知道是不是外包公司没给钱,这加固做得就跟期末大作业水平差不多,全程就像读源码一样,转载 2022-02-15 12:51:51 · 1832 阅读 · 1 评论 -
分享一个自己做的函数抽取壳
一、概述项目中慢慢开始,写一些简单的 kotlin类了,挺方便的一个语言,借鉴了不少脚本语言的特点。刚开始用,有些点经常要翻越,特别记录下。二、常用的几个复合符号《Kotlin 实战》小人系列,的这本书里 画的图很清晰了,我又重画了一遍。2.1、 ?.安全调用符!这里写图片描述if (foo != null){ return foo.bar()}else{ return null}1234562.2、 ?:2.3、 as?2.4、 !!...转载 2022-01-12 22:31:12 · 1149 阅读 · 2 评论 -
第一代Android壳源码--某某公司早期壳代码加固原理分析
#include <jni.h>#include <android/log.h>#include <fcntl.h>#include <unistd.h>#include <stdlib.h>#include "mycommom.h"#include <sys/stat.h>#include <sys/types.h>#include <android/asset_manager.h>#inc.转载 2020-07-22 15:21:06 · 1099 阅读 · 0 评论 -
阿里早期Android加固代码的实现分析
看雪上有作者(寒号鸟二代)将阿里移动早期的Android加固进行了逆向分析,得到了能够运行成功的NDK代码,主要是基于第2界阿里移动破解大赛的apk逆向分析出来的,文章的原地址《阿里早期加固代码还原4.4-6.0》。周末有空仔细阅读和分析了一下作者寒号鸟二代给出的逆向还原的代码,发现阿里移动的Android加固在dalvik虚拟机模式下dex文件的加载方案和看雪上的一些作者给出的方案一样,具体可以...转载 2019-10-30 12:30:11 · 676 阅读 · 0 评论 -
梆梆加固函数抽取执行流程
梆梆加固函数抽取执行流程:函数的第一条指令是goto,然后中间是一系列的nop(预留空间),第一条指令goto到末尾,跳过预留空间,跳转到的位置是一条invoke指令,调用壳中的还原函数,还原函数会将前面预留空间(一系列nop)还原成函数原指令,然后执行流程再跳转到第一条goto指令的后面,继续执行已经还原好的函数原指令。如果是这种的话,还不能简单的“执行完再dump method”,因为函数中的...转载 2019-10-29 11:16:20 · 560 阅读 · 0 评论 -
Android平台下hook框架adbi的研究(下)
转:http://blog.youkuaiyun.com/roland_sun/article/details/36049307上篇中,我大致介绍了一下如何将一个dlopen()的调用插入到指定进程的执行序列中去。但是,光插入这个没用,还没有具体解决如何hook进程中指定函数的问题。这个任务就要交给dlopen()函数加载进来的那个动态库来完成了。但是具体要hook哪个进程转载 2016-01-26 20:22:53 · 1524 阅读 · 0 评论 -
换一个帅一点姿势实现DexHunter
转:https://bbs.pediy.com/thread-225427.htmDexHunter需要刷机,感觉太麻烦了,所以用xposed弄了一份。然后大部分解析逻辑都放到了java层,这样也有另一个好处,就是壳总不能修改java正常的api。所以define class之类的都可以直接调用java 层的classloader来初始化class。注意:目前我只在dalvik上面实现,art还没...转载 2018-05-13 22:27:23 · 679 阅读 · 0 评论 -
android so加固
转:https://bbs.pediy.com/thread-226667.htm开源代码地址:https://github.com/liumengdeqq/CustomLinker.git 一.so的加载过程分析 二.分析系统加载so的原理 (1)用mmap函数映射so文件到内存 (2)映射内存根地址 ...转载 2018-05-13 22:32:52 · 1209 阅读 · 0 评论 -
Android中的Apk的加固(加壳)原理解析和实现
一、前言今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理。现阶段。我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服。虽然我们混淆,做到native层,但是这都是治标不治本。反编译的技术在更新,那么保护Apk的技术就不能停止。现在网上有很多Apk加固的第三方平台,最有名的应当属于...转载 2019-09-03 12:04:43 · 641 阅读 · 0 评论 -
Android中apk加固完善篇之内存加载dex方案实现原理(不落地方式加载)
一、前言时隔半年,困扰的问题始终是需要解决的,之前也算是没时间弄,今天因为有人在此提起这个问题,那么就不能不解决了,这里写一篇文章记录一下吧。那么是什么问题呢?就是关于之前的一个话题:Android中apk加固技术实现关于这个问题,之前的一篇文章已经说过了,没有了解的同学可以点击这里: Android中的Apk的加固(加壳)原理解析和实现请务必仔细的看完这篇文章,不然今天说的内容...转载 2019-09-09 22:20:55 · 2293 阅读 · 2 评论 -
APP加固技术历程及未来级别方案:虚机源码保护
传统App加固技术,前后经历了四代技术变更,保护级别每一代都有所提升,但其固有的安全缺陷和兼容性问题始终未能得到解决。而下一代加固技术—虚机源码保护,适用代码类型更广泛,App保护级别更高,兼容性更强,堪称未来级别的保护方案。(加固技术发展历程)第一代加固技术—动态加载第一代Android加固技术用于保护应用的逻辑不被逆向与分析,最早普遍在恶意软件中使用,其主要基于Java虚拟机提...转载 2019-09-11 22:34:00 · 425 阅读 · 0 评论 -
Android中实现「类方法指令抽取方式」加固方案原理解析
一、前言Android中加固方案一直在进步,因为新的加固方案出来就会被人无情的破解脱壳了,从第一代加固方案落地加密dex文件,第二代加固方案不落地加密dex文件,在到第三代加固方案类方法抽取,以后后面的更多加固方案来说都是安全的进步,关于脱壳方案网上有很多资料,但是加固方案却没多少资料,因为有些加固方案是一些加固公司的商业机密不可泄露的,所以我们现在看到的网上加固方案还是以前的加固方案,不了解...转载 2019-09-16 09:48:14 · 2009 阅读 · 0 评论 -
Android Vmp加固实现流程图
0x00: 目前各种加固都说是VMP了,简单分析市面上的加固,然后自己实现了一个类似原理的加固,大致流程图如下:加固端:解释器:https://www.cnblogs.com/2014asm/p/6534897.htmlARM平台指令虚拟化初探0x00:什么是代码虚拟化? 虚拟机保护是这几年比较流行的软件保护技术。这个词源于俄罗斯的著名软件保护软件“VmPr...转载 2019-09-20 14:24:03 · 3972 阅读 · 0 评论 -
Android SO 加壳(加密)与脱壳思路
转:https://blog.youkuaiyun.com/jltxgcy/article/details/52205210 0x01 常见的Android SO加壳(加密)思路 1.1 破坏Elf Header 将Elf32_Ehdr 中的e_shoff, e_shnum, e_shstrndx, e_shentsize字段处理,变为无效值。由于在链接过程中,这些字段是无用的,所以可以随意修改,...转载 2018-04-20 11:45:32 · 3966 阅读 · 2 评论 -
Android SO文件保护加固——加密篇(一)
转:https://blog.youkuaiyun.com/feibabeibei_beibei/article/details/51498285这篇是一系列的关于SO文件保护的自我理解,SO文件保护分为加固,混淆以及最近炒的比较火的虚拟机,由于本人菜鸟,无力分析虚拟机,我相信以后会有机会。。。加固就是将真正的so代码保护起来,不让攻击者那么轻易的发现,至于混淆,由于ART机制的介入,使得O-LLVM越来越火...转载 2018-04-20 11:36:25 · 8970 阅读 · 1 评论 -
简单粗暴的so加解密实现
转:https://bbs.pediy.com/thread-191649.htm 以前一直对.so文件加载时解密不懂,不了解其工作原理和实现思路。最近翻看各种资料,有了一些思路。看到论坛没有类似帖子,故来一帖,也作为学习笔记。限于水平,本菜没有找到安卓平台一些具体实现思路,这些方法都是借鉴其他平台的实现思路和本菜的YY,肯定会有不少疏漏和错误之处,还请各位大牛指正,感激不尽!简单粗暴的s...转载 2018-04-23 12:44:41 · 9296 阅读 · 0 评论 -
解决多进程ptrace反调试保护的一种方法
转:http://bbs.pediy.com/showthread.php?p=1436691#post1436691前言:我们经常看到很多加固都采用多进程ptrace的方式来反调试,这里想到一个小技巧绕过这种保护,测试目标是一款娜迦加固的APK,效果如下:原理:多进程都是通过fork出来的,因此我们修改/bionic/libc/bionic/fork.c里面的转载 2016-07-11 23:35:47 · 9596 阅读 · 0 评论 -
dex2oat程序参数总结
转: http://www.th7.cn/Program/Android/201512/719494.shtmlAndroid从4.4开始正式引入了ART虚拟机,并从5.0开始取代了Dalvik成为默认的虚拟机。ART与Dalvik最大的不同就是,在程序安装的时候就将其编译成本地指令集(即所谓的Ahead Of Time,AOT),而不像Dalvik是在运行的时候对经常掉用的函转载 2016-05-20 09:44:42 · 1975 阅读 · 0 评论 -
在百度加固中正确使用ida的姿势
转:http://bbs.pediy.com/showthread.php?p=1427471#post1427471在百度的加固中会使用这句话来判断本程序是否被调试if (!Debug.isDebuggerConnected())这样对于ida使用者而言,网上的公开调试方式so的方式就不可以用了,怎么办呢?闲来没事分析了一下,调用的是下面这个函数p转载 2016-04-29 23:55:27 · 1823 阅读 · 0 评论 -
Android平台下hook框架adbi的研究(上)
转:http://blog.youkuaiyun.com/roland_sun/article/details/34109569对于Android系统来说,底层本质上来说还是一个Linux系统,所以过往在Linux上常用的技巧,在Android平台上都可以实现。比如,可以利用ptrace()函数来attach到一个进程上,从而可以修改对应该进程的内存内容和寄存器的值。但是,原创 2016-01-26 20:20:56 · 2410 阅读 · 0 评论 -
Android逆向之旅---基于对so中的section加密技术实现so加固
转:http://blog.youkuaiyun.com/jiangwei0910410003/article/details/49962173版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]一、前言好长时间没有更新文章了,主要还是工作上的事,连续加班一个月,没有时间研究了,只有周末有时间,来看一下,不过我还是延续之前的文章,继续转载 2016-01-19 22:12:32 · 1921 阅读 · 0 评论 -
微信系列研究之-手把手教你脱掉微信的外衣
转:http://bbs.pediy.com/showthread.php?t=200230前言微信5.3以后,除了代码加混淆外,还把一些plugin关键的代码加了壳,防止被反编译。本文主要介绍微信5.3/5.4简单脱壳的办法和大家分享,感谢大家的关注。本文为微信系列研究的一部份,从我以前的发表的文章,大家可以看到我们在逐步一点点地由外入内,由浅入深,进入微信的转载 2015-06-05 10:17:23 · 4247 阅读 · 0 评论 -
爱加密和梆梆加固的破解方法
总结的比较重要命令cat /proc/pid/cmdline 查看命令行cat /proc/pid/status 查看TracerPid.ls /proc/pid/task 查看有多少线程cat /proc/pid/task/tid/status 查看线程TracerPid.目前梆梆加固根据此文附加线程的方式,已经gcore不出正常的转载 2014-12-16 17:28:21 · 35241 阅读 · 3 评论 -
ZjDroid--脱壳神器介绍
https://github.com/halfkiss/ZjDroidAndroid app dynamic reverse tool based on Xposed framework.一、ZjDroid工具介绍ZjDroid是基于Xposed Framewrok的动态逆向分析模块,逆向分析者可以通过ZjDroid完成以下工作:1、DEX文件的内存dump2、基于原创 2015-05-29 14:48:31 · 6251 阅读 · 0 评论 -
Android脱壳圣战之---如何脱掉"爱加密"家的保护壳
转:http://mp.weixin.qq.com/s?__biz=MzIzNDA3MDgwNA==&mid=2649229983&idx=1&sn=de2bd1a408d74e102ecd13a05512d1fa&scene=23&srcid=0704Z6ZTEyWvt7iPeDQ3qZAr#rd一、前言今天我们来看一下在了解了破解三部曲之后,如何开始脱掉各个市场转载 2016-07-04 23:38:30 · 4912 阅读 · 0 评论 -
Android应用程序通用自动脱壳方法研究
转:http://www.cnblogs.com/dacainiao/p/5126790.html本文转载自: http://drops.wooyun.org/tips/9214 Author: @爱博才会赢本文为乌云峰会上《Android应用程序通用自动脱壳方法研究》的扩展延伸版。0x00 背景及意义Android应用程序相比传统PC应用程转载 2016-08-06 20:47:44 · 2828 阅读 · 0 评论 -
第二代Android壳源码-Android第二代加固(support 4.4-8.1)
转:https://bbs.pediy.com/thread-225303.htm介绍代码放在github上:https://github.com/woxihuannisja/Bangcle第二代加固使用的是内存动态加载Dex,也就是不落地加载,可以将Dex加密放在Apk中,在内存中实现解密兼容性测试可以支持Andorid 4.4-8.1版本,目前还不能支持重写了Application类 的Apk...转载 2018-03-21 00:16:16 · 1113 阅读 · 0 评论 -
360脱壳-native函数还原笔记-2017-06-25
转:http://www.52pojie.cn/forum.php?mod=viewthread&tid=619391&extra=page%3D1&page=1接触andorid逆向脱壳一段时间了,刚刚感觉开始入门,最开始时的过反调试,花费了大量的时间,但时间长了,汇编指令慢慢熟悉,学会了一些调试技巧,反调试方法知道了,就那么些反调试的方法,过反调就比较顺利了,所以刚开始转载 2017-07-05 11:11:16 · 1777 阅读 · 0 评论 -
一个基于xposed和inline hook的一代壳脱壳工具
1. 我为啥要写这个工具虽然一代壳比较古老了,但是市面上还是比较多。用ida脱的话有点累。然后我就写了个xposed插件,来快速的帮我们完成脱壳。(这种方法比较省事,不用去修改系统什么的,也不用动态调试)2. 原理原理就是去hook libart.so里面的art::DexFile::OpenMemory,然后再把内存中的dex写到文件中去。就是这么简单,最主要的就是hoo转载 2017-07-02 23:57:48 · 3835 阅读 · 0 评论 -
android 脱壳通用技术 及 子进程调试技术解决方案
转:http://bbs.pediy.com/thread-217157.htm好久不发帖了,今天来点干货1、配置调试环境首先,配置好调试环境。Androidserver 的调试方法是 android_server -pxxxx 自定义portJdb的调试方法是 jdb -connect com.sun.jdi.SokcetAttach:hostname转载 2017-04-20 22:05:31 · 1243 阅读 · 0 评论 -
解决爱加密加固之后使用xposed hook的时候log打印不出来的问题
转:http://bbs.pediy.com/thread-216965.htm最近在爱加密加固之后,用xposed去打印日志,开始用log.i一直打不出来,以为是插件有问题,后来才发现爱加密加固之后只有Log.e才能够打出日志。虽然Log.e打日志也可以,但是作为重度强迫症患者,一堆错误的日志看得很头疼声明一下,我水平有限,不要骂我,谢谢源码在https://gi转载 2017-04-14 23:55:53 · 5646 阅读 · 1 评论 -
【原创】一个dex脱壳脚本
转:http://bbs.pediy.com/showthread.php?p=1459711#post1459711标 题: 【原创】一个dex脱壳脚本作 者: QEver时 间: 2017-01-03,15:06:50链 接: http://bbs.pediy.com/showthread.php?t=214999一个ida脚本,配合kill方法,可以实现脱绝大转载 2017-01-03 23:49:46 · 1576 阅读 · 0 评论 -
闲聊阿里加固(一)
转:https://jaq.alibaba.com/community/art/show?spm=a313e.7916642.21000000.1.XxGrDL&articleid=6000x00 闲扯1.为什么要写这些?折腾了一段时间的Android加固,看了很多大牛的文章,收获还是蛮大的,不过好像大部分的文章都是直接写在哪里下断点如何修复转载 2016-11-21 23:43:35 · 3459 阅读 · 2 评论 -
360加固保动态脱壳
转:http://www.cnblogs.com/2014asm/p/4104456.html测试环境:调试器: IDA6.5手机及系统版本: .SO层脱壳一:.如何到达壳入口点?1.我是通过对dvmLoadNativeCode函数下断,分析它执行流程最后到达壳入口(如果您有更好的办法还请告知,感谢中...),函数dvmL转载 2016-08-09 12:00:21 · 1563 阅读 · 0 评论