注:以下4篇博文中,部分图片引用自DexHunter作者zyqqyz在slide.pptx中的图片,版本归原作者所有: 0x01 背景介绍 安卓 APP 的保护一般分为下列几个方面: JAVA/C代码混淆 dex文件加壳 .so文件加壳 反动态调试技术 其中混淆和加壳是为了防止对应用的静态分析:代码混淆会增加攻击者的时间成本, 但并不能从根本上解决应用被逆向的问题:而加壳技术一旦被破解,其优势更是荡然无存:反调试用来对抗对APP的动态分析: 昨天看雪zyqqyz同学发了一个Android应用程序…
/*     当第一个类执行到此函数时,我们在dvmDefineClass执行之前,也就是第一个类加载之前     注入我们的dump代码:即DumpClass()函数 */ static void Dalvik_dalvik_system_DexFile_defineClassNative(const u4* args,     JValue* pResult) {     StringObject* nameObj = (StringObject*) args[0];     Object*…
0x03 DexHunter代码分析 DexHunter 实现中,只需要修改一处文件:dalvik\vm\native\dalvik_system_DexFile.cpp 下面是BeyondCompare比对: 首先看一下DexHunter的设计原理: APP 启动时,通过freature string定位dex在内存中位置,并读取classdef块之前的内存为part1,读取classdef之后的内存为data.遍历class_def_item结构,生成文件classdef,并通过code_i…
/*     此为DexHunter实现的主要功能,进行内存dump,将class_def_items中dump出classdef和extra部分 */ void* DumpClass(void *parament) {   while (timer_flag) {       sleep(5);   }   DvmDex* pDvmDex=((struct arg*)parament)->pDvmDex; //pDvmDex代表一个dex文件   Object *loader=((struct…
基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可以让整个系统的运行更加平稳.今天要与大家分享一下限流算法和C#版本的组件. 一.令牌桶算法: 令牌桶算法的基本过程如下: 假如用户配置的平均发送速率为r,则每隔1/r秒速率将一个令牌被加入到桶中: 假设桶最多可以存发b个令牌.当桶中的令牌达到上限后,丢弃令牌. 当一个有请求到达时,首先去令牌桶获取令…
20145307陈俊达_安卓逆向分析_Xposed的hook技术研究 引言 其实这份我早就想写了,xposed这个东西我在安卓SDK 4.4.4的时候就在玩了,root后安装架构,起初是为了实现一些屌丝功能,比如自动抢红包,微信阻止撤回,语音可转发等效果,现在步入了SDK 6.0时代,安上了黑域还有绿色守护真的省电,尤其你在装谷歌全家桶的时候,那个是真的费电啊!这篇文章,我想写一点xposed的工作原理.在不修改APK的情况下,影响其运行过程的服务框架.可以根据自己的需求编写模块,让模块控制目标…
1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理!   我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群(QQ群.微信群)中,干起了无间道的工作.随着黑产群数量的激增,同事希望能自动获取黑产群的聊天信息,并交付风控引擎进行风险评估.于是,这个工作就交给我了,是时候表现一波了…… 针对同事的需求,分析了一通,总结一下: 1)能够自动获取微信和 QQ群的聊天记录: 2)只要文字记录,图片和表情包,语音之类…
1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理!   我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群(QQ群.微信群)中,干起了无间道的工作.随着黑产群数量的激增,同事希望能自动获取黑产群的聊天信息,并交付风控引擎进行风险评估.于是,这个工作就交给我了,是时候表现一波了…… 针对同事的需求,分析了一通,总结一下: 1)能够自动获取微信和 QQ群的聊天记录: 2)只要文字记录,图片和表情包,语音之类…
Android推送技术研究 字数5208 阅读4026 评论5 喜欢35 前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些东西偏底层硬件和通信行业, 我对这些一窍不通, 只能说说自己的理解. 为什么要研究Android推送技术? 主要还是毕业设计要做一个即时通信app, 我是不喜欢做什么社交app的, 也就象牙塔里的人想得出来, 说实话有这功夫还不如钻研一个小技术点, 把一个点研究透彻, 比搞个大而全, 还无用的东西好…
前一段时间,和大家分享了 ASP.NET Core技术研究-探秘Host主机启动过程 但是没有深入说明主机的设计.今天整理了一下主机的一些知识,结合先前的博文,完整地介绍一下.NET Core的主机的设计和构建启动过程. 一.什么是主机 主机是一个封装了应用资源的对象,即:主机封装了一堆应用资源,封装了哪些应用资源呢? 依赖注入框架 DI Logging日志 Configuration 配置 托管服务:IHostedService服务接口的实现 二.Web主机和通用主机 先说Web主机:即ASP…