All Projects → asLody → Whale

asLody / Whale

Licence: apache-2.0
Hook Framework for Android/IOS/Linux/MacOS

Projects that are alternatives of or similar to Whale

Mull
Practical mutation testing tool for C and C++
Stars: ✭ 536 (-52.48%)
Mutual labels:  jit
Ravi
Ravi is a dialect of Lua, featuring limited optional static typing, JIT and AOT compilers
Stars: ✭ 798 (-29.26%)
Mutual labels:  jit
Nativejit
A C++ expression -> x64 JIT
Stars: ✭ 999 (-11.44%)
Mutual labels:  jit
Potion
_why the lucky stiff's little language (the official repo... until _why returns)
Stars: ✭ 586 (-48.05%)
Mutual labels:  jit
Inkwell
It's a New Kind of Wrapper for Exposing LLVM (Safely)
Stars: ✭ 732 (-35.11%)
Mutual labels:  jit
Hr4r
Example project - "Hot Reloading 4 RequireJS" front-end web applications & some extra code demonstrating hot-reloading for Node.js Express servers
Stars: ✭ 28 (-97.52%)
Mutual labels:  jit
Libxsmm
Library for specialized dense and sparse matrix operations, and deep learning primitives.
Stars: ✭ 518 (-54.08%)
Mutual labels:  jit
Llvm Hs Examples
Examples for Haskell bindings to LLVM
Stars: ✭ 51 (-95.48%)
Mutual labels:  jit
Tinycc
Unofficial mirror of mob development branch
Stars: ✭ 784 (-30.5%)
Mutual labels:  jit
Llvm Tutorial Standalone
DEPRECATED (Use: https://github.com/llvm-hs/llvm-hs-kaleidoscope )
Stars: ✭ 38 (-96.63%)
Mutual labels:  jit
Zetavm
Multi-Language Platform for Dynamic Programming Languages
Stars: ✭ 592 (-47.52%)
Mutual labels:  jit
Revise.jl
Automatically update function definitions in a running Julia session
Stars: ✭ 705 (-37.5%)
Mutual labels:  jit
Parcel Plugin Angular
Complete Angular support for Parcel
Stars: ✭ 29 (-97.43%)
Mutual labels:  jit
Moarvm
A VM with adaptive optimization and JIT compilation, built for Rakudo
Stars: ✭ 537 (-52.39%)
Mutual labels:  jit
Leekscript V2
A dynamically typed, compiled just-in-time programming language used in Leek Wars' AIs
Stars: ✭ 46 (-95.92%)
Mutual labels:  jit
Wasmtime
Standalone JIT-style runtime for WebAssembly, using Cranelift
Stars: ✭ 6,413 (+468.53%)
Mutual labels:  jit
Blend2d
2D Vector Graphics Engine Powered by a JIT Compiler
Stars: ✭ 859 (-23.85%)
Mutual labels:  jit
Wasmjit
Small Embeddable WebAssembly Runtime
Stars: ✭ 1,063 (-5.76%)
Mutual labels:  jit
B2dpipe
2D Pipeline Compiler.
Stars: ✭ 51 (-95.48%)
Mutual labels:  jit
Rustpython
A Python Interpreter written in Rust
Stars: ✭ 10,261 (+809.66%)
Mutual labels:  jit

Whale

logo

Chinese Version

license

Overview

Whale is a cross-platform Hook Framework, allowed to run Android、IOS、Linux、MacOS. Whale support both ARM/THUMB, ARM64, X86, X86_64 (AMD64), This covers almost all the major devices available today.

Feature

Android

  • Xposed-Style Method Hook
  • Modify the inheritance relationship between classes at runtime
  • Modifies the class to which the object belongs at runtime
  • bypass Hidden API Policy

Darwin/Linux Platforms

  • Internal symbol resolver
  • Native Hook

IOS Restrictions

InlineHook on IOS is only usable in debug compile mode on non-jailbreak devices. Release compilation mode will not work properly.

To solve this problem,Whale will provide a new core named Binary Static Inline Hook.

Binary Static Inline Hook will open source in the near future.

What can you do with it?

  • Turn on the god mode of an app
  • The act of monitoring or tampering with app
  • Instant hotfix
  • SandBox
  • Inject to system and instead of Xposed

Compatibility

  • [x] Android 5.0.0
  • [x] Android 5.1.1
  • [x] Android 6.0
  • [x] Android 6.0.1
  • [x] Android 7.1.2
  • [x] Android 8.1.0
  • [x] Android 9.0.0
  • [x] IOS 11.3
  • [x] IOS 12.0
  • [x] MacOS mojave (10.14)
  • (Not in the list means untested

InlineHook

For pcrel instruction, Whale will convert it to pc-independent instruction, If the Hook procedure have not convert instructions, please feedback to issue.

About Jit

Whale has a built-in Jit Engine, When you have more advanced Hook requirements, you can directly generate executable instructions in memory through the Jit. There is no longer the need to generate ugly hard code through tools as before.

Compile

We have pre-built binary versions of Android & IOS. You can find them in the built directory.

Whale uses CMake to build projects, so you need to install CMake on your system.

Android

  1. If you need to use Java Hook please copy java folder to your project.

  2. Direct use of binary,You just copy the files under built/Android to src/main/jniLibs in your project.

  3. If you need to compile the source code, specify CMakeLists.txt in build.gradle:

externalNativeBuild {
  cmake {
      path "your/whale/path/CMakeLists.txt"
  }
}

IOS

cd toolchain

cmake .. \
-DCMAKE_TOOLCHAIN_FILE=ios.toolchain.cmake \
-DIOS_PLATFORM=OS64 \
-DPLATFORM=IOS \
-DIOS_ARCH=arm64 \
-DENABLE_ARC=0 \
-DENABLE_BITCODE=0 \
-DENABLE_VISIBILITY=0 \
-DIOS_DEPLOYMENT_TARGET=9.3 \
-DSHARED=ON \
-DCMAKE_BUILD_TYPE=Release

make -j4

Ohter platforms

cmake .
make -j4

Technogy communication

GOTO => Discord

Email: [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].