Code Monkey home page Code Monkey logo

android-ndk-r17-ollvm's Introduction

android-ndk-r17-ollvm 阿夜

clang 9.0.1 的 编译工具链

使用方法 (必要组件)

  • 安装termux 不知道的动脑子百度
  • 手机Root
  • 懂中文,看到的Chinese就行
  • github里面也有一份 很久之前录的视频 请傻瓜式操作

注意事项

  1. 本编译链 使用了已发布的aarch64的编译链进行部分删减以及修改 使用该编译链后果由使用者自行承担 作者不参与以及增加恶意代码
  2. 编译链 目前分两个版本 开源于github的 为免费版本 免费版本和定制版本功能一样 无区别 只是编译时 describe 可以修改为定制 非专业人士,以及只需要简单的混淆加密 so/二进制 的作者 可不用关心
  3. 当前版本使用 只需配合编译脚本使用即可

安装方法

  1. 安装termux(然后更新一下配置 update upgrade 不懂得百度)
pkg updata # 更新源列表
pkg upgrade # 更新源
  1. 完成安装后下载对应的 android-ndk-r17-ollvm.zip
  2. 使用mt管理器 移动文件至 /data/data/com.termux/files/home/
  3. 修过编译连文件权限 7777
chmod 7777 android-ndk-r17-ollvm.zip
  1. 打开termux终端 使用unzip
unzip android-ndk-r17-ollvm.zip

命令解压 如果报错没有找到unzip 安装即可

pkg install unzip
  1. 解压完成当前目录生成 android-ndk-r17 然后已经完成了一半了
  2. 使用脚本编译就行,带脚本的ndk-build编译包自行下载 执行build.sh即可

具体编译指令

LOCAL_PATH := $(call my-dir)

# 定义一个函数用于编译不同的模块
define build_module
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $1
LOCAL_MODULE := $2

LOCAL_LDFLAGS += -llog -landroid

# 浅混淆 
#LOCAL_CPPFLAGS += -mllvm -sub -mllvm -fla -mllvm -split -mllvm -bcf -mllvm -sobf -mllvm -aesSeed=0x345678EDCRFVTGBYHNUJMIKOLPloveal
#LOCAL_CPPFLAGS += -mllvm -sub -mllvm -sub_loop=4 -mllvm -fla -mllvm -split -mllvm -split_num=4 -mllvm -bcf -mllvm -bcf_loop=2 -mllvm -bcf_prob=50 -mllvm -sobf -mllvm -aesSeed=0x345678EDCRFVTGBYHNUJMIKOLPloveal
LOCAL_CPPFLAGS += -std=c++14 -frtti -fexceptions -DANDROID_TOOLCHAIN=clang -ffunction-sections -fdata-sections -fpermissive -fvisibility=hidden -D__STDC_CONSTANT_MACROS -llog
LOCAL_CFLAGS += -fomit-frame-pointer -funroll-loops -ffast-math -fno-strict-aliasing -march=armv8-a+crc+crypto -mtune=cortex-a53 -mfpu=neon-fp-armv8 -ffunction-sections -fdata-sections -O3 -fomit-frame-pointer

include $(BUILD_EXECUTABLE)
endef

# 编译不同的模块
$(eval $(call build_module,加密样本.cpp,加密混淆))

关键命令 剩下的就交给脚本 build.sh
-mllvm -sub -mllvm -sub_loop=4 -mllvm -fla -mllvm -split -mllvm -split_num=4 -mllvm -bcf -mllvm -bcf_loop=2 -mllvm -bcf_prob=50 -mllvm -sobf -mllvm -aesSeed=0x345678EDCRFVTGBYHNUJMIKOLPloveal
不懂就百度

脚本解析

# 配置环境变量  /data/data/com.termux/files/home/android-ndk-r17/ 这个一定是自己解压后的文件目录 跟着教程走就一定是这个目录
export PATH=/data/data/com.termux/files/home/android-ndk-r17/:$PATH
echo "配置环境变量完成..."
#echo $PATH
ndk-build clean
echo "清理编译残留完成..."
ndk-build
echo "构建程序完成..."

运行结果

配置环境变量完成...
[arm64-v8a] Clean          : c++_shared [arm64-v8a]
[arm64-v8a] Clean          : c++_static [arm64-v8a]
[arm64-v8a] Clean          : c++abi [arm64-v8a]
[arm64-v8a] Clean          : 加密混淆 [arm64-v8a]
清理编译残留完成...
[arm64-v8a] Compile++      : 加密混淆 <= 加密样本.cpp
[arm64-v8a] Executable     : 加密混淆
[arm64-v8a] Install        : 加密混淆 => libs/arm64-v8a/加密混淆
构建程序完成...

大概成功就这样子

Alt text

混淆对比

无混淆

Alt text

浅混淆

Alt text

深度混淆 (放大图)

Alt text

深度混淆(鸟瞰图)

Alt text

  • 非常变态

最后 觉得还行就给个 start 关注一下 反馈邮箱 [email protected]

Alt text

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.