簡單演算法――飄雪PXQQ V1.0(Softsentry保護)
下載頁面:
http://www.skycn.com/soft/11000.html
軟體大小:
914 KB
軟體語言: 簡體中文
軟體類別: 國產軟體 / 共享版 / 聊天工具
應用平臺: Win9x/NT/2000/XP
加入時間:
2003-02-22 11:17:17
下載次數: 2232
推薦等級: ***
開 發 商: http://piaoxue666.51.net/
【軟體簡介】: 本軟體是當今最好的區域網即時通訊工具。為QQ的區域網版本,擁有QQ的所有功能,並有所增強。對區域網內的的資訊交流非常方便,比打內線電話方便多了。 1.PXQQ獨創的所見所得資訊功能支援傳送所見所得資訊! 包括圖片、聲音、Word文件等 支援超大檔案傳輸,快!,非常強大您試試就知道了! 2. 不用任何中轉站與伺服器,隨時開啟本軟體就可以看到當前線上的網友。當然,他們也知道您來了,除非您是隱身登入的。 3.支援檔案傳輸,再也不用共享啦。安全!快!4.更換皮膚功能,而且自制皮膚非常容易。 5.資訊的閱讀收條。你傳送資訊時,如果選擇“需要收條”,對方看到訊息後,會自動給你傳送一個收條。 6.信使服務。此功能利用Win2000的信使服務,給對方傳送一個強制通知訊息。當對方未開啟PXQQ,你可以用此方式通知他。(Win98不支援此功能。)7.區域網掃描功能。你可以看到整個區域網的使用者及其IP以及是否聯機。8. 黑名單功能。當你不想收到某個人的訊息時,你可以把他踢入黑名單。 但想收到他的訊息時,別忘了把他加為好友。9. 可以很快的貼上快捷用語,並可以自己根據需要新增、修改。10. 內建語音聊天功能,效果比美坐機電話。11. 如果您不嫌麻煩的話,可以設定為“系統”。
【軟體限制】:8次試用。
【作者宣告】:初學Crack,只是感興趣,沒有其它目的。失誤之處敬請諸位大俠賜教!
【破解工具】:TRW2000娃娃修改版、Ollydbg1.09、PEiD、W32Dasm 10修改版
―――――――――――――――――――――――――――――――――
【過 程】:
呵呵,一看軟體啟動要求註冊的畫面,就知道又碰上Softsentry殼的東東了。這次作者下了點工夫,沒有簡單套用,而是加大了長度,string_1有20位,string_2有15位。但是這種殼的基本演算法流程是改變不了多少的,呵呵,Let's
Go!
ID 號:95065
姓
名:fly
單 位:【OCN】
試煉碼:1234567890ABCDEFGHIJ1234567890KLMNOPQRSTU
―――――――――――――――――――――――――――――――――
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059AC05(C)
|
:0059AC5F
A1546C5A00 mov eax, dword ptr
[005A6C54]
:0059AC64 25FFFF0000 and
eax, 0000FFFF
:0059AC69 0F849B010000 je
0059AE0A
:0059AC6F 85C0
test eax, eax
:0059AC71 0F8E1A020000
jle 0059AE91
:0059AC77 83F802
cmp eax, 00000002
:0059AC7A 0F8F11020000
jg 0059AE91
:0059AC80 8B35F46B5A00
mov esi, dword ptr [005A6BF4]
====>ESI=[005A6BF4]=k(8^do586%hkf_,|5865
:0059AC86
83C9FF or ecx, FFFFFFFF
:0059AC89
8BFE mov
edi, esi
:0059AC8B 33C0
xor eax, eax
:0059AC8D F2
repnz
:0059AC8E AE
scasb
:0059AC8F F7D1
not ecx
:0059AC91
83C1FE add ecx,
FFFFFFFE
:0059AC94 6683F9FF
cmp cx, FFFF
:0059AC98 7422
je 0059ACBC
:0059AC9A 6685C9
test cx, cx
:0059AC9D 7C17
jl 0059ACB6
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059ACB4(C)
|
:0059AC9F
0FBFC1 movsx eax,
cx
:0059ACA2 8A1430
mov dl, byte ptr [eax+esi]
====>DL=依次
倒序 取k(8^do586%hkf_,|5865的字元!
:0059ACA5
80FA3F cmp dl, 3F
:0059ACA8
7406 je 0059ACB0
:0059ACAA
3A540420 cmp dl, byte ptr
[esp+eax+20]
====>依次與試煉碼前20位1234567890ABCDEFGHIJ的倒序字元比較!
:0059ACAE 7506
jne 0059ACB6
====>不同則跳則OVER! 索性NOP掉,省得老是要跳
^-^ ^-^
* Referenced
by a (U)nconditional or (C)onditional Jump at Address:
|:0059ACA8(C)
|
:0059ACB0
49 dec
ecx
:0059ACB1 6685C9
test cx, cx
:0059ACB4 7DE9
jge 0059AC9F
====>迴圈逐位檢查前20位!有一位不同就OVER了!
一、 ====>所以註冊碼的前20位=k(8^do586%hkf_,|5865
*
Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0059AC9D(C),
:0059ACAE(C)
|
:0059ACB6 6683F9FF
cmp cx, FFFF
:0059ACBA 7508
jne 0059ACC4
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059AC98(C)
|
:0059ACBC
C744241401000000 mov [esp+14], 00000001
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059ACBA(C)
|
:0059ACC4
8B3DD46B5A00 mov edi, dword ptr [005A6BD4]
====>EDI=[005A6BD4]=5697|ogj56+&123
:0059ACCA
83C9FF or ecx, FFFFFFFF
:0059ACCD
33C0 xor
eax, eax
:0059ACCF F2
repnz
:0059ACD0 AE
scasb
:0059ACD1 F7D1
not ecx
:0059ACD3 49
dec ecx
:0059ACD4
8D7C2420 lea edi, dword
ptr [esp+20]
====>EDI=[esp+20]=1234567890KLMNOPQRSTU
:0059ACD8
8BE9 mov
ebp, ecx
:0059ACDA 83C9FF
or ecx, FFFFFFFF
:0059ACDD F2
repnz
:0059ACDE AE
scasb
:0059ACDF F7D1
not ecx
:0059ACE1
49 dec
ecx
:0059ACE2 2BCD
sub ecx, ebp
:0059ACE4 6685C9
test cx, cx
:0059ACE7 7E32
jle 0059AD1B
:0059ACE9 33F6
xor esi,
esi
:0059ACEB 6685ED
test bp, bp
:0059ACEE 7E22
jle 0059AD12
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059AD10(C)
|
:0059ACF0
8B15D46B5A00 mov edx, dword ptr [005A6BD4]
====>EDX=5697|ogj56+&123
:0059ACF6
0FBFC6 movsx eax,
si
:0059ACF9 8A1410
mov dl, byte ptr [eax+edx]
====>DL=依次取5697|ogj56+&123的字元!
:0059ACFC
80FA3F cmp dl, 3F
:0059ACFF
740B je 0059AD0C
:0059AD01
0FBFF9 movsx edi,
cx
:0059AD04 03F8
add edi, eax
:0059AD06 3A543C20
cmp dl, byte ptr [esp+edi+20]
====>EDX=依次與試煉碼後15位7890KLMNOPQRSTU的字元比較!
:0059AD0A
7506 jne
0059AD12
====>不同則跳則OVER! 索性NOP掉,省得老是要跳
^-^ ^-^
* Referenced
by a (U)nconditional or (C)onditional Jump at Address:
|:0059ACFF(C)
|
:0059AD0C
46 inc
esi
:0059AD0D 663BF5
cmp si, bp
:0059AD10 7CDE
jl 0059ACF0
====>迴圈逐位檢查後15位!有一位不同就OVER了!
二、 ====>所以註冊碼的後15位=5697|ogj56+&123
*
Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0059ACEE(C),
:0059AD0A(C)
|
:0059AD12 663BF5
cmp si, bp
:0059AD15 7504
jne 0059AD1B
:0059AD17 FF442414
inc [esp+14]
*
Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0059ACE7(C),
:0059AD15(C)
|
:0059AD1B 837C241402
cmp dword ptr [esp+14], 00000002
:0059AD20 740A
je 0059AD2C
:0059AD22 B8FEFFFFFF
mov eax, FFFFFFFE
:0059AD27
E941010000 jmp 0059AE6D
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059AD20(C)
|
:0059AD2C
8B3DF46B5A00 mov edi, dword ptr [005A6BF4]
:0059AD32
83C9FF or ecx, FFFFFFFF
:0059AD35
33C0 xor
eax, eax
:0059AD37 F2
repnz
:0059AD38 AE
scasb
:0059AD39 8B3DD46B5A00
mov edi, dword ptr [005A6BD4]
:0059AD3F F7D1
not ecx
:0059AD41
49 dec
ecx
:0059AD42 8D740C20 lea
esi, dword ptr [esp+ecx+20]
:0059AD46 83C9FF
or ecx, FFFFFFFF
:0059AD49 F2
repnz
:0059AD4A AE
scasb
:0059AD4B
F7D1 not
ecx
:0059AD4D 49
dec ecx
:0059AD4E 8BD6
mov edx, esi
:0059AD50 2BD1
sub edx, ecx
:0059AD52 8BFE
mov edi,
esi
:0059AD54 83C9FF
or ecx, FFFFFFFF
:0059AD57 F2
repnz
:0059AD58 AE
scasb
:0059AD59 F7D1
not ecx
:0059AD5B
49 dec
ecx
:0059AD5C 88040A
mov byte ptr [edx+ecx], al
:0059AD5F 8BCE
mov ecx, esi
====>ECX=123456 呵呵,是試煉碼的中間6位!
:0059AD61
E84A5B0000 call 005A08B0
====>檢測上面的中間幾位是否為數字?
:0059AD66
85C0 test
eax, eax
:0059AD68 750A
jne 0059AD74
====>不是數字則不跳則OVER!
:0059AD6A
B8FDFFFFFF mov eax, FFFFFFFD
:0059AD6F
E9F9000000 jmp 0059AE6D
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059AD68(C)
|
:0059AD74
BA64315A00 mov edx, 005A3164
====>EDX=0604
呵呵,程式自給的!
:0059AD79
8BCE mov
ecx, esi
====>ECX=123456
呵呵,是試煉碼的中間6位!
:0059AD7B
E8705B0000 call 005A08F0
====>再次檢測123456是否為數字?
不是數字則“invalid digital number!”。並且把123456轉化為用16進位制值表示!
:0059AD80
8BF8 mov
edi, eax
====>EDI=0001E240(H)=123456(D)
:0059AD82
66A1546C5A00 mov ax, word ptr [005A6C54]
:0059AD88
663D0100 cmp ax, 0001
:0059AD8C
7546 jne
0059ADD4
:0059AD8E 66A1FA6B5A00 mov
ax, word ptr [005A6BFA]
:0059AD94 8B15006C5A00
mov edx, dword ptr [005A6C00]
:0059AD9A 33C9
xor ecx, ecx
:0059AD9C 8ACC
mov cl, ah
:0059AD9E
25FF000000 and eax, 000000FF
:0059ADA3
8BF1 mov
esi, ecx
:0059ADA5 8BC8
mov ecx, eax
:0059ADA7 E854FBFFFF
call 0059A900
:0059ADAC 8B15FC6B5A00
mov edx, dword ptr [005A6BFC]
:0059ADB2 03F8
add edi, eax
:0059ADB4
6685F6 test si,
si
:0059ADB7 7504
jne 0059ADBD
:0059ADB9 33C9
xor ecx, ecx
:0059ADBB EB03
jmp 0059ADC0
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059ADB7(C)
|
:0059ADBD
8D4E01 lea ecx,
dword ptr [esi+01]
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059ADBB(U)
|
:0059ADC0
E83BFBFFFF call 0059A900
:0059ADC5
8BC8 mov
ecx, eax
:0059ADC7 85C9
test ecx, ecx
:0059ADC9 7438
je 0059AE03
:0059ADCB 8BC7
mov eax, edi
:0059ADCD
99 cdq
:0059ADCE
F7F9 idiv
ecx
:0059ADD0 8BC2
mov eax, edx
:0059ADD2 EB27
jmp 0059ADFB
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059AD8C(C)
|
:0059ADD4
663D0200 cmp ax, 0002
:0059ADD8
7529 jne
0059AE03
:0059ADDA 8B15FC6B5A00 mov
edx, dword ptr [005A6BFC]
====>EDX=[005A6BFC]=564g5fiofj9&^6kfd
:0059ADE0
A1006C5A00 mov eax, dword ptr
[005A6C00]
====>EAX=[005A6C00]=dkjfkdu5f2g445]
:0059ADE5
8B0D386D5A00 mov ecx, dword ptr [005A6D38]
====>ECX=[005A6D38]=17359(H)=95605(D)呵呵,我的ID號
:0059ADEB
52 push
edx
:0059ADEC 668B15FA6B5A00 mov dx, word
ptr [005A6BFA]
:0059ADF3 50
push eax
:0059ADF4 E897FBFFFF
call 0059A990
====>演算法CALL!得出下面的EAX值。進入!
:0059ADF9
2BC7 sub
eax, edi
====>EAX=5DECC - 1E240=3FC8C
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059ADD2(U)
|
:0059ADFB
85C0 test
eax, eax
====>相減結果是否為0?即:上面2部分是否相等?
三、 ====>所以:註冊碼的中間部分=5DECC(H)=384716(D)
:0059ADFD
0F848E000000 je 0059AE91
====>不為0則不跳則OVER!
:0059B013
FF1500725A00 call dword ptr [005A7200]
====>BAD BOY!
―――――――――――――――――――――――――――――――――
進入演算法CALL:59ADF4
call 0059A990
*
Referenced by a CALL at Addresses:
|:0059ADF4 , :0059B1DA
|
:0059A990
53 push
ebx
:0059A991 56
push esi
:0059A992 668BDA
mov bx, dx
:0059A995 8BF1
mov esi, ecx
:0059A997 8B54240C
mov edx, dword ptr [esp+0C]
====>EDX=[esp+0C]=dkjfkdu5f2g445]
:0059A99B
8ACB mov
cl, bl
:0059A99D 57
push edi
:0059A99E 81E1FF000000
and ecx, 000000FF
:0059A9A4 E857FFFFFF
call 0059A900
====>對程式給的dkjfkdu5f2g445]進行運算得出下面的EAX值!進入!
:0059A9A9
8B542414 mov edx, dword
ptr [esp+14]
====>EDX=dkjfkdu5f2g445]
:0059A9AD
8BF8 mov
edi, eax
====>EDI=EAX=1B86B 上面CALL對dkjfkdu5f2g445]進行運算得出的值!
:0059A9AF
33C0 xor
eax, eax
:0059A9B1 8AC7
mov al, bh
:0059A9B3 6685C0
test ax, ax
:0059A9B6 7512
jne 0059A9CA
====>跳下去!
:0059A9B8
33C9 xor
ecx, ecx
:0059A9BA E841FFFFFF call
0059A900
:0059A9BF 03FE
add edi, esi
:0059A9C1 0FAFC7
imul eax, edi
:0059A9C4 5F
pop edi
:0059A9C5 5E
pop
esi
:0059A9C6 5B
pop ebx
:0059A9C7 C20800
ret 0008
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A9B6(C)
|
:0059A9CA
8D4801 lea ecx,
dword ptr [eax+01]
====>EAX=63
:0059A9CD
E82EFFFFFF call 0059A900
====>對程式給的564g5fiofj9&^6kfd進行運算得出下面的EAX值!
此處與59A9A4
call 0059A900的運算流程相同,只是引數不同,因此就不再記錄了。迴圈得出EAX=2B308
:0059A9D2
03C7 add
eax, edi
====>EAX=2B308 + 1B86B=46B73
:0059A9D4
03C6 add
eax, esi
====>EAX=46B73 + 17359=5DECC
呵呵,把上面運算的結果5DECC(H)轉化成10進位制值384716(D),就是註冊碼的中間部分了!
:0059A9D6
5F pop
edi
:0059A9D7 5E
pop esi
:0059A9D8 5B
pop ebx
:0059A9D9 C20800
ret 0008
―――――――――――――――――――――――――――――――――
進入關鍵CALL:59A9A4 call 0059A900
*
Referenced by a CALL at Addresses:
|:0059A9A4 , :0059A9BA , :0059A9CD
, :0059ADA7 , :0059ADC0
|
:0059A900 53
push ebx
:0059A901
8BDA mov
ebx, edx
====>EBX=EDX=dkjfkdu5f2g445]
:0059A903
56 push
esi
:0059A904 8BF1
mov esi, ecx
====>ESI=ECX=31
:0059A906
85DB test
ebx, ebx
:0059A908 7472
je 0059A97C
:0059A90A 803B00
cmp byte ptr [ebx], 00
:0059A90D 746D
je 0059A97C
:0059A90F
57 push
edi
:0059A910 8BFB
mov edi, ebx
:0059A912 83C9FF
or ecx, FFFFFFFF
:0059A915 33C0
xor eax, eax
:0059A917 F2
repnz
:0059A918
AE scasb
:0059A919
F7D1 not
ecx
:0059A91B 49
dec ecx
====>ECX=F
取dkjfkdu5f2g445]的位數
:0059A91C
6685F6 test si,
si
:0059A91F 7443
je 0059A964
:0059A921 6683FE01
cmp si, 0001
:0059A925 743D
je 0059A964
:0059A927 81E6FFFF0000
and esi, 0000FFFF
:0059A92D 8BC6
mov eax, esi
:0059A92F
99 cdq
:0059A930
F7F9 idiv
ecx
====>EDX=31 % F=4
:0059A932
0FBE041A movsx eax, byte
ptr [edx+ebx]
====>EAX=6B
即:第5個字元k的HEX值
:0059A936
0FAFC6 imul eax,
esi
====>EAX=6B * 31=147B
:0059A939
0FAFC2 imul eax,
edx
====>EAX=147B * 4=51EC
:0059A93C
03C1 add
eax, ecx
====>EAX=51EC + F=51FB
:0059A93E
33D2 xor
edx, edx
:0059A940 85C9
test ecx, ecx
:0059A942 7E16
jle 0059A95A
:0059A944 8BF9
mov edi, ecx
:0059A946
2BFE sub
edi, esi
====>EDI=F - 31=FFFFFFDE
:0059A948
83C76F add edi,
0000006F
====>EDI=FFFFFFDE + 6F=4D
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A958(C)
|
:0059A94B
0FBE341A movsx esi, byte
ptr [edx+ebx]
====>依次取dkjfkdu5f2g445]字元的HEX值
:0059A94F
0FAFF7 imul esi,
edi
1、 ====>ESI=64 * 4D=1E14
2、 ====>ESI=6B * 4C=1FC4
3、
====>ESI=6A * 4B=1F0E
……
……省 略…… ……
15、 ====>ESI=5D * 3F=16E3
:0059A952
03C6 add
eax, esi
1、 ====>EAX=51FB + 1E14=700F
2、
====>EAX=700F + 1FC4=8FD3
3、 ====>EAX=8FD3
+ 1F0E=AEE1
…… ……省 略…… ……
15、 ====>EAX=1A188 + 16E3=1B86B
:0059A954
42 inc
edx
:0059A955 4F
dec edi
====>EDI依次減1
:0059A956
3BD1 cmp
edx, ecx
:0059A958 7CF1
jl 0059A94B
====>迴圈15次
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A942(C)
|
:0059A95A
85C0 test
eax, eax
:0059A95C 7D1A
jge 0059A978
:0059A95E 5F
pop edi
:0059A95F 5E
pop esi
:0059A960 F7D8
neg eax
:0059A962
5B pop
ebx
:0059A963 C3
ret
―――――――――――――――――――――――――――――――――
【算 法 總 結】:
因為作者做了不少改動,有些引數我沒能驗證,只能大體猜測一下。有可能是不確切的。
一、註冊碼
前20位固定為:k(8^do586%hkf_,|5865
二、註冊碼 後15位固定為:5697|ogj56+&123
三、註冊碼中間幾位的運算:
1、取系統程式碼:95065,轉化為16進位制值:17359(H)
2、17359
+ 46B73=5DECC
運算的結果5DECC(H)轉化成10進位制值384716(D),就是我的註冊碼的中間部分了!
―――――――――――――――――――――――――――――――――
【註冊資訊儲存】:
1、登錄檔中
REGEDIT4
[HKEY_CLASSES_ROOT\{7YTg0oKAVm}]
@="NUQ=%!!5!#Q!3!!)!.!#U!$5Q.4)U!!!!!!\"=R1!!>`^L+$B?:']V/$9F;'NGN8SR].4AW.4-Y.$=R.D5W/4>]<W>K.49L*D%S-Q!!!!!!!!!!!!!#!!!!!!!!N!!!!!!!'!.-(\"!!&!!M!%A!#!$1!N!!!!!)!!!!!!!!!!-%.1Q&G<(E!-$%!3!!!!!!!!!!!!!!!!!!!!!!!!"
2、REGEDIT4
[HKEY_CLASSES_ROOT\SystemAppIDs]
@="N\"!!!!!!!!!\"\\<WZ63E&:=T-W?8V\\2V\".3'6K17.%-(V\\=X.Y6F:D75N8:XV\\-.VF5:T\"P3U&7<8U!"
3、C:\WINDOWS\SYSTEM 下的access.ctl檔案。
不明白:Softsentry
3.0殼的軟體的註冊資訊都如此儲存,如果一個系統裡有幾個註冊的Softsentry 3.0殼的軟體,那會怎樣?!
―――――――――――――――――――――――――――――――――
【整 理】:
ID
號:95065
姓 名:fly (呵呵,姓名和單位不參與運算,可以隨意輸入)
單
位:【OCN】
註冊碼:k(8^do586%hkf_,|58653847165697|ogj56+&123
―――――――――――――――――――――――――――――――――
Cracked By
巢水工作坊――fly【OCN】
2003-4-12 0:30
相關文章
- Mac簡單時鐘螢幕保護程式2020-10-12Mac
- 飄雪動畫秀3.02註冊演算法分析!
(11千字)2015-11-15動畫演算法
- 發一個自己寫的簡單32位遊戲保護2018-04-23遊戲
- 破解Word檔案密碼保護的簡單方法(轉)2007-08-12密碼
- 簡單演算法――小護士 V1.22015-11-15演算法
- 落實等級保護工作的意義簡單說明2021-10-27
- 簡單設定保護WPS 2012表格公式2016-12-22公式
- 簡單演算法――暴風共享軟體管理器I V1.02015-11-15演算法
- 80386保護模式簡介(轉)2007-08-14模式
- 使用OAuth保護REST API並使用簡單的Angular客戶端2019-06-01OAuthRESTAPIAngular客戶端
- 一個簡單的keyfile保護的破解 (3千字)2001-06-15
- 讓Python帶你看一場唯美的橫飄雪!2019-01-10Python
- 關於幾個簡單遊戲的CD保護破解。 (3千字)2001-01-05遊戲
- [譯文]4種簡單的方法保護您的公司免受網路攻擊2018-08-13
- 保護模式2024-03-11模式
- 保護期限2024-03-20
- HMAC演算法:資料傳輸的保護神2024-03-16Mac演算法
- 簡單演算法2024-08-09演算法
- Windows守護程式簡單示例2018-12-28Windows
- ogg簡單維護命令2014-04-25
- 過等保流程簡單說明2022-10-17
- [譯]如何通過7個簡單步驟保護您的Linux伺服器2019-04-27Linux伺服器
- 【等級保護】等級保護共分為幾級?保護物件是指什麼?2022-03-03物件
- 【飛雪飄寒】asp.net刪除資料夾裡的所有檔案2008-07-24ASP.NET
- Google加強版權保護 簡化投訴流程2011-09-03Go
- 破解EXCLE保護2010-06-05
- 軟體保護2015-11-15
- 【等保小知識】等級保護單項測評包括哪些專案?2022-09-22
- ZipperDown漏洞簡單分析及防護2018-05-18
- 一個簡單的守護程式2014-07-25
- 簡單排序演算法2020-11-27排序演算法
- java poi操作excel 新增 鎖定單元格保護2015-03-11JavaExcel
- 紅旗飄飄——中線操作技巧之七,什麼是紅旗飄飄2022-03-03
- 戴爾易安信:保護業務 從保護資料開始2021-03-03
- 反射破壞單例的私有建構函式保護2019-01-07反射單例函式
- TypeScript 型別保護2019-04-27TypeScript型別
- 保護網站安全2022-12-17網站
- DG的保護模式2016-03-25模式