来自:http://xiebaochun.github.io/cocos2d-x Android环境搭建 cocos2d-x环境搭建比較简单,可是小问题还是不少,我尽量都涵盖的全面一些。 下载软件 cygwin、NDK(ADT):C++相关 假设之前没有Android开发环境。还须要Android SDK,Eclipse cocos2d-x源代码
转载 10月前
78阅读
一、理解Looper:消息循环Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环)。Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来使消息循环起作用,从消息队列里取消息,处理消息。Activity的Mai
# LLVM在Android开发中的应用 在Android开发中,LLVM编译器是一种非常重要的工具,它可以将高级语言编写的代码转换成机器码,提高程序的性能和效率。在LLVM中,有一个集成了多个工具的项目,即ollvm,它是一个基于LLVM的混淆工具,可以帮助开发者保护自己的代码。本文将介绍ollvmAndroid开发中的应用,并通过代码示例来演示其用法。 ## ollvm简介 ollvm
原创 2月前
62阅读
lowmemorykiller: Killing 'apps.searchlite' (27533:27533), adj 900,一、内容预览1、为什么引入LowmemoryKiller? 进程的启动分冷启动和热启动,当用户退出某一个进程的时候,并不会真正的将进程退出,而是将这个进程放到后台,以便下次启动的时候可以马上启动起来,这个过程名为热启动,这也是Android的设计理念之一。这
O-MVLL项目中代码混淆方式的实现细节 在介绍O-MVLL之前,首先介绍什么是代码混淆以及基于LLVM的代码混淆,O-MVLL项目正是基于此而开发来的。有关O-MVLL的概括介绍以及安装和基本使用方式,可参见另一篇随笔基于LLVM的代码混淆代码混淆是将代码转换成另一种功能上等价,但更难以阅读的形式,是一种对抗逆向工程的手段,也是一种保护源代码和程序的手段。
# 如何在Linux环境中为Android安装OLLVM ## 引言 OLLVM(Obfuscator-LLVM)是一个基于LLVM的工具链,专门用于代码混淆。通过对Android应用程序进行代码混淆,可以有效地保护应用程序的源代码,增强安全性。本文将指导你如何在Linux系统中安装OLLVM,并配置它以便在Android项目中使用。 ## 环境准备 在开始安装之前,请确保你的Linux环
原创 9天前
14阅读
 一、环境搭建:   系统:win10_X64   ndk版本:ndk-r12b(ndk-r12b后续版本也适用)   cmake-3.9.1-win64-x64.msi  用于针对不同编译器生成源代码构建文件,如使用VS则生成(.sln)等VS配置文件,如果使用gcc则生成(Makefile)   mingw-w64-install.exe  基
转载 2月前
96阅读
一、目标 李老板:奋飞呀,最近的so都混淆的很厉害呀,也没有啥通用的反混淆方法。一点都不好玩,之前你说的 D810 也不是很好使。 奋飞:我传你六字真言,打不过就加入。 搞不定反混淆,我们搞搞代码混淆
原创 2022-04-14 11:47:42
5298阅读
1评论
Author: GeneBlue 这里将会用两篇文章解释OLLVM混淆Android Native代码的方法和原理。篇一主要聚焦NDK中OLLVM的编译构建和主要混淆模式的使用,并简要解释各混淆模式的效果;篇二主要研究默认混淆模式的实现并尝试编写调试自定义Pass。 0X01 OLLVM简介 OLLVM(Obfuscator-LLVM)是瑞士西北应用科技大学安全实验室于2010年6月份发起的一个
转载 7月前
573阅读
工作线程:在android应用程序中,我们创建的Activity、Service、Broadcast等都是在主线程(UI线程)处理的,但一些比较耗时的操作,如I/O读写的大文件读写,数据库操作以及网络下载需要很长时间,为了不阻塞用户界面,出现ANR的响应提示窗口,这个时候我们可以考虑创建一个工作线程(继承Thread类或者实现Runnable接口)来解决。使用工作线程容易出现的问题:对于Andro
最近在学习Android开发,学到了使用AIDL进行Android的进程间通信,网上找了些视频资料看了下,都是基于eclipse的,而我使用的是AndroidStudio,那么在AndroidStudio中该如何实现呢?我参考了这哥们的文章,基本实现了两个app之间的通信,下面来看具体实现.新建了三个module,分别是:aidlmodels(放序列化model的,项目类型为Android Lib
转载 9月前
88阅读
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
445阅读
2评论
LLVM是编译器的框架系统,OLLVM(Obfuscator-LLVM):混淆JNI文件的一种工具OLLVM源码 : https://github.com/heroims/obfuscator/tree/llvm-8.0控制流平坦化平坦化是来重组原始代码执行流程,把原本易于阅读的代码流程重组成一个switch case形式的执行流程,所以被混淆的函数具有异常的控制流。指令替换使
原创 2021-07-09 10:13:38
671阅读
打开jadx,就发现了我们的老朋友数字壳典型的类抽取壳,直接上fart脱就完事了,我这里使用的是fart的frida脚本,省去了刷机的步骤这里的脱壳脚本,自行去github的寒冰大佬那边clone 一份下来,注意一点,就是fart.so和fart64.so copy在/data/local/tmp下,或者sdcard下,直接拷到/data/data下面,没权限,所以先做个过渡,先把文件放到我们能控
背景Apache Log4j2是项目中常用的Java日志框架。在2021年11月,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。在Log4j 2.15.0-rc2 版本之后,问题解决。但是部分项目由于历史代码原因,直接使用的Log4j2依赖包的类,在升级log4j2版本时,代码出现冲突,在这种情况下,我们可以log4j2转换为logback,在log4j2依赖不
近来用ollvm来编译一些代码,主要是需要对so进行一些混淆的操作,发现了一个bug,记录如下:代码段1jint begin_antidebug() {     pthread_t antidebugtid;     int ret = 0;   
原创 2014-10-15 17:30:49
3060阅读
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
120阅读
Android实现动态库的加载,一般需要调用android_dlopen_ext函数。函数源码:
原创 2022-07-09 00:27:24
1047阅读
好久没弄ollvm了,可以继续了,今天给ollvm新增了一个pass,用来加密字符串,这个pass是从别的库里面扒出来的。 本文是基于在Windows 上使用VS2017编译出来的ollvm,在这个基础上来添加。 第一步: 寻找两个pass的代码 头文件 1 #ifndef _STRING_OBFU
转载 2019-08-20 23:38:00
706阅读
2评论
简介:https://github.com/obfuscator-llvm/obfuscator/wiki/Control-
原创 2022-07-09 00:27:11
487阅读
  • 1
  • 2
  • 3
  • 4
  • 5