ollvm
文章平均质量分 54
ollvm
showme#
good job
展开
-
07-ollvm源码分析
在进行控制流程平坦化操作时,实际执行了两个PasscreateLowerSwitchPass();createFlattening(Flattening);测试代码最原始的IRentry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 %argv.addr = alloca i8**, align 8 store i32 0, i32* %retval, align 4 store i32 %ar原创 2021-02-23 12:45:03 · 341 阅读 · 0 评论 -
06-将ollvm移植到NDK
1、将ollvm移植到llvm源码中2、将llvm编译:Release版本3、下载androidNDK,将编译的Relase版本的bin,lib,include目录复制到androidNDK的android-ndk/toolchains/llvm/prebuilt/linux-86_64/目录下,并合并4、android studio项目,在Gradle Scripts目录下的local.properties文件中添加ndk.dir=步骤3中配置的ndk路径5、在cpp目录下的CMakeLists.原创 2021-02-07 23:25:33 · 756 阅读 · 0 评论 -
05-如何在llvm源码之外调试ollvm
1、先编译一份 llvm2、clion 配置 :选择目标 :LLVMObfuscation可执行文件 : 选择llvm编译生成的clang-9主动配置错误:int* err = (int*)0;*err = 1;参数 :clang -Xclang -load -Xclang /home/showme/androidSec/llvm/outLLVMPass/back/ollvm/testOutllvmPass/cmake-build-debug/ollvm/lib/Transforms/Ob原创 2021-02-07 09:52:14 · 294 阅读 · 0 评论 -
04-在llvm源码之外移植ollvm
.|-- CMakeLists.txt`-- ollvm |-- CMakeLists.txt |-- include | `-- llvm | |-- CryptoUtils.h | `-- Transforms | `-- Obfuscation | |-- BogusControlFlow.h | |-- Flattening.h原创 2021-02-07 08:14:20 · 305 阅读 · 1 评论 -
03-ollvm相关-Pass移植-将ollvm移植到llvm源码中
移植ollvmOLLVM项目代码在 https://github.com/obfuscator-llvm/obfuscatorgithub中,ollvm是基于llvm4.0进行开发的,下图中 initial LLVM and Clang4.0是llvm原始的代码,其他的都是ollvm修改的代码,我们需要把这些修改的代码,复制到自己llvm项目中。需要修改的内容如下ollvm4.0llvm-project-9.0.11obfuscator/include/llvm/Trans原创 2021-02-07 07:09:23 · 719 阅读 · 0 评论 -
02-ollvm相关Pass移植-使用大佬配置好的
快捷:直接用leadroyal大佬打包好的参考链接 : https://www.leadroyal.cn/?p=659git clone https://github.com/LeadroyaL/llvm-pass-tutorial.gitclion 打开项目,修改一下顶层的CMakeLists.txtcmake_minimum_required(VERSION 3.4)project(llvm-pass-tutorial)# 设置一下 LLVM_DIR ,就是自己编译的llvm的生成目录s原创 2021-02-07 07:05:09 · 353 阅读 · 1 评论 -
01-自定义Pass
自定义LLVM PassLLVM实现了一系列的分析和转换Pass,所有的LLVM Pass都是pass类的子类,并且通过覆写了从pass类继承的虚函数以实现其功能。任何一个Pass都是Pass LLVM的实例先看看最简单的Pass一般,用户自定义的Pass放在llvm-project-9.0.1/llvm/lib/Transforms 目录下在Transforms目录下有一个Hello目录,这是一个demo Pass[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b原创 2021-02-07 07:03:26 · 749 阅读 · 0 评论 -
00-llvm环境搭建
使用的ubuntu20.048核16G内存固态硬盘设置的交换空间sudo swapoff /swapfilesudo dd if=/dev/zero of=/swapfile bs=1GB count=20sudo mkswap /swapfilesudo swapon /swapfileapt 替换为国内更新源deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb http原创 2021-02-07 07:01:45 · 495 阅读 · 0 评论