LLVM是编译器的框架系统,OLLVM(Obfuscator-LLVM):混淆JNI文件的一种工具OLLVM源码 : https://github.com/heroims/obfuscator/tree/llvm-8.0控制流平坦化平坦化是来重组原始代码执行流程,把原本易于阅读的代码流程重组成一个switch case形式的执行流程,所以被混淆的函数具有异常的控制流。指令替换使
原创 2021-07-09 10:13:38
703阅读
来自:http://xiebaochun.github.io/cocos2d-x Android环境搭建 cocos2d-x环境搭建比較简单,可是小问题还是不少,我尽量都涵盖的全面一些。 下载软件 cygwin、NDK(ADT):C++相关 假设之前没有Android开发环境。还须要Android SDK,Eclipse cocos2d-x源代码
转载 2023-10-03 11:38:20
113阅读
# LLVM在Android开发中的应用 在Android开发中,LLVM编译器是一种非常重要的工具,它可以将高级语言编写的代码转换成机器码,提高程序的性能和效率。在LLVM中,有一个集成了多个工具的项目,即ollvm,它是一个基于LLVM的混淆工具,可以帮助开发者保护自己的代码。本文将介绍ollvm在Android开发中的应用,并通过代码示例来演示其用法。 ## ollvm简介 ollvm
原创 2024-06-16 05:31:10
127阅读
O-MVLL项目中代码混淆方式的实现细节 在介绍O-MVLL之前,首先介绍什么是代码混淆以及基于LLVM的代码混淆,O-MVLL项目正是基于此而开发来的。有关O-MVLL的概括介绍以及安装和基本使用方式,可参见另一篇随笔基于LLVM的代码混淆代码混淆是将代码转换成另一种功能上等价,但更难以阅读的形式,是一种对抗逆向工程的手段,也是一种保护源代码和程序的手段。
转载 2024-01-30 08:03:30
1235阅读
Android 使用 ollvm 在这个充满挑战的技术世界中,Android 开发者需要面对各种各样的工具和技术,以保证应用的安全性和性能提升。ollvm(Obfuscating LLVM)便是一种保护代码的工具,可以有效地防止反编译和代码分析。然而,在将 ollvm 应用于 Android 开发时,我也遇到了一些问题,这篇博文详细记录了我解决“Android 使用 ollvm”问题的过程。
 一、环境搭建:   系统:win10_X64   ndk版本:ndk-r12b(ndk-r12b后续版本也适用)   cmake-3.9.1-win64-x64.msi  用于针对不同编译器生成源代码构建文件,如使用VS则生成(.sln)等VS配置文件,如果使用gcc则生成(Makefile)   mingw-w64-install.exe  基
转载 2024-06-14 08:27:01
492阅读
lowmemorykiller: Killing 'apps.searchlite' (27533:27533), adj 900,一、内容预览1、为什么引入LowmemoryKiller? 进程的启动分冷启动和热启动,当用户退出某一个进程的时候,并不会真正的将进程退出,而是将这个进程放到后台,以便下次启动的时候可以马上启动起来,这个过程名为热启动,这也是Android的设计理念之一。这
转载 2024-07-14 06:56:51
92阅读
# 如何在Linux环境中为Android安装OLLVM ## 引言 OLLVM(Obfuscator-LLVM)是一个基于LLVM的工具链,专门用于代码混淆。通过对Android应用程序进行代码混淆,可以有效地保护应用程序的源代码,增强安全性。本文将指导你如何在Linux系统中安装OLLVM,并配置它以便在Android项目中使用。 ## 环境准备 在开始安装之前,请确保你的Linux环
原创 2024-09-10 06:12:22
285阅读
一、理解Looper:消息循环Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环)。Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来使消息循环起作用,从消息队列里取消息,处理消息。Activity的Mai
## OLLVM与Python的关系探秘 在现代软件开发中,LLVM(Low Level Virtual Machine)是一个强大的编译器基础设施,它提供了许多工具和库,帮助开发者构建各种语言的编译器和工具。而在LLVM的众多扩展中,OLLVM(Obfuscator LLVM)是一款引人注目的工具,它用于代码混淆以增强代码的安全性。与此同时,Python作为一门简单而强大的编程语言,常常被用于
原创 8月前
21阅读
function hook_java(){ Java.perform(function(){ }); } function call_sign2(){ Java.perform(function(){ Java.choose("com.example.hellojni.HelloJni",{ onM ...
转载 2021-10-27 15:06:00
505阅读
2评论
Author: GeneBlue 这里将会用两篇文章解释OLLVM混淆Android Native代码的方法和原理。篇一主要聚焦NDK中OLLVM的编译构建和主要混淆模式的使用,并简要解释各混淆模式的效果;篇二主要研究默认混淆模式的实现并尝试编写调试自定义Pass。 0X01 OLLVM简介 OLLVM(Obfuscator-LLVM)是瑞士西北应用科技大学安全实验室于2010年6月份发起的一个
转载 2024-01-18 23:20:36
1255阅读
打开jadx,就发现了我们的老朋友数字壳典型的类抽取壳,直接上fart脱就完事了,我这里使用的是fart的frida脚本,省去了刷机的步骤这里的脱壳脚本,自行去github的寒冰大佬那边clone 一份下来,注意一点,就是fart.so和fart64.so copy在/data/local/tmp下,或者sdcard下,直接拷到/data/data下面,没权限,所以先做个过渡,先把文件放到我们能控
转载 2024-06-08 15:54:06
354阅读
c++代码混淆之王 核心定义 OLLVM 的全称是 Obfuscator LLVM。它是一个开源的代码混淆工具,基于著名的 LLVM 编译器框架。 简
原创 1月前
0阅读
近来用ollvm来编译一些代码,主要是需要对so进行一些混淆的操作,发现了一个bug,记录如下:代码段1jint begin_antidebug() {     pthread_t antidebugtid;     int ret = 0;   
原创 2014-10-15 17:30:49
3296阅读
一、目标 李老板:奋飞呀,最近的so都混淆的很厉害呀,也没有啥通用的反混淆方法。一点都不好玩,之前你说的 D810 也不是很好使。 奋飞:我传你六字真言,打不过就加入。 搞不定反混淆,我们搞搞代码混淆
原创 2022-04-14 11:47:42
6152阅读
1点赞
1评论
OLLVM指令替换常见的替换方式:a = b - (-c)a = -(-b + (-c))r = rand (); a = b + r; a = a + c; a = a - rr = rand (); a = b - r; a = a + b; a = a +OLLVM虚假控制流程IDA分析特征: x、y开头的全局变量,未初始化(一般是LDR加载),但被IDA识别成可能有值。 IDA查看Expo
原创 2022-07-08 12:32:26
183阅读
Android实现动态库的加载,一般需要调用android_dlopen_ext函数。函数源码:
原创 2022-07-09 00:27:24
1313阅读
好久没弄ollvm了,可以继续了,今天给ollvm新增了一个pass,用来加密字符串,这个pass是从别的库里面扒出来的。 本文是基于在Windows 上使用VS2017编译出来的ollvm,在这个基础上来添加。 第一步: 寻找两个pass的代码 头文件 1 #ifndef _STRING_OBFU
转载 2019-08-20 23:38:00
793阅读
2评论
1 C 和 C++ 在 JNI 中的区别 ​ JNI环境搭建 中介绍了在命令行和 Android Studio 中如何编译 JNI 代码,本文将介绍 JNI 的基础语法,主要介绍 JNI 的数据类型、JNI 与 Java 交互、异常处理,参考了 JNI 官方文档,源码详见以下文件。 JDK\incl ...
转载 20天前
388阅读
  • 1
  • 2
  • 3
  • 4
  • 5