博客
分类
标签
归档
友链
关于
博客
分类
标签
归档
友链
关于
1ens - Blog
一个菜鸡逆向选手
文档
关于
github
符号执行与angr
前言距离第一次接触并使用符号执行CTF——angr使用学习记录_ctf angr-CSDN博客已经三年了,现在再回过头来重温一下 符号执行简述 介绍符号执行起初应用于基于源代码的安全检测中,它通过符号表达式来模拟程序的执行,将程序的输出表示成包含这些符号的逻辑或数学表达式,从而进行语义分析。符号执行使用符号值作为输入值,根据程序语义利用符号集对程序变量,表达式和语句进行符号翻译,沿着程序路径...
2024-12-08
阅读全文
OLLVM反混淆
去指令替换混淆LLVM 提供了一些优化 Pass,可以用于简化和优化编译后的 IR(中间表示)代码,去除无意义的混淆指令。尤其是使用 llvm-dis 反汇编指令后,我们可以通过 opt 工具结合 -O3 优化级别来简化程序。此方法的核心思想是利用 LLVM 编译工具链中内置的优化技术,自动剖析和去除冗余的指令替换。 或者使用Miasm框架进行匹配,然后优化处理即可。Miasm 是一个专注于...
2024-12-04
阅读全文
OLLVM
神秘的ollvm,之前都是知其状,不知其所以然。 原理OLLVM 基于 LLVM 编译器框架,其工作原理是在程序编译的过程中插入特定的混淆变换。通过编写更加复杂的Pass,将代码复杂化,这样就达到了混淆的目的。 分类:字符串加密字符串加密是将源代码中的字符串数据(如常量字符串)进行加密,使得它们在二进制文件中存储时不再以明文形式出现。程序运行时,字符串需要经过解密才能被...
2024-11-30
阅读全文
LLVM初探
LLVM简介LLVM(Low Level Virtual Machine)是一个开源的编译器基础架构,它最初是作为一种中间表示(IR)语言和一个优化框架设计的,目标是支持高效的编译和生成可执行代码。LLVM并不只是一种编译器,而是一个编译工具链,旨在为现代编程语言提供高度可重用的编译工具。如果需要支持一种新的编程语言,那么只需要在LLVM中实现一个新的前端即可。如果需要支持一种新的硬件设备,...
2024-11-29
阅读全文
安卓类加载器补充InMemoryDexClassLoader
InMemoryDexClassLoader加载内存dex的流程Android 8新增了InMemoryDexClassLoader,专门用于加载内存dex,依旧以15的r3为例 InMemoryDexClassLoaderInMemoryDexClassLoader 是一个继承自 BaseDexClassLoader 的类,用于在运行时从内存中加载 Dex 文件,而无需将其存储到磁盘。它主...
2024-11-25
阅读全文
安卓应用启动流程浅析
在安卓系统启动流程浅析中,最后由ActivityThread初始化应用的 Application 类。依旧以15的r3版本为例 ActivityThread.main()123456789101112131415161718//frameworks/base/core/java/android/app/ActivityThread.javapublic static void main(S...
2024-11-24
阅读全文
Android类加载器层级关系及分析
有关类的加载在andriod_system_opreation_process篇 Android中的ClassLoader类型分为系统ClassLoader和自定义ClassLoader。其中系统ClassLoader包括3种是BootClassLoader、DexClassLoader、PathClassLoader(1)BootClassLoader:Android平台上所有Andr...
2024-11-21
阅读全文
安卓第一/二代壳浅析
第一代壳第一代加固壳简介DEX 加密(也称落地加载)第一代壳将整个 apk 文件压缩加密到壳 dex 文件的后面,在壳 dex 文件上写上解压代码,动态加载执行,由于是加密整个 apk,在大型应用中很耗资源,因此这代壳很早就被放弃了但思路还是不变。其中这种加密还可以具体划分为几个方向,如下: Dex 字符串加密 静态 DEX 文件整体加密解密 资源加密(xml 与 arsc 文件加密及...
2024-11-21
阅读全文
安卓(o)dex文件解析
DEX文件Google 为 Android 中的 Java 代码专门设计了对应的可执行文件 DEX(Dalvik eXecutable File),适用于手机这样的内存低和处理器性能较差的移动平台。 数据类型前缀u表示无符号,s表示有符号 类型 含义 u1 表示1byte的无符号数 u2 表示2bytes的无符号数 u4 表示4bytes的无符号数 u8 表示8byt...
2024-11-20
阅读全文
安卓虚拟机与编译
JVM传统的Java虚拟机,基于栈,运行class文件。 工作原理编译与加载: 开发者编写的 .java 源文件被编译器(javac)转换为 .class 文件(字节码)。 JVM 的类加载器(ClassLoader)将 .class 文件加载到内存中。 解释执行: JVM 的执行引擎读取字节码,并将其解释为底层机器指令。 对于高频代码段,JIT 编译器会将字节码直接编译为机器码执行,...
2024-11-20
阅读全文
上一页
3 / 9
下一页
复制文本
粘贴文本
全选文本
剪切文本
站内搜索
在新标签页打开
复制图片地址
复制图片文件
归档
打印页面
暗黑模式
阅读模式
粘贴文本
全选文本
剪切文本
复制文本
站内搜索
必应搜索
新标签页打开
复制链接地址
复制图片
谷歌识图
常见问题
暗黑模式
打印页面
阅读模式