Skip to content
This repository was archived by the owner on Dec 4, 2024. It is now read-only.

Commit 3202a83

Browse files
committed
windows test pass
1 parent a245438 commit 3202a83

File tree

5 files changed

+24
-11
lines changed

5 files changed

+24
-11
lines changed

CHANGELOG.MD

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,10 @@ GUI 版本的使用和 CLI 版本基本一致,具体参考 README 文件
2020

2121
## 0.2
2222

23-
- todo
23+
更新日志:
24+
- 基于`gcc``nasm`支持`linux x86_64 (amd64)`
25+
- 使用`execstack``so`库修改堆栈可执行属性
26+
- 汇编中部分寄存器忘记恢复状态导致某些`JVM`崩溃
27+
- 修改`README`部分应该使用`-agentpath`启动
28+
- 优化重构`Java`层代码,抽出工具类等
29+
- 避免重复宏定义的问题

native/CMakeLists.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,18 @@ if (WIN32)
9393
add_executable(
9494
decrypt_test
9595
core_de.h
96+
core_en.h
9697
decrypt_test.c
9798
)
9899

99100
target_link_libraries(decrypt_test
100101
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/native_decrypt_asm.obj
101-
)
102+
)
103+
104+
target_link_libraries(decrypt_test
105+
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/native_encrypt_asm.obj
106+
)
107+
102108
else ()
103109
MESSAGE("THIS IS LINUX")
104110

@@ -172,6 +178,7 @@ else ()
172178
add_executable(
173179
decrypt_test
174180
core_de.h
181+
core_en.h
175182
decrypt_test.c
176183
)
177184

native/start.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ void JNICALL ClassDecryptHook(
7575
}
7676

7777
JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *vm) {
78-
LOG("UNLOAD AGENT");
78+
DE_LOG("UNLOAD AGENT");
7979
}
8080

8181
JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved) {
@@ -109,7 +109,7 @@ JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved) {
109109
}
110110

111111
if (value == NULL) {
112-
LOG("NEED PACKAGE_NAME PARAMS\n");
112+
DE_LOG("NEED PACKAGE_NAME PARAMS\n");
113113
return 0;
114114
}
115115

@@ -121,44 +121,44 @@ JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved) {
121121
printf("PACKAGE-LENGTH: %llu\n", strlen(PACKAGE_NAME));
122122

123123
jvmtiEnv *jvmti;
124-
LOG("INIT JVMTI ENVIRONMENT");
124+
DE_LOG("INIT JVMTI ENVIRONMENT");
125125
jint ret = (*vm)->GetEnv(vm, (void **) &jvmti, JVMTI_VERSION);
126126
if (JNI_OK != ret) {
127127
printf("ERROR: Unable to access JVMTI!\n");
128128
printf("PLEASE USE JVM VERSION 8");
129129
return ret;
130130
}
131-
LOG("INIT JVMTI CAPABILITIES");
131+
DE_LOG("INIT JVMTI CAPABILITIES");
132132
jvmtiCapabilities capabilities;
133133
(void) memset(&capabilities, 0, sizeof(capabilities));
134134

135135
capabilities.can_generate_all_class_hook_events = 1;
136136

137-
LOG("ADD JVMTI CAPABILITIES");
137+
DE_LOG("ADD JVMTI CAPABILITIES");
138138
jvmtiError error = (*jvmti)->AddCapabilities(jvmti, &capabilities);
139139
if (JVMTI_ERROR_NONE != error) {
140140
printf("ERROR: Unable to AddCapabilities JVMTI!\n");
141141
return error;
142142
}
143143

144-
LOG("INIT JVMTI CALLBACKS");
144+
DE_LOG("INIT JVMTI CALLBACKS");
145145
jvmtiEventCallbacks callbacks;
146146
(void) memset(&callbacks, 0, sizeof(callbacks));
147147

148-
LOG("SET JVMTI CLASS FILE LOAD HOOK");
148+
DE_LOG("SET JVMTI CLASS FILE LOAD HOOK");
149149
callbacks.ClassFileLoadHook = &ClassDecryptHook;
150150
error = (*jvmti)->SetEventCallbacks(jvmti, &callbacks, sizeof(callbacks));
151151
if (JVMTI_ERROR_NONE != error) {
152152
printf("ERROR: Unable to SetEventCallbacks JVMTI!\n");
153153
return error;
154154
}
155-
LOG("SET EVENT NOTIFICATION MODE");
155+
DE_LOG("SET EVENT NOTIFICATION MODE");
156156
error = (*jvmti)->SetEventNotificationMode(jvmti, JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL);
157157
if (JVMTI_ERROR_NONE != error) {
158158
printf("ERROR: Unable to SetEventNotificationMode JVMTI!\n");
159159
return error;
160160
}
161161

162-
LOG("INIT JVMTI SUCCESS");
162+
DE_LOG("INIT JVMTI SUCCESS");
163163
return JNI_OK;
164164
}

src/main/resources/decrypter.dll

0 Bytes
Binary file not shown.

src/main/resources/encryptor.dll

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)