首页
社区
课程
招聘
[推荐]Safengine LLVM DEMO - Android SO库加密终极武器发布(有下载,可无限制离线测试)
发表于: 2014-12-7 23:04 32939

[推荐]Safengine LLVM DEMO - Android SO库加密终极武器发布(有下载,可无限制离线测试)

2014-12-7 23:04
32939
【推荐】Safengine LLVM DEMO - Android SO库加密终极武器发布
(有下载,可无限制离线测试)


Safengine LLVM 基于 LLVM/Clang,在编译过程中对代码进行加密混淆处理,轻松满足跨平台、多系统环境下的安全需求。

您仅需标记需要保护的代码片段,并使用 Safengine LLVM 编译代码,即可完成保护。
此过程无需联网、上传,并且与开发环境无缝集成,支持源码级调试、设备模拟器及错误反馈。


我们使用最新的 LLVM/Clang 代码,支持最新 C++ 标准,并集成开发环境自带编译器的特性,
可完美替代原有编译器,生产出更高效、更稳定的应用程序。

安装步骤:
1.安装NDK(NDK版本r10c或更新)
2.解压se-llvm-ndk.7z
3.将se-llvm\prebuilt覆盖至NDK安装目录toolchains\llvm-3.5\prebuilt中

使用方法:
1.在JNI项目的Application.mk中增加NDK_TOOLCHAIN_VERSION := clang3.5
2.根据需要在代码中增加SDK标记
  代码顶层:#pragma obfuscate on/off 加密编译该区域中的所有函数
  函数声明:__attribute((obfuscate)) 加密编译该函数
3.执行ndk-build编译(使用-B重新编译项目)

例子:
    #include <stdio.h>
    #pragma obfuscate on
    int main(int argc, char **argv) {
        UNUSED(argc);UNUSED(argv);
        printf("Hello, World!");
    }
    #pragma obfuscate off


用编译选项来标记处理区域
#pragma obfuscate on
#pragma obfuscate off
编译后结果:

	.section	__TEXT,__text,regular,pure_instructions
	.ios_version_min 5, 0
	.section	__TEXT,__textcoal_nt,coalesced,pure_instructions
	.section	__TEXT,__const_coal,coalesced
	.section	__TEXT,__picsymbolstub4,symbol_stubs,none,16
	.section	__TEXT,__StaticInit,regular,pure_instructions
	.section	__TEXT,__cstring,cstring_literals
	.syntax unified
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_main
	.align	2
_main:
	push	{r4, r5, r6, r7, lr}
	add	r7, sp, #12
	push	{r8, r10, r11}
	sub	sp, sp, #84
	ldr	r0, LCPI0_169
	mvn	r8, #1
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	mov	r11, #114
LPC0_0:
	ldr	r0, [pc, r0]
	ldr	r0, [r0]
	ldr	r0, [r0]
	str	r0, [r7, #-32]
	ldr	r5, LCPI0_170
LPC0_1:
	ldr	r5, [pc, r5]
	ldr	r0, [r5]
	ldr	r10, LCPI0_171
LPC0_2:
	ldr	r10, [pc, r10]
	ldr	r1, [r10]
	ldr	r2, LCPI0_0
	str	r2, [r10]
	rsb	r2, r1, #0
	ldr	r3, LCPI0_1
	sub	r2, r3, r2
	mul	r3, r2, r1
	mov	r2, #0
	mvn	r1, r3
	orr	r1, r1, r8
	cmn	r1, #1
	mul	r1, r3, r0
	moveq	r2, #1
	str	r1, [r7, #-100]
	strb	r2, [r7, #-101]
	ldr	r0, LCPI0_2
	ldr	r1, LCPI0_172
LPC0_3:
	ldr	r1, [pc, r1]
	add	r1, r1, #13
	str	r1, [r7, #-108]
	b	LBB0_2
LBB0_1:
	ldr	r1, LCPI0_7
	cmp	r0, r1
	ldreq	r0, LCPI0_173
LBB0_2:
	ldr	r1, LCPI0_3
	cmp	r0, r1
	bgt	LBB0_6
	ldr	r1, LCPI0_174
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_175
	str	r0, [r5]
	ldr	r1, LCPI0_7
	ldr	r0, LCPI0_79
	ldrb	r2, [r7, #-78]
LBB0_5:
	cmp	r2, #0
	movne	r0, r1
	b	LBB0_2
LBB0_6:
	ldr	r1, LCPI0_4
	cmp	r0, r1
	bgt	LBB0_17
	ldr	r1, LCPI0_6
	cmp	r0, r1
	bgt	LBB0_1
	ldr	r1, LCPI0_8
	cmp	r0, r1
	bgt	LBB0_20
	ldr	r1, LCPI0_10
	cmp	r0, r1
	bgt	LBB0_22
	ldr	r1, LCPI0_12
	cmp	r0, r1
	bgt	LBB0_25
	ldr	r1, LCPI0_14
	cmp	r0, r1
	bgt	LBB0_27
	ldr	r1, LCPI0_16
	cmp	r0, r1
	bgt	LBB0_30
	ldr	r1, LCPI0_18
	cmp	r0, r1
	bgt	LBB0_32
	ldr	r1, LCPI0_20
	cmp	r0, r1
	bgt	LBB0_34
	ldr	r1, LCPI0_93
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_106
	str	r0, [r5]
	ldr	r1, LCPI0_67
	ldr	r0, LCPI0_86
	ldrb	r2, [r7, #-77]
	b	LBB0_5
LBB0_17:
	ldr	r1, LCPI0_5
	cmp	r0, r1
	bne	LBB0_2
	sub	r0, sp, #16
	mov	sp, r0
	str	r0, [r7, #-96]
	ldr	r0, [r7, #-96]
	strb	r6, [r0, #12]
	ldr	r0, [r7, #-96]
	strb	r4, [r0, #1]
	ldr	r0, [r7, #-96]
	strb	r11, [r0, #9]
	ldr	r0, [r7, #-96]
	strb	lr, [r7, #-87]
	ldr	r1, [r10]
	add	r0, r0, #2
	str	r0, [r7, #-92]
	ldr	r0, [r5]
	ldr	r2, LCPI0_176
	str	r2, [r10]
	ldr	r2, LCPI0_177
	add	r2, r1, r2
	mul	r3, r2, r1
	eor	r1, r3, r8
	tst	r1, r3
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-86]
	eor	r1, r3, r0
	and	r0, r3, r0
	ldr	r2, LCPI0_178
	ldr	r3, LCPI0_61
	orr	r1, r0, r1
	ldr	r0, LCPI0_71
LBB0_19:
	cmp	r1, r2
	movhi	r0, r3
	b	LBB0_2
LBB0_20:
	ldr	r1, LCPI0_9
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_105
	str	r0, [r5]
	ldr	r1, LCPI0_82
	ldr	r0, LCPI0_86
	ldrb	r2, [r7, #-70]
	b	LBB0_5
LBB0_22:
	ldr	r1, LCPI0_11
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-40]
	mov	r1, #231
	ldrb	r0, [r0]
	bic	r1, r1, r0
	and	r0, r0, #24
	orr	r0, r1, r0
	ldr	r1, [r7, #-48]
	eor	r0, r0, #33
	strb	r0, [r1]
	ldr	r0, [r7, #-96]
	bl	_printf
	ldr	r0, [r5]
	ldr	r1, [r10]
	ldr	r2, LCPI0_111
	mov	r4, #101
	mov	r6, #33
	mov	lr, #108
	str	r2, [r10]
	rsb	r2, r1, #0
	ldr	r3, LCPI0_112
	sub	r2, r3, r2
	mul	r3, r2, r1
	mvn	r1, r3
	eor	r0, r0, r3
	orr	r1, r1, r8
	cmn	r1, #1
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-33]
	bic	r1, r3, r0
	ldr	r2, LCPI0_113
	ldr	r3, LCPI0_90
	ldr	r0, LCPI0_84
LBB0_24:
	cmp	r1, r2
	movlt	r0, r3
	b	LBB0_2
LBB0_25:
	ldr	r1, LCPI0_13
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r5]
	ldr	r1, [r10]
	ldr	r2, LCPI0_156
	str	r2, [r10]
	ldr	r2, LCPI0_157
	add	r2, r1, r2
	mul	r3, r2, r1
	eor	r1, r3, r8
	tst	r1, r3
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-85]
	ldr	r2, LCPI0_158
	eor	r1, r3, r0
	and	r0, r3, r0
	ldr	r3, LCPI0_85
	orr	r1, r0, r1
	ldr	r0, LCPI0_74
	cmp	r1, r2
	moveq	r0, r3
	b	LBB0_2
LBB0_27:
	ldr	r1, LCPI0_15
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r5]
	ldr	r1, [r10]
	ldr	r2, LCPI0_114
	str	r2, [r10]
	ldr	r2, LCPI0_115
	add	r2, r1, r2
	mul	r3, r2, r1
	eor	r1, r3, r8
	tst	r1, r3
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-34]
	eor	r1, r3, r0
	and	r0, r3, r0
	ldr	r2, LCPI0_116
	ldr	r3, LCPI0_92
	orr	r1, r0, r1
	ldr	r0, LCPI0_11
LBB0_29:
	cmp	r1, r2
	movgt	r0, r3
	b	LBB0_2
LBB0_30:
	ldr	r1, LCPI0_17
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_101
	str	r0, [r5]
	ldr	r1, LCPI0_57
	ldr	r0, LCPI0_91
	ldrb	r2, [r7, #-50]
	b	LBB0_5
LBB0_32:
	ldr	r1, LCPI0_19
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r5]
	ldr	r1, [r10]
	ldr	r2, LCPI0_138
	str	r2, [r10]
	ldr	r2, LCPI0_139
	add	r2, r1, r2
	mul	r3, r2, r1
	eor	r1, r3, r8
	tst	r1, r3
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-61]
	mul	r1, r3, r0
	ldr	r2, LCPI0_140
	ldr	r3, LCPI0_76
	ldr	r0, LCPI0_89
	b	LBB0_24
LBB0_34:
	ldr	r1, LCPI0_21
	cmp	r0, r1
	bgt	LBB0_37
	ldr	r1, LCPI0_92
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_96
	str	r0, [r5]
	ldr	r1, LCPI0_11
	ldr	r0, LCPI0_77
	ldrb	r2, [r7, #-34]
	b	LBB0_5
LBB0_37:
	ldr	r1, LCPI0_22
	cmp	r0, r1
	bgt	LBB0_40
	ldr	r1, LCPI0_91
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-68]
	mov	r1, #171
	strb	r1, [r0]
	ldr	r0, [r7, #-96]
	ldr	r0, LCPI0_89
	b	LBB0_2
LBB0_40:
	ldr	r1, LCPI0_23
	cmp	r0, r1
	bgt	LBB0_43
	ldr	r1, LCPI0_90
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_95
	str	r0, [r5]
	ldr	r1, LCPI0_84
	ldr	r0, LCPI0_77
	ldrb	r2, [r7, #-33]
	b	LBB0_5
LBB0_43:
	ldr	r1, LCPI0_24
	cmp	r0, r1
	bgt	LBB0_46
	ldr	r1, LCPI0_89
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-68]
	mov	r1, #171
	strb	r1, [r0]
	ldr	r0, [r7, #-96]
	ldr	r1, [r10]
	add	r0, r0, #13
	str	r0, [r7, #-60]
	ldr	r0, [r7, #-108]
	str	r0, [r7, #-56]
	ldr	r0, [r5]
	ldr	r2, LCPI0_135
	str	r2, [r10]
	rsb	r0, r0, #0
	ldr	r2, LCPI0_136
	add	r2, r1, r2
	mul	r3, r2, r1
	eor	r1, r3, r8
	sub	r0, r0, r3
	tst	r1, r3
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-50]
	ldr	r2, LCPI0_137
	rsb	r1, r0, #0
	ldr	r3, LCPI0_17
	ldr	r0, LCPI0_57
	b	LBB0_29
LBB0_46:
	ldr	r1, LCPI0_25
	cmp	r0, r1
	bgt	LBB0_49
	ldr	r1, LCPI0_88
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_98
	str	r0, [r5]
	ldr	r1, LCPI0_66
	ldr	r0, LCPI0_78
	ldrb	r2, [r7, #-41]
	b	LBB0_5
LBB0_49:
	ldr	r1, LCPI0_26
	cmp	r0, r1
	bgt	LBB0_52
	ldr	r1, LCPI0_87
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r5]
	ldr	r1, [r10]
	ldr	r2, LCPI0_130
	mov	r6, #33
	str	r2, [r10]
	ldr	r2, LCPI0_131
	add	r2, r1, r2
	mul	r3, r2, r1
	mvn	lr, r3
	orr	r2, lr, r8
	cmn	r2, #1
	mov	r2, #0
	moveq	r2, #1
	strb	r2, [r7, #-49]
	ldr	r2, LCPI0_132
	ldr	r1, LCPI0_133
	and	r4, r0, r2
	bic	r12, r1, r0
	mvn	r0, r0
	and	r2, r3, r2
	bic	r1, r1, r3
	orr	r0, lr, r0
	orr	r12, r12, r4
	orr	r1, r1, r2
	ldr	r2, LCPI0_134
	ldr	r3, LCPI0_64
	mov	r4, #101
	mov	lr, #108
	eor	r1, r1, r12
	mvn	r0, r0
	orr	r1, r1, r0
	ldr	r0, LCPI0_63
	b	LBB0_19
LBB0_52:
	ldr	r1, LCPI0_27
	cmp	r0, r1
	bgt	LBB0_55
	ldr	r1, LCPI0_86
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-84]
	ldrb	r1, [r7, #-79]
	strb	r1, [r0]
	mov	r1, #32
	ldr	r0, [r7, #-96]
	strb	r1, [r0, #6]
	mov	r1, #111
	ldr	r0, [r7, #-96]
	strb	r1, [r0, #8]
	ldr	r0, [r7, #-96]
	ldr	r0, LCPI0_67
	b	LBB0_2
LBB0_55:
	ldr	r1, LCPI0_28
	cmp	r0, r1
	bgt	LBB0_58
	ldr	r1, LCPI0_85
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_108
	str	r0, [r5]
	ldr	r1, LCPI0_74
	ldr	r0, LCPI0_79
	ldrb	r2, [r7, #-85]
	b	LBB0_5
LBB0_58:
	ldr	r1, LCPI0_29
	cmp	r0, r1
	bgt	LBB0_60
	ldr	r1, LCPI0_84
	cmp	r0, r1
	bne	LBB0_2
	b	LBB0_140
LBB0_60:
	ldr	r1, LCPI0_30
	cmp	r0, r1
	bgt	LBB0_63
	ldr	r1, LCPI0_83
	cmp	r0, r1
	bne	LBB0_2
	ldr	r12, [r5]
	ldr	r1, [r10]
	ldr	r2, LCPI0_144
	str	r2, [r10]
	ldr	r2, LCPI0_145
	add	r2, r1, r2
	mul	r3, r2, r1
	eor	r0, r3, r8
	tst	r0, r3
	mov	r0, #0
	mla	r3, r2, r1, r12
	moveq	r0, #1
	strb	r0, [r7, #-69]
	ldr	r1, LCPI0_146
	ldr	r2, LCPI0_65
	ldr	r0, LCPI0_80
	cmp	r3, r1
	movlt	r0, r2
	b	LBB0_2
LBB0_63:
	ldr	r1, LCPI0_31
	cmp	r0, r1
	bgt	LBB0_65
	ldr	r1, LCPI0_82
	cmp	r0, r1
	ldreq	r0, LCPI0_83
	b	LBB0_2
LBB0_65:
	ldr	r1, LCPI0_32
	cmp	r0, r1
	bgt	LBB0_68
	ldr	r1, LCPI0_81
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r5]
	ldr	r1, [r10]
	ldr	r2, LCPI0_150
	str	r2, [r10]
	ldr	r2, LCPI0_151
	add	r2, r1, r2
	mul	r3, r2, r1
	eor	r1, r3, r8
	tst	r1, r3
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-77]
	bic	r1, r3, r0
	bic	r0, r0, r3
	ldr	r2, LCPI0_152
	ldr	r3, LCPI0_93
	orr	r1, r0, r1
	ldr	r0, LCPI0_67
	b	LBB0_24
LBB0_68:
	ldr	r1, LCPI0_33
	cmp	r0, r1
	bgt	LBB0_72
	ldr	r1, LCPI0_80
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-76]
	mov	r1, #44
	strb	r1, [r0]
	ldr	r0, [r7, #-96]
	ldr	r1, [r10]
	add	r0, r0, #14
	str	r0, [r7, #-68]
	ldr	r0, [r5]
	ldr	r2, LCPI0_141
	str	r2, [r10]
	ldr	r2, LCPI0_142
	add	r2, r1, r2
	mul	r3, r2, r1
	mvn	r1, r3
	orr	r1, r1, r8
	cmn	r1, #1
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-62]
	sub	r1, r0, r3
	ldr	r2, LCPI0_143
	ldr	r3, LCPI0_68
	ldr	r0, LCPI0_69
LBB0_71:
	cmp	r1, r2
	movlo	r0, r3
	b	LBB0_2
LBB0_72:
	ldr	r1, LCPI0_34
	cmp	r0, r1
	bgt	LBB0_75
	ldr	r1, LCPI0_79
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-92]
	ldrb	r1, [r7, #-87]
	strb	r1, [r0]
	mov	r1, #72
	ldr	r0, [r7, #-96]
	strb	r1, [r0]
	mov	r1, #100
	ldr	r0, [r7, #-96]
	strb	r1, [r0, #11]
	mov	r1, #87
	ldr	r0, [r7, #-96]
	strb	r1, [r0, #7]
	ldr	r0, [r7, #-96]
	strb	lr, [r0, #3]
	ldr	r0, [r7, #-96]
	ldr	r0, LCPI0_74
	b	LBB0_2
LBB0_75:
	ldr	r1, LCPI0_35
	cmp	r0, r1
	bgt	LBB0_77
	ldr	r1, LCPI0_78
	cmp	r0, r1
	ldreq	r0, LCPI0_66
	b	LBB0_2
LBB0_77:
	ldr	r1, LCPI0_36
	cmp	r0, r1
	bgt	LBB0_80
	ldr	r1, LCPI0_77
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-40]
	mov	r1, #198
	ldrb	r0, [r0]
	bic	r1, r1, r0
	and	r0, r0, #57
	orr	r0, r1, r0
	ldr	r1, [r7, #-48]
	strb	r0, [r1]
	ldr	r0, [r7, #-96]
	bl	_printf
	ldr	r0, LCPI0_11
	mov	r4, #101
	mov	r6, #33
	mov	lr, #108
	b	LBB0_2
LBB0_80:
	ldr	r1, LCPI0_37
	cmp	r0, r1
	bgt	LBB0_83
	ldr	r1, LCPI0_76
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_102
	str	r0, [r5]
	ldr	r1, LCPI0_89
	ldr	r0, LCPI0_91
	ldrb	r2, [r7, #-61]
	b	LBB0_5
LBB0_83:
	ldr	r1, LCPI0_38
	cmp	r0, r1
	bgt	LBB0_86
	ldr	r1, LCPI0_75
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_97
	str	r0, [r5]
	ldr	r1, LCPI0_58
	ldr	r0, LCPI0_78
	ldrb	r2, [r7, #-35]
	b	LBB0_5
LBB0_86:
	ldr	r1, LCPI0_39
	cmp	r0, r1
	bgt	LBB0_89
	ldr	r1, LCPI0_74
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-92]
	ldrb	r1, [r7, #-87]
	strb	r1, [r0]
	mov	r1, #72
	ldr	r0, [r7, #-96]
	strb	r1, [r0]
	mov	r1, #100
	ldr	r0, [r7, #-96]
	strb	r1, [r0, #11]
	mov	r1, #87
	ldr	r0, [r7, #-96]
	strb	r1, [r0, #7]
	ldr	r0, [r7, #-96]
	strb	lr, [r0, #3]
	ldr	r0, [r7, #-96]
	ldr	r1, [r10]
	add	r0, r0, #4
	str	r0, [r7, #-84]
	mov	r0, #111
	strb	r0, [r7, #-79]
	ldr	r0, [r5]
	ldr	r2, LCPI0_153
	str	r2, [r10]
	rsb	r2, r1, #0
	rsb	r0, r0, #0
	ldr	r3, LCPI0_154
	sub	r2, r3, r2
	mul	r3, r2, r1
	eor	r1, r3, r8
	tst	r1, r3
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-78]
	sub	r1, r3, r0
	ldr	r2, LCPI0_155
	ldr	r3, LCPI0_94
	ldr	r0, LCPI0_7
	b	LBB0_71
LBB0_89:
	ldr	r1, LCPI0_40
	cmp	r0, r1
	bgt	LBB0_92
	ldr	r1, LCPI0_73
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r5]
	ldr	r1, [r10]
	ldr	r2, LCPI0_122
	str	r2, [r10]
	ldr	r2, LCPI0_123
	add	r2, r1, r2
	mul	r3, r2, r1
	mvn	r1, r3
	orr	r1, r1, r8
	cmn	r1, #1
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-41]
	mul	r1, r3, r0
	ldr	r2, LCPI0_124
	ldr	r3, LCPI0_88
	ldr	r0, LCPI0_66
	b	LBB0_71
LBB0_92:
	ldr	r1, LCPI0_41
	cmp	r0, r1
	bgt	LBB0_95
	ldr	r1, LCPI0_72
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-76]
	mov	r1, #44
	strb	r1, [r0]
	ldr	r0, [r7, #-96]
	ldr	r0, LCPI0_80
	b	LBB0_2
LBB0_95:
	ldr	r1, LCPI0_42
	cmp	r0, r1
	bgt	LBB0_97
	ldr	r1, LCPI0_71
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	ldreq	r0, LCPI0_13
	b	LBB0_2
LBB0_97:
	ldr	r1, LCPI0_43
	cmp	r0, r1
	bgt	LBB0_100
	ldr	r1, LCPI0_70
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-56]
	mov	r1, #48
	ldrb	r0, [r0]
	bic	r1, r1, r0
	and	r0, r0, #207
	orr	r0, r1, r0
	ldr	r1, [r7, #-60]
	strb	r0, [r1]
	ldr	r0, [r7, #-96]
	ldr	r0, LCPI0_63
	b	LBB0_2
LBB0_100:
	ldr	r1, LCPI0_44
	cmp	r0, r1
	bgt	LBB0_102
	ldr	r1, LCPI0_69
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	ldreq	r0, LCPI0_19
	b	LBB0_2
LBB0_102:
	ldr	r1, LCPI0_45
	cmp	r0, r1
	bgt	LBB0_105
	ldr	r1, LCPI0_68
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_103
	str	r0, [r5]
	ldr	r1, LCPI0_69
	ldr	r0, LCPI0_72
	ldrb	r2, [r7, #-62]
	b	LBB0_5
LBB0_105:
	ldr	r1, LCPI0_46
	cmp	r0, r1
	bgt	LBB0_108
	ldr	r1, LCPI0_67
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-84]
	ldrb	r1, [r7, #-79]
	strb	r1, [r0]
	mov	r1, #32
	ldr	r0, [r7, #-96]
	strb	r1, [r0, #6]
	mov	r1, #111
	ldr	r0, [r7, #-96]
	strb	r1, [r0, #8]
	ldr	r0, [r7, #-96]
	ldr	r1, [r10]
	add	r0, r0, #5
	str	r0, [r7, #-76]
	ldr	r0, [r5]
	ldr	r2, LCPI0_147
	str	r2, [r10]
	rsb	r2, r1, #0
	ldr	r3, LCPI0_148
	sub	r2, r3, r2
	mul	r3, r2, r1
	eor	r1, r3, r8
	tst	r1, r3
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-70]
	mul	r1, r3, r0
	ldr	r2, LCPI0_149
	ldr	r3, LCPI0_9
	ldr	r0, LCPI0_82
	b	LBB0_24
LBB0_108:
	ldr	r1, LCPI0_47
	cmp	r0, r1
	bgt	LBB0_111
	ldr	r1, LCPI0_66
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_168
LPC0_5:
	ldr	r0, [pc, r0]
	ldr	r1, [r10]
	add	r0, r0, #10
	str	r0, [r7, #-40]
	ldr	r0, [r5]
	ldr	r2, LCPI0_117
	str	r2, [r10]
	ldr	r2, LCPI0_118
	add	r2, r1, r2
	mul	r3, r2, r1
	mvn	r1, r3
	orr	r1, r1, r8
	cmn	r1, #1
	mov	r1, #0
	moveq	r1, #1
	strb	r1, [r7, #-35]
	ldr	r1, LCPI0_119
	add	r0, r0, r1
	ldr	r1, LCPI0_120
	ldr	r2, LCPI0_121
	sub	r0, r0, r3
	ldr	r3, LCPI0_75
	add	r1, r0, r1
	ldr	r0, LCPI0_58
	b	LBB0_29
LBB0_111:
	ldr	r1, LCPI0_48
	cmp	r0, r1
	bgt	LBB0_114
	ldr	r1, LCPI0_65
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_104
	str	r0, [r5]
	ldr	r1, LCPI0_80
	ldr	r0, LCPI0_72
	ldrb	r2, [r7, #-69]
	b	LBB0_5
LBB0_114:
	ldr	r1, LCPI0_49
	cmp	r0, r1
	bgt	LBB0_117
	ldr	r1, LCPI0_64
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_100
	str	r0, [r5]
	ldr	r1, LCPI0_63
	ldr	r0, LCPI0_70
	ldrb	r2, [r7, #-49]
	b	LBB0_5
LBB0_117:
	ldr	r1, LCPI0_50
	cmp	r0, r1
	bgt	LBB0_120
	ldr	r1, LCPI0_63
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, [r7, #-56]
	mov	r1, #48
	mov	r6, #33
	ldrb	r0, [r0]
	bic	r1, r1, r0
	and	r0, r0, #207
	orr	r0, r1, r0
	ldr	r1, [r7, #-60]
	strb	r0, [r1]
	ldr	r0, [r7, #-96]
	ldr	r1, [r10]
	add	r0, r0, #10
	str	r0, [r7, #-48]
	ldr	r0, [r5]
	ldr	r2, LCPI0_125
	str	r2, [r10]
	ldr	r2, LCPI0_126
	add	r2, r1, r2
	mul	r3, r2, r1
	mvn	lr, r3
	orr	r2, lr, r8
	cmn	r2, #1
	mov	r2, #0
	moveq	r2, #1
	strb	r2, [r7, #-42]
	ldr	r2, LCPI0_127
	ldr	r1, LCPI0_128
	and	r4, r0, r2
	bic	r12, r1, r0
	mvn	r0, r0
	and	r2, r3, r2
	bic	r1, r1, r3
	orr	r0, lr, r0
	orr	r12, r12, r4
	orr	r1, r1, r2
	ldr	r2, LCPI0_129
	ldr	r3, LCPI0_60
	mov	r4, #101
	mov	lr, #108
	eor	r1, r1, r12
	mvn	r0, r0
	orr	r1, r1, r0
	ldr	r0, LCPI0_56
	b	LBB0_24
LBB0_120:
	ldr	r1, LCPI0_51
	cmp	r0, r1
	bgt	LBB0_123
	ldr	r1, LCPI0_2
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r1, LCPI0_162
	ldr	r2, [r7, #-100]
	ldr	r3, LCPI0_62
	ldr	r0, LCPI0_5
	cmp	r2, r1
	movgt	r0, r3
	b	LBB0_2
LBB0_123:
	ldr	r1, LCPI0_52
	cmp	r0, r1
	bgt	LBB0_126
	ldr	r1, LCPI0_62
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_110
	str	r0, [r5]
	ldr	r1, LCPI0_5
	ldr	r0, LCPI0_59
	ldrb	r2, [r7, #-101]
	b	LBB0_5
LBB0_126:
	ldr	r1, LCPI0_53
	cmp	r0, r1
	bgt	LBB0_129
	ldr	r1, LCPI0_61
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_109
	str	r0, [r5]
	ldr	r1, LCPI0_71
	ldr	r0, LCPI0_59
	ldrb	r2, [r7, #-86]
	b	LBB0_5
LBB0_129:
	ldr	r1, LCPI0_54
	cmp	r0, r1
	bgt	LBB0_132
	ldr	r1, LCPI0_60
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	bne	LBB0_2
	ldr	r0, LCPI0_99
	str	r0, [r5]
	ldr	r1, LCPI0_56
	ldr	r0, LCPI0_70
	ldrb	r2, [r7, #-42]
	b	LBB0_5
LBB0_132:
	ldr	r1, LCPI0_55
	cmp	r0, r1
	bgt	LBB0_134
	ldr	r1, LCPI0_59
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	ldreq	r0, LCPI0_5
	b	LBB0_2
LBB0_134:
	ldr	r1, LCPI0_56
	cmp	r0, r1
	beq	LBB0_137
	ldr	r1, LCPI0_57
	cmp	r0, r1
	bne	LBB0_139
	ldr	r0, LCPI0_87
	b	LBB0_138
LBB0_137:
	ldr	r0, LCPI0_73
LBB0_138:
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	b	LBB0_2
LBB0_139:
	ldr	r1, LCPI0_58
	mov	lr, #108
	mov	r6, #33
	mov	r4, #101
	cmp	r0, r1
	ldreq	r0, LCPI0_15
	b	LBB0_2
LBB0_140:
	ldr	r0, [r7, #-32]
	ldr	r1, LCPI0_167
LPC0_4:
	ldr	r1, [pc, r1]
	ldr	r1, [r1]
	ldr	r1, [r1]
	subs	r0, r1, r0
	moveq	r0, #0
	subeq	sp, r7, #24
	popeq	{r8, r10, r11}
	popeq	{r4, r5, r6, r7, lr}
	moveq	pc, lr
	bl	___stack_chk_fail
	.align	2
	.data_region
LCPI0_169:
	.long	L___stack_chk_guard$non_lazy_ptr-(LPC0_0+8)
	.align	2
LCPI0_170:
	.long	l___unnamed_1-(LPC0_1+8)
	.align	2
LCPI0_171:
	.long	l___unnamed_2-(LPC0_2+8)
	.align	2
LCPI0_172:
	.long	l___unnamed_3-(LPC0_3+8)
	.align	2
LCPI0_173:
	.long	3219510760
	.align	2
LCPI0_174:
	.long	2308227127
	.align	2
LCPI0_175:
	.long	1536401212
	.align	2
LCPI0_176:
	.long	16756788
	.align	2
LCPI0_177:
	.long	1710324763
	.align	2
LCPI0_178:
	.long	3191771578
	.align	2
LCPI0_0:
	.long	2536549664
LCPI0_1:
	.long	848505721
LCPI0_2:
	.long	1195990067
LCPI0_3:
	.long	2394321995
LCPI0_4:
	.long	2147158149
LCPI0_5:
	.long	2147158150
LCPI0_6:
	.long	2144200239
LCPI0_7:
	.long	2144200240
LCPI0_8:
	.long	2103157071
LCPI0_9:
	.long	2103157072
LCPI0_10:
	.long	2076412443
LCPI0_11:
	.long	2076412444
LCPI0_12:
	.long	2052847615
LCPI0_13:
	.long	2052847616
LCPI0_14:
	.long	1879579645
LCPI0_15:
	.long	1879579646
LCPI0_16:
	.long	1861501119
LCPI0_17:
	.long	1861501120
LCPI0_18:
	.long	1855962107
LCPI0_19:
	.long	1855962108
LCPI0_20:
	.long	2395427227
LCPI0_21:
	.long	2562891850
LCPI0_22:
	.long	2600952698
LCPI0_23:
	.long	2644239019
LCPI0_24:
	.long	2650191211
LCPI0_25:
	.long	2792645262
LCPI0_26:
	.long	2798054856
LCPI0_27:
	.long	2812969163
LCPI0_28:
	.long	2821162649
LCPI0_29:
	.long	2909007483
LCPI0_30:
	.long	3204024942
LCPI0_31:
	.long	3219510759
LCPI0_32:
	.long	3400141638
LCPI0_33:
	.long	3401361676
LCPI0_34:
	.long	3425661641
LCPI0_35:
	.long	3571924847
LCPI0_36:
	.long	3888210372
LCPI0_37:
	.long	4000410506
LCPI0_38:
	.long	4051866263
LCPI0_39:
	.long	4143723484
LCPI0_40:
	.long	4164664710
LCPI0_41:
	.long	62810453
LCPI0_42:
	.long	144611373
LCPI0_43:
	.long	166392313
LCPI0_44:
	.long	199521059
LCPI0_45:
	.long	311298713
LCPI0_46:
	.long	820731728
LCPI0_47:
	.long	843504970
LCPI0_48:
	.long	1080023741
LCPI0_49:
	.long	1193619198
LCPI0_50:
	.long	1195990066
LCPI0_51:
	.long	1345239852
LCPI0_52:
	.long	1565201008
LCPI0_53:
	.long	1730390262
LCPI0_54:
	.long	1780708759
LCPI0_55:
	.long	1790834352
LCPI0_56:
	.long	1790834353
LCPI0_57:
	.long	1851438128
LCPI0_58:
	.long	1852521659
LCPI0_59:
	.long	1780708760
LCPI0_60:
	.long	1730390263
LCPI0_61:
	.long	1565201009
LCPI0_62:
	.long	1345239853
LCPI0_63:
	.long	1193619199
LCPI0_64:
	.long	1080023742
LCPI0_65:
	.long	843504971
LCPI0_66:
	.long	820731729
LCPI0_67:
	.long	311298714
LCPI0_68:
	.long	199521060
LCPI0_69:
	.long	166392314
LCPI0_70:
	.long	144611374
LCPI0_71:
	.long	62810454
LCPI0_72:
	.long	4164664711
LCPI0_73:
	.long	4143723485
LCPI0_74:
	.long	4051866264
LCPI0_75:
	.long	4000410507
LCPI0_76:
	.long	3888210373
LCPI0_77:
	.long	3571924848
LCPI0_78:
	.long	3425661642
LCPI0_79:
	.long	3401361677
LCPI0_80:
	.long	3400141639
LCPI0_81:
	.long	3219510760
LCPI0_82:
	.long	3204024943
LCPI0_83:
	.long	2909007484
LCPI0_84:
	.long	2821162650
LCPI0_85:
	.long	2812969164
LCPI0_86:
	.long	2798054857
LCPI0_87:
	.long	2792645263
LCPI0_88:
	.long	2650191212
LCPI0_89:
	.long	2644239020
LCPI0_90:
	.long	2600952699
LCPI0_91:
	.long	2562891851
LCPI0_92:
	.long	2395427228
LCPI0_93:
	.long	2394321996
LCPI0_94:
	.long	2308227127
LCPI0_95:
	.long	731353712
LCPI0_96:
	.long	696176068
LCPI0_97:
	.long	1319959518
LCPI0_98:
	.long	95089261
LCPI0_99:
	.long	2730360
LCPI0_100:
	.long	546504686
LCPI0_101:
	.long	881463890
LCPI0_102:
	.long	1609456643
LCPI0_103:
	.long	4007780352
LCPI0_104:
	.long	755678981
LCPI0_105:
	.long	1542593880
LCPI0_106:
	.long	3758301045
LCPI0_108:
	.long	3646411782
LCPI0_109:
	.long	598635298
LCPI0_110:
	.long	1296802156
LCPI0_111:
	.long	233802091
LCPI0_112:
	.long	2817973975
LCPI0_113:
	.long	778783627
LCPI0_114:
	.long	1906576283
LCPI0_115:
	.long	809077943
LCPI0_116:
	.long	1712560843
LCPI0_117:
	.long	2086023789
LCPI0_118:
	.long	4194376783
LCPI0_119:
	.long	3560262631
LCPI0_120:
	.long	734704665
LCPI0_121:
	.long	4023109125
LCPI0_122:
	.long	68256121
LCPI0_123:
	.long	1546152799
LCPI0_124:
	.long	359531637
LCPI0_125:
	.long	2007110360
LCPI0_126:
	.long	3862580899
LCPI0_127:
	.long	3807523487
LCPI0_128:
	.long	487443808
LCPI0_129:
	.long	1626893834
LCPI0_130:
	.long	909055112
LCPI0_131:
	.long	3015932289
LCPI0_132:
	.long	1402867904
LCPI0_133:
	.long	2892099391
LCPI0_134:
	.long	2860478843
LCPI0_135:
	.long	770573445
LCPI0_136:
	.long	1132074609
LCPI0_137:
	.long	4019257621
LCPI0_138:
	.long	3177186281
LCPI0_139:
	.long	3692529399
LCPI0_140:
	.long	2922120867
LCPI0_141:
	.long	480941047
LCPI0_142:
	.long	815188113
LCPI0_143:
	.long	669443525
LCPI0_144:
	.long	503373225
LCPI0_145:
	.long	533328177
LCPI0_146:
	.long	218429907
LCPI0_147:
	.long	1901900138
LCPI0_148:
	.long	314539783
LCPI0_149:
	.long	1677954704
LCPI0_150:
	.long	2895710326
LCPI0_151:
	.long	783353229
LCPI0_152:
	.long	3297815903
LCPI0_153:
	.long	56065071
LCPI0_154:
	.long	4145534559
LCPI0_155:
	.long	1524890401
LCPI0_156:
	.long	2800632089
LCPI0_157:
	.long	127259159
LCPI0_158:
	.long	2488594547
LCPI0_162:
	.long	1209439879
LCPI0_167:
	.long	L___stack_chk_guard$non_lazy_ptr-(LPC0_4+8)
LCPI0_168:
	.long	l___unnamed_3-(LPC0_5+8)
	.end_data_region

	.section	__TEXT,__const
l___unnamed_3:
	.asciz	"\343\345\006\216\272-T\312U\334\252\267\0010"

	.section	__DATA,__data
	.align	2
l___unnamed_2:
	.long	2631951613

	.align	2
l___unnamed_1:
	.long	669150053


	.section	__DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
	.align	2
L___stack_chk_guard$non_lazy_ptr:
	.indirect_symbol	___stack_chk_guard
	.long	0

.subsections_via_symbols


Safengine LLVM DEMO,不支持汇编指令乱序和字符串加密功能

下载地址:点我 (32位及64位 Windows,需要 Android NDK r10c 或以上)


论坛地址:http://www.safengine.com/mobile/forum

关于使用和安装集成的QQ讨论群:425014860


[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (40)
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
2
放一个完整版加密的成品下载,大家可以用IDA看看

下载地址:点我
2014-12-7 23:06
0
雪    币: 231
活跃值: (2631)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
海风大侠去SE工作拉?
2014-12-7 23:12
0
雪    币: 2305
活跃值: (4559)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
妞B!!
2014-12-7 23:39
0
雪    币: 228
活跃值: (115)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
广告位  广告位!!!!
2014-12-8 00:24
0
雪    币: 12940
活跃值: (4036)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
怎么又一帖...
2014-12-8 01:01
0
雪    币: 0
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
路过 路过
2014-12-8 02:09
0
雪    币: 83
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
一个是IOS,一个是安卓

拖进IDA对比了一下,效果的确很强
2014-12-8 08:28
0
雪    币: 427
活跃值: (473)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
哈哈哈,手机界的类TMD终于出来了,估计下一步就是动态VM保持了。很好,这样可以提高XX门槛。
2014-12-8 08:38
0
雪    币: 138
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
路过,膜拜。
2014-12-8 08:57
0
雪    币: 138
活跃值: (460)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
艾玛~~ 又有的折腾了;
2014-12-8 09:14
0
雪    币: 2323
活跃值: (4113)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
12
支持海风,逆向的路越来越难走了,嘿嘿
2014-12-8 09:29
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
13
妈蛋~~~看到这代码就不想逆,转行转行了~~~~

看了一下,唯一的问题,就是文件大小大幅度增加了,这东西做产品有点问题啊
2014-12-8 09:47
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
转行转行了~~~~ 混不下去了
2014-12-8 10:02
0
雪    币: 507
活跃值: (120)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
遥记前年在某群,看海风大神秒脱棒棒的的风采。。。
2014-12-8 10:04
0
雪    币: 768
活跃值: (515)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
16
这东东的效率这么高,以后普及这种技术, 再想用IDA看看程序的功能,越来越难啦。
2014-12-8 10:04
0
雪    币: 86
活跃值: (1043)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
艾玛~~ 又有的折腾了;
2014-12-8 10:44
0
雪    币: 370
活跃值: (1176)
能力值: ( LV9,RANK:310 )
在线值:
发帖
回帖
粉丝
18
前排支持,LLVM,好东西。
2014-12-8 10:53
0
雪    币: 130
活跃值: (131)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
19
动态调了一下完整版,发现字符串解密那块挺绕的,不过仔细观察还是有规律可循的,正常文件用了这个编译后大了好多。。。看到arm IT指令都出现了,再加点反调试就更好了
2014-12-8 13:52
0
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
20
欢迎测试,规律肯定是可以找到的,如果大工程里面全是这样的字符串处理,逆向起来还是很费劲的
这个的优势在于,对于开发者来说,这是透明的,源码里面大量的字符串,写起来非常轻松,编译出来的结果,安全性也很理想

编译后变大,这个没什么好办法的,我们提供编译器选项,可以自定义处理某些函数,或者一批函数,大家可以自己多尝试

反调试属于特殊的功能,不在公版里面
比如,可以写一个
void AntiDebug()
这样的函数编译进去就行了
2014-12-8 14:18
0
雪    币: 27
活跃值: (90)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
21
妞B!!
2014-12-8 14:59
0
雪    币: 12940
活跃值: (4036)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22


没看清
2014-12-8 18:35
0
雪    币: 435
活跃值: (172)
能力值: ( LV13,RANK:280 )
在线值:
发帖
回帖
粉丝
23
很强大,帮顶
2014-12-10 09:33
0
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
24
大家碰到使用过程中有什么问题,可以在这里回帖交流
2014-12-13 15:39
0
雪    币: 553
活跃值: (887)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
25
手机CPU真的强到可以整个工程加 VM 么了....
2014-12-14 11:02
0
游客
登录 | 注册 方可回帖
返回
//