遥遥领先,遥遥领先~
## 前 距离上次写文章,已经时隔将近一年了,现在23年也已经过大半了,时间过的是真的很快。 今天收到了服务器即将到期的短信 ,好像才想起来我还有个博客,果然还是忘记了管理员账号密码,哈哈哈哈哈,经过千辛万苦终于弄回来了。 ## 近况 近一年中没有再做新的开源项目了,至于为什么的话,归根到底还是懒了且精力真的不够分配了,自打去年起我的第一个娃儿降临,命运的齿轮开始发生了转动,所有的重心都要偏向工作与家庭。 所以这里给做个未有打算或者正在打算的兄弟们提一两嘴,在没有充分准备的情况下不要去做这个事。虽然我已经做过了心理准备但是在没有经历过的前提下,这仍然是一个很巨大的考验,好在最繁琐的阶段已经差不多过去了,自己也能稍微的喘口气了。 ## 未来 未来主要的发展方向还是以Android为主,对虚拟化技术比较热爱,虽然最近《App备案》这个事情给国内的Android生态来了一记重锤,但是毕竟到最后是什么个情况或者会发展成什么样还是一个未知的事情,那就只能先观望一下吧。 ### 关于认知 "提高认知" 这个话题最近一直在伴随着我,包括近期遇到的很多事都在提醒我
## 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