Skip to content

Commit a799da5

Browse files
authored
Merge pull request #2 from CYRUS-STUDIO/main
同步更新
2 parents 0d7302d + 534db50 commit a799da5

File tree

591 files changed

+84901
-21
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

591 files changed

+84901
-21
lines changed

.idea/deploymentTargetSelector.xml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/gradle.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,26 @@
1818
- [Android 自定义变形 MD5 算法](https://cyrus-studio.github.io/blog/posts/android-%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%98%E5%BD%A2-md5-%E7%AE%97%E6%B3%95/)
1919
- [Android 自定义变形 SHA1 算法](https://cyrus-studio.github.io/blog/posts/android-%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%98%E5%BD%A2-sha1-%E7%AE%97%E6%B3%95/)
2020
- [Android 自定义变形 HMAC 算法](https://cyrus-studio.github.io/blog/posts/android-%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%98%E5%BD%A2-hmac-%E7%AE%97%E6%B3%95/)
21+
- [Android 中实现一个自定义的 AES 算法](https://cyrus-studio.github.io/blog/posts/android-%E4%B8%AD%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%84-aes-%E7%AE%97%E6%B3%95/)
22+
- [Android NDK 编译 so 文件 抹除导出符号 反逆向](https://cyrus-studio.github.io/blog/posts/android-ndk-%E7%BC%96%E8%AF%91-so-%E6%96%87%E4%BB%B6-%E6%8A%B9%E9%99%A4%E5%AF%BC%E5%87%BA%E7%AC%A6%E5%8F%B7-%E5%8F%8D%E9%80%86%E5%90%91/)
23+
- [Android 下的 ClassLoader 与 双亲委派机制](https://cyrus-studio.github.io/blog/posts/android-%E4%B8%8B%E7%9A%84-classloader-%E4%B8%8E-%E5%8F%8C%E4%BA%B2%E5%A7%94%E6%B4%BE%E6%9C%BA%E5%88%B6/)
24+
- [详解 Android APP 启动流程](https://cyrus-studio.github.io/blog/posts/%E8%AF%A6%E8%A7%A3-android-app-%E5%90%AF%E5%8A%A8%E6%B5%81%E7%A8%8B/)
25+
- [Android 加壳应用运行流程 与 生命周期类处理方案](https://cyrus-studio.github.io/blog/posts/android-%E5%8A%A0%E5%A3%B3%E5%BA%94%E7%94%A8%E8%BF%90%E8%A1%8C%E6%B5%81%E7%A8%8B-%E4%B8%8E-%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E7%B1%BB%E5%A4%84%E7%90%86%E6%96%B9%E6%A1%88/)
26+
- [Android APP 热修复原理](https://cyrus-studio.github.io/blog/posts/android-app-%E7%83%AD%E4%BF%AE%E5%A4%8D%E5%8E%9F%E7%90%86/)
27+
- [使用 Dex2C 加壳保护 Android APK 代码](https://cyrus-studio.github.io/blog/posts/%E4%BD%BF%E7%94%A8-dex2c-%E5%8A%A0%E5%A3%B3%E4%BF%9D%E6%8A%A4-android-apk-%E4%BB%A3%E7%A0%81/)
28+
- [ART 下 Dex 加载流程源码分析 和 通用脱壳点](https://cyrus-studio.github.io/blog/posts/art-%E4%B8%8B-dex-%E5%8A%A0%E8%BD%BD%E6%B5%81%E7%A8%8B%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E5%92%8C-%E9%80%9A%E7%94%A8%E8%84%B1%E5%A3%B3%E7%82%B9/)
29+
- [Android Native 函数 Hook 技术介绍](https://cyrus-studio.github.io/blog/posts/android-native-%E5%87%BD%E6%95%B0-hook-%E6%8A%80%E6%9C%AF%E4%BB%8B%E7%BB%8D/)
2130

2231

2332
# [cyrus.jks](cyrus.jks)
2433

25-
密钥 [cyrus.jks](cyrus.jks) 密码 cyrus_studio
34+
keystore 文件:[cyrus.jks](cyrus.jks)
35+
36+
alias:cyrus_studio
37+
38+
store password:cyrus_studio
39+
40+
key password:cyrus_studio
2641

2742
# 公众号
2843

app/build.gradle.kts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@ android {
88
namespace = "com.cyrus.example"
99
compileSdk = 34
1010

11+
signingConfigs {
12+
create("cyrus") {
13+
storeFile = rootProject.file("cyrus.jks")
14+
storePassword = "cyrus_studio"
15+
keyAlias = "cyrus_studio"
16+
keyPassword = "cyrus_studio"
17+
}
18+
}
19+
1120
defaultConfig {
1221
applicationId = "com.cyrus.example"
1322
minSdk = 26
@@ -38,7 +47,11 @@ android {
3847
}
3948

4049
buildTypes {
50+
debug {
51+
signingConfig = signingConfigs.getByName("cyrus")
52+
}
4153
release {
54+
signingConfig = signingConfigs.getByName("cyrus")
4255
isMinifyEnabled = false
4356
proguardFiles(
4457
getDefaultProguardFile("proguard-android-optimize.txt"),
@@ -55,12 +68,17 @@ android {
5568
}
5669
buildFeatures {
5770
compose = true
71+
prefab = true
5872
}
5973
ndkVersion = "27.1.12297006"
6074
}
6175

6276
dependencies {
6377
implementation(project(":vmp"))
78+
implementation(libs.libsu.core)
79+
implementation(libs.libsu.service)
80+
implementation(libs.libsu.nio)
81+
implementation(libs.shadowhook)
6482
implementation(libs.androidx.core.ktx)
6583
implementation(libs.androidx.lifecycle.runtime.ktx)
6684
implementation(libs.androidx.activity.compose)

app/src/main/AndroidManifest.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
<uses-permission android:name="android.permission.INTERNET" />
66
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
7+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
78

89
<application
10+
android:name=".CyrusStudioApplication"
911
android:allowBackup="true"
1012
android:dataExtractionRules="@xml/data_extraction_rules"
1113
android:debuggable="true"
@@ -16,6 +18,24 @@
1618
android:theme="@style/Theme.AndroidExample"
1719
tools:ignore="HardcodedDebugMode"
1820
tools:targetApi="31">
21+
<activity
22+
android:name=".root.RootActivity"
23+
android:exported="false" />
24+
<activity
25+
android:name=".hook.HookActivity"
26+
android:exported="false" />
27+
<activity
28+
android:name=".hotfix.HotFixActivity"
29+
android:exported="false" />
30+
<activity
31+
android:name=".plugin.PluginActivity"
32+
android:exported="true" />
33+
<activity
34+
android:name=".classloader.ClassLoaderActivity"
35+
android:exported="false" />
36+
<activity
37+
android:name=".aes.AESActivity"
38+
android:exported="false" />
1939
<activity
2040
android:name=".hmac.HMACActivity"
2141
android:exported="false" />

app/src/main/cpp/CMakeLists.txt

Lines changed: 81 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ find_library( # Sets the name of the path variable.
66
# Specifies the NDK library that you want CMake to locate.
77
log)
88

9-
# 全局启用指令替换、字符串加密
10-
add_definitions("-mllvm -sub -mllvm -sobf")
9+
# 全局启用指令替换
10+
add_definitions("-mllvm -sub")
1111

1212
## JNI示例 ##########################################################################################
1313

@@ -294,3 +294,82 @@ target_link_libraries(
294294
md5
295295
# 链接 sha256 库
296296
sha256)
297+
298+
## LibTomCrypt ##########################################################################################
299+
300+
# 添加 libtomcrypt 头文件路径
301+
include_directories(libtomcrypt/src/headers)
302+
303+
# 查找 libtomcrypt 所有的 C 文件
304+
file(GLOB LIBTOMCRYPT_SOURCES
305+
libtomcrypt/src/*.c
306+
libtomcrypt/src/misc/*.c
307+
libtomcrypt/src/misc/crypt/*.c
308+
libtomcrypt/src/ciphers/aes/*.c
309+
libtomcrypt/src/modes/cbc/*.c
310+
libtomcrypt/src/modes/cfb/*.c
311+
libtomcrypt/src/modes/ctr/*.c
312+
libtomcrypt/src/modes/ecb/*.c
313+
)
314+
315+
# 编译 LibTomCrypt
316+
add_library(libtomcrypt STATIC ${LIBTOMCRYPT_SOURCES})
317+
318+
## AES ##########################################################################################
319+
add_library( # 设置库的名称
320+
aes
321+
322+
# 设置库的类型
323+
SHARED
324+
325+
# 设置源文件路径
326+
aes_jni.cpp
327+
)
328+
329+
# 为 aes 动态库启用字符串加密
330+
target_compile_options(
331+
aes
332+
PRIVATE
333+
-mllvm -sobf)
334+
335+
# 抹除符号
336+
set_target_properties(aes PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/hide.map")
337+
338+
target_link_libraries(
339+
aes
340+
# 链接 log 库
341+
${log-lib}
342+
# 链接 LibTomCrypt
343+
libtomcrypt
344+
)
345+
346+
## CyrusStudioHook ##########################################################################################
347+
348+
find_package(shadowhook REQUIRED CONFIG)
349+
350+
add_library( # 设置库的名称
351+
cyrus_studio_hook
352+
353+
# 设置库的类型
354+
SHARED
355+
356+
# 设置源文件路径
357+
cyrus_studio_hook.cpp
358+
)
359+
360+
# 为 cyrus_studio_hook 动态库启用字符串加密
361+
target_compile_options(
362+
cyrus_studio_hook
363+
PRIVATE
364+
-mllvm -sobf)
365+
366+
# 抹除符号
367+
set_target_properties(aes PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/hide.map")
368+
369+
target_link_libraries(
370+
cyrus_studio_hook
371+
# 链接 log 库
372+
${log-lib}
373+
# 链接 shadowhook
374+
shadowhook::shadowhook
375+
)

0 commit comments

Comments
 (0)