Giter Club home page Giter Club logo

hikaricore's Introduction

Hikari

Fork of the core LLVM Obfuscation Library of Hikari.

This version is as an LLVM plugin.

Usage example: clang -Xclang -load -Xclang ./libLLVMObfuscation.so

License

Please refer to LICENSE.md.

Note that this license overrides any artifact left in the source code.

hikaricore's People

Contributors

leadroyal avatar naville avatar nullpixel avatar tempissueswriter avatar woachk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hikaricore's Issues

substrate

Is it possible to use the release build dylibs to compile a substrate tweak? If so, would I have to patch with optool and which dylib would need patching?

Theos compatible?

Would this be possible to use with Theos to obfuscate some code? I discovered Hikari not long ago but arm64e support isn't added and don't have enough LLVM knowledge to rewrite the project myself.

Running FunctionWrapper fails many times

As you can see in the image below the clang-9 failed when i run make in theos for the first time but if i run make again and again it works after the 2nd or the 3rd try

Here's Theos makefile and yes it's libBnzLLVMObfuscationHook as i compiled it with Bnz prefix

GO_EASY_ON_ME=1
DEBUG=1
PACKAGE_VERSION = 1.0
ARCHS = arm64

THEOS_DEVICE_IP=192.168.1.456


export TARGET_CC= /usr/local/opt/llvm@9/bin/clang
export TARGET_CXX = /usr/local/opt/llvm@9/bin/clang
export TARGET_LD = /usr/local/opt/llvm@9/bin/clang

SDKVERSION = 13.5
SYSROOT = $(THEOS)/sdks/iPhoneOS13.5.sdk

include $(THEOS)/makefiles/common.mk

TWEAK_NAME = TestTweak

TestTweak_FILES = Tweak.xm
TestTweak_FILES += $(wildcard *.m)

TestTweak_CFLAGS = -fobjc-arc -O0 -Xclang -load -Xclang /Users/imokhles/.hikari/libBnzLLVMObfuscationHook.dylib 
TestTweak_CFLAGS += -mllvm -enable-strcry -mllvm -enable-funcwra

TestTweak_LDFLAGS += -F$(SYSROOT)/System/Library/Frameworks -framework UIKit -framework Foundation


include $(THEOS_MAKE_PATH)/tweak.mk

Here's the error

Capture d’écran 2021-02-17 à 06 54 35

Any suggest ?

Compiler Flags not working when loading into Clang

Using the steps listed below, I've attempted to build and inject this version of Hikari into an Xcode 11.7 Toolchain.
See the images below for reference: After completing all the steps I've listed, Hikari "works", but I'm unable to pass any of the command line arguments to clang.

I've done the following steps, I'm not sure where I made a mistake:

  • Compile this repository from source
  • Move libLLVMObfuscationHook.dylib, libLLVMObfuscationDeps.dylib, and libsubstitute.dylib it into an Xcode toolchain from 11.7
  • Using a compiled version of insert_dylib I ran the following 2 commands from within the Xcode toolchain's usr/bin directory
  • insert_dylib --inplace @executable_path/libLLVMObfuscationDeps.dylib clang & insert_dylib --inplace @executable_path/libLLVMObfuscationHook.dylib clang

image

image

error: Symbol not found: __ZTIN4llvm10CallbackVHE

I built the library in the environment below

  • osx : Catalina 10.15.6
  • xcode : 12.1
  • Separate clang installation as libLLVMObfuscation is not built in clang 12 version (xcode 12.1 toolchain)
    clang version 10.0.1 (https://github.com/llvm/llvm-project.git ef32c611aa214dea855364efd7ba451ec5ec3f74)
    Target: x86_64-apple-darwin19.6.0
    Thread model: posix

The following error occurs after executing the libLLVMObfuscation test built with clang 10

1

2

Untitled

Hey:
Regarding the Post LLVM9 support. You'll just have to edit how you initialize Legacy PMB.
Example:
Remove Hikari's Obfuscation.cpp, register passes as-is into LegacyPassManagerBuilder and instead of createSwitchPass() and run it, just add lowerswitch pass before the pass calling it into the pipeline.

For example, the old method was MPM.add(createObfuscationPass()), instead of that , you should write MPM.add(createLowerSwitchPass()); MPM.add(createFlatteningPass())

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.