Milk的博客
### 简单说说 如果有香港手机卡需求的朋友可以看下 目前有两种方案比较划算: 1. Club Sim,一年6港币保号,可以接收短信、不能发和接打电话,一般可以用来当作注册号用。 2. HK3 DIY,对于有流量使用接打电话接发短信收需求的,比较全面的可以考虑这个。 我是两个都买了,都支持eSim,比较方便。 ![Xnip2024-08-13_18-14-12.jpg](https://milk-blog.oss-cn-hangzhou.aliyuncs.com/typecho/2024/08/13/Xnip2024-08-13_18-14-12.jpg) 具体的什么攻略可以看这几个帖子: https://www.txrjy.com/thread-1297221-1-1.html https://www.uscardforum.com/t/topic/194653 这里聊一下我主要用的HK3 DIY,费用方面 首先我有上网的需求,经常会往返香港,国内的手机需要开通漫游比较麻烦,这个也是备用手机,所以需要一张可以联网的卡(并不需要消耗很多流量),
# 物种起源 最近在做新东西的时候,由于业务模式的问题,如有更新,发版本并不合适我们的场景,这就需要用到动态化的需求。当时就需要评估技术方案了 1. 类似于BlackBox的虚拟化 2. 造轮子 3. 腾讯Shadow 处于快速,稳定性和轻量级原则,选择了腾讯的Shadow,毕竟也是大肠项目,非常可靠。 [x-github url="https://github.com/Tencent/Shadow" /] # 撸起 ** 开干 刚把项目拉下的时候,有点懵逼,离离原上谱啊家人们,这么多模块。 ![5ba15d07e72c27cadd2fa1de0874f115.jpg](https://milk-blog.oss-cn-hangzhou.aliyuncs.com/typecho/2024/03/15/5ba15d07e72c27cadd2fa1de0874f115.jpg) # 源码层及运行模式 经过一番摸索,其实整体的流程也是比较简单的,我感觉核心还是在gradle的plugin ## 运行模式 Shadow 支持两种运行模
## 0x1 关于BlackObfuscator BlackObfuscator是基于dex2jar开发的Dex控制流混淆,开源地址:[https://github.com/CodingGay/BlackObfuscator][1],现有的混淆一般只支持处理变量名、类名,这样做对抗是远远不够的。由于对于控制流此类资料较少,加上也没有现成方案,所以当时就自己研究了一下,现在出来分享一下设计思路。 ## 0x2 源码 BlackObfuscator的核心模块为dex-obfuscator,源码目录: ``` ├── IRObfuscator.java ├── LBlock.java ├── ObfDic.java ├── ObfuscatorConfiguration.java ├── RebuildIfResult.java └── chain ├── FlowObfuscator.java ├── IfObfuscator.java ├── SubObfuscator.java └── base ├──
## 书接上回 想要了解如何dump出Dex,就要先了解Dex文件是如何加载进内存的。上文说到Application是通过LoadedApk#makeApplication完成的,那么我们看下相关实现。 本文源码为:android11_r1 系统源码:**android.app.LoadedApk#makeApplication** ```java @UnsupportedAppUsage public Application makeApplication(boolean forceDefaultAppClass, Instrumentation instrumentation) { if (mApplication != null) { return mApplication; } Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "makeApplication");
## 0x1 前言 **[前篇][1]** 说到,BlackDex是基于虚拟化技术进行的,本项目实际上是基于 **[BlackBox][2]** 的基础下进行开发,很可惜的是由于某些原因此项目没能继续下去。 本系列将选定发表时最后的提交,朋友们可以Clone下来跟着本文走:[https://github.com/CodingGay/BlackDex/tree/5580fa8f5d658afae4eb667f8c8d6632be5b9aaf][3] ## 0x2 启动 本文主要分析如何从点击BlackDex图标之后,是如何进行启动APP的进程,此处不会过度深究虚拟化的实现过程,有机会更完这个系列之后会再出一系列虚拟化技术的文章。 核心启动dump方法:**top.niunaijun.blackbox.BlackDexCore#dumpDex(java.lang.String)** ```java public InstallResult dumpDex(String packageName) { // 将软件安装至BlackBox中
牛奶君
https://t.me/niunaijun