Apache License 2.0

项目介绍

asLody/whale 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 Apache License 2.0 许可证,目前获得 1.7k 个 Star、339 次 Fork。

仓库全名
asLody/whale
开源许可证
Apache License 2.0
Star 数
1.7k
Fork 数
339
未关闭 Issue
50

README 摘要

Whale Chinese Version Overview Whale is a cross-platform Hook Framework, allowed to run Android、IOS、Linux、MacOS. Whale support both ARM/THUMB, ARM64, X86, X8664 (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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

whale 用什么语言开发?

主要使用 C++ 编写,采用 Apache License 2.0 许可证,目前有 1.7k 个 Star。

whale 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 whale 的源码?

可以直接克隆仓库:git clone https://github.com/asLody/whale.git,默认分支为 master;安装与运行步骤见仓库 README。

whale 最近还在维护吗?

仓库最近一次更新为 2020年12月13日,当前有 50 个未关闭 Issue;Star 数为 1.7k,可作为社区活跃度的参考。

简要分析

热度分
2421
价值分
1106
活跃状态
活跃

语言占比

Assembly
C
C++
CMake
Java

README

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

  • Android 5.0.0
  • Android 5.1.1
  • Android 6.0
  • Android 6.0.1
  • Android 7.1.2
  • Android 8.1.0
  • Android 9.0.0
  • IOS 11.3
  • IOS 12.0
  • 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]

评论

暂无评论