Corax的博客

“我想做我能做的事 ”

【Android学习】Fla源码分析

工具学习

Fla源码分析 看完了Bcf火速赶往Fla啊 本篇博客是我根据vae师傅写的,找了别的博客,都没vae师傅这种跟随源代码查看实时混淆结果情况的做法,很认可这种思想,遂学习。 为了防止越学越迷茫,先看看Fla是怎么个过程 在我理解里面,本身的程序流程会使用各种各样的跳转指令更改控制流的效果,虽然有不少循环和回call,但总体而言流程还算是线性的,这样的代码强度其实对逆向者比较有利,无论...

【Android学习】Ollvm之BCF,对抗思路以及魔改思路

工具学习

Ollvm三种混淆之BCF,对抗思路以及魔改思路 ok呀 火速赶往ollvm 虚假控制流源码 最先火速赶往战场的是bcf 首先得要有一个概念 虚假控制流是利用不透明谓词,干扰IDA,使它无法确定哪些是虚假的不会进入的基本块,哪些是会进入会执行的基本块。 混淆后 (所谓不透明谓词,是在bss段中定义的变量,被放在代码中,进行一个表达式的判值。而从开发者的角度,我们知道这俩变量...

【Android学习】抽取壳的实现

工具学习

art下的抽取壳实现 记住恢复时间永远要早于这个被调用时机 要知道类的准备阶段 装载 链接 初始化 姜维师傅选择dexfindclass 当dexclassloader被加载完之后 就要使用classloader去加载这些类了 重提一下 有隐式加载和显式加载 比如说这个dexclassloader的loadclass 可以看到有一个双亲委派的一个体现 在真的进...

【Android学习】一代壳实现与脱壳研究

工具学习

Dalvik下 一代壳dump脱壳方案 核心总是在内存当中把dex文件dump下来 首先还是dalvik下 dexclassloader加载dex文件的流程 我们看源码 既然是dalvik就看4.4及以前版本的, 可以看到就一个父类的构造函数,我们进去看 可以看到这里面也还是把parent作为节点给父classloader构造函数 跟,这个时候可以看到俩模拟器 进入第二个...

【Android学习】壳的通识与发展

工具学习

到activitythread才算进入到我们app的代码,来看会源码 这个activitythread里面这个 先获取到仅有的这个单例的实例,,然后反射到这个mpackages的这个arraymap,然后通过当前的这个包名获得loadedapk,然后通过loadedapk获得当前的mclassloader 这个handlebindapplication才是第一次进入ap...

【Android学习】壳的前置知识

工具学习

加壳相关 JVM里面三种类加载器 bootstrap classloader extensions classloader application classloader 系统中加载顺序也是如上 也可以自定义类加载器 委托关系 先看图 还是很够吧形象的 这种双亲委派好处有俩 避免重复加载 避免类似于想恶意dll注入这种自己实现某个类导致系统本身类不被加载 双...

【Android学习】基本块的分割

工具学习

LLVM 基本块的分割 其实一直不是很理解LLVM是如何对函数体中的函数块进行划分的,不知道用的是什么规则 理论 基本块分割就是将基本块分割成等价的若干基本块,分割之后在基本块中间加上一些跳转语句。 我们这边是自己对这些基本块进行分割,过程是 遍历函数中的每个基本块 判断每个基本块当中有没有phi 有就跳过 没的话 根据配置进行划分 关于PHI 由SSA形式衍生而来,具体...

【Android学习】LLVM 安装与学习

工具学习

LLVM 安装与学习 前段时间研究了一下虚假控制流的源代码和魔改,感觉自己对llvm这块理解不太够,故返回来学一下,为后面学习llvm相关的混淆做铺垫。 安装 笔者环境 Ubuntu 22.04.4 LTS LLVM 12.0.1 Cmake 3.22.1 先下载两个压缩包 https://github.com/llvm/llvm-project/releases/downlo...

【Android学习】Ollvm环境配置与初步使用

工具学习

Ollvm环境配置 及 初步使用 笔者环境: 虚拟机:系统: ubuntu22.04 分配内存:9G 分配空间:800G 分配CPU: 8核 本身没有任何Cmake,g++版本 换源 其实本身是挂了梯子的,但是换个源处理可以能更好 sudo vim /etc/apt/sources.list 开头添加这些源 deb http://mirro...

【技术研究】pcileech编写unlock脚本过win11和win7锁屏

TEC

昨天用了pcileech的windows10的unlock脚本,能够成功。 今天把windows11和windows7的unlock脚本给写出来了。 win11绕密码 unlock_win11x86原本的替换909090909090,无法绕过 原因在不走图中流程 正确逻辑在 可以把setz直接取反 如下 180004009 | 0F 94 C0 ...