首页
社区
课程
招聘
Thinstall.V2.7X.Single.Main.eXe.UnPacK Script
发表于: 2006-5-30 22:58 19145

Thinstall.V2.7X.Single.Main.eXe.UnPacK Script

fly 活跃值
85
2006-5-30 22:58
19145

/////////////////////////////////////////////////////////////
// FileName    :  Thinstall V2.7X.oSc
// Comment     :  Thinstall.V2.717/V2.718.Single.Main.eXe.UnPacK
// Environment :  WinXP SP2,OllyDbg V1.10,OllyScript V0.92
// Author      :  fly
// WebSite     :  http://www.unpack.cn
// Date        :  2006-05-30 18:30
/////////////////////////////////////////////////////////////
#log
dbh

var Map
var Temp
var CloseHandle
var MapViewOfFile
var GetEnvironmentVariableA
var MagicOccasion
var FindOEP
var ImageBase
var PE_Signature
var SizeOfImage
var NumberOfSections
var GetNumberOfSections

MSGYN "Plz Clear All BreakPoints  +  Set Debugging Option Ignore All Excepions Options  +  Set Events Make first pause at Entry Point !"
cmp $RESULT, 0
je TryAgain

//ImageBase______________________________________

mov Temp,eax
exec
                push 0
                call GetModuleHandleA
ende
mov ImageBase,eax
mov eax,Temp
mov Temp,ImageBase
add Temp,3C
mov Temp,[Temp]
add Temp,ImageBase
mov PE_Signature,Temp
log PE_Signature

mov Temp,PE_Signature
add Temp,50
mov SizeOfImage,[Temp]
log SizeOfImage

//CloseHandle______________________________________

gpa "CloseHandle", "KERNEL32.dll"
mov CloseHandle,$RESULT
bp CloseHandle

eob CloseHandle
esto
GoOn0:
esto

CloseHandle:
cmp eip,CloseHandle
jne GoOn0
bc CloseHandle

//MapViewOfFile______________________________________

gpa "MapViewOfFile", "KERNEL32.dll"
find $RESULT, #5DC21400#
cmp $RESULT, 0
je NoFind
add $RESULT,1
mov MapViewOfFile,$RESULT
bp MapViewOfFile

eob MapViewOfFile
esto
GoOn1:
esto

MapViewOfFile:
cmp eip,MapViewOfFile
jne GoOn1
cmp eax,0
je GoOn1
mov Map,eax
bc MapViewOfFile

//GetEnvironmentVariableA______________________________________

/*
0012FD3C    00D5243C  /CALL 到 GetEnvironmentVariableA 来自 00D52436
0012FD40    00DFB9B0  |VarName = "THNOCMDLN"
0012FD44    0012FD8C  |Buffer = 0012FD8C
0012FD48    00000002  \BufSize = 2
*/

gpa "GetEnvironmentVariableA", "KERNEL32.dll"
mov GetEnvironmentVariableA,$RESULT
bp GetEnvironmentVariableA

eob GetEnvironmentVariableA
esto
GoOn2:
esto

GetEnvironmentVariableA:
cmp eip,GetEnvironmentVariableA
jne GoOn2
mov Temp,esp
add Temp,4
mov Temp,[Temp]
log Temp
cmp [Temp],4F4E4854
jne GoOn2
bc GetEnvironmentVariableA

//CreateProcessA______________________________________

find Map,#A1????????250000000285C00F84#
cmp $RESULT,0
je NoFind
add $RESULT,0A
mov [$RESULT],#33C0#

//FixSizeOfImage______________________________________

/*
00D411A0     55                 push ebp
00D411A1     8BEC               mov ebp,esp
00D411A3     53                 push ebx
00D411A4     56                 push esi
00D411A5     57                 push edi
00D411A6     A1 1084E000        mov eax,dword ptr ds:[E08410]
00D411AB     25 00000001        and eax,1000000
00D411B0     85C0               test eax,eax
00D411B2     74 35              je short 00D411E9
00D411B4     64:A1 30000000     mov eax,dword ptr fs:[30]
00D411BA     85C0               test eax,eax
00D411BC     78 0F              js short 00D411CD
00D411BE     8B40 0C            mov eax,dword ptr ds:[eax+C]
00D411C1     8B40 0C            mov eax,dword ptr ds:[eax+C]
00D411C4     8140 20 00200000   add dword ptr ds:[eax+20],2000
//Modify SizeOfImage
00D411CB     EB 1C              jmp short 00D411E9
00D411CD     6A 00              push 0
00D411CF     FF15 B012DF00      call dword ptr ds:[DF12B0]; kernel32.GetModuleHandleA
*/

find Map,#250000000185C0743564A130000000#
cmp $RESULT,0
je NoFind
add $RESULT,05
mov [$RESULT],#85C0EB35#

//NumberOfSections______________________________________

/*
00D489A3     F3:A5              rep movs dword ptr es:[edi],dword ptr ds:[esi]
00D489A5     8BB5 8CFEFFFF      mov esi,dword ptr ss:[ebp-174]
00D489AB     B9 38000000        mov ecx,38
00D489B0     8B7D EC            mov edi,dword ptr ss:[ebp-14]
00D489B3     F3:A5              rep movs dword ptr es:[edi],dword ptr ds:[esi]
00D489B5     E9 A6010000        jmp 00D48B60
*/

find Map,#B9380000008B7DECF3A5E9#
cmp $RESULT,0
je NoFind
add $RESULT,0A
mov GetNumberOfSections,$RESULT
bp GetNumberOfSections

eob GetNumberOfSections
esto
GoOn3:
esto

GetNumberOfSections:
cmp eip,GetNumberOfSections
jne GoOn3
bc GetNumberOfSections
mov Temp,PE_Signature
add Temp,6
mov NumberOfSections,[Temp]
log NumberOfSections

//MagicOccasion______________________________________

/*
00D46F84     6A 01              push 1
00D46F86     E8 25D0FFFF        call 00D43FB0
00D46F8B     83C4 04            add esp,4
00D46F8E     5F                 pop edi
00D46F8F     5E                 pop esi
00D46F90     8BE5               mov esp,ebp
00D46F92     5D                 pop ebp
00D46F93     C3                 retn
*/

find Map,#6A01E825D0FFFF83C4045F5E8BE55D#
cmp $RESULT,0
je NoFind
add $RESULT,0F
mov MagicOccasion,$RESULT
bp MagicOccasion

eob MagicOccasion
esto
GoOn4:
esto

MagicOccasion:
cmp eip,MagicOccasion
jne GoOn4
bc MagicOccasion

//FixPE______________________________________

mov Temp,PE_Signature
add Temp,6
mov [Temp],NumberOfSections

add Temp,0CA
mov [Temp],#00000000000000000000000000000000#
//Clear Bound Import Table and Import Address Table's Address And Size.

MSG "Plz Set  LordPE->Option->Task View ->Select  " Full Dump: force RAW mode "  Only  !    "
Dump:
MSGYN  "  OK ,  plz dump it now !  Dump file will be fixed !  Don't click " Y " before dump . "
cmp $RESULT, 0
je Dump

//FindOEP______________________________________

/*
00D41C31     83C4 08            add esp,8
00D41C34     FF95 50FFFFFF      call dword ptr ss:[ebp-B0]
00D41C3A     6A 00              push 0
*/

find Map,#83C408FF9550FFFFFF6A00#
cmp $RESULT,0
je NoFind
add $RESULT,03
mov FindOEP,$RESULT
bp FindOEP

eob FindOEP
esto
GoOn5:
esto

FindOEP:
cmp eip,FindOEP
jne GoOn5
bc FindOEP
esti

//GameOver______________________________________

log eip
cmt eip, "This is the OEP!  Found By: fly "                                                                           
MSG "Just : OEP !  Your dump file already fiXed .    Good Luck     "
ret                       

NoFind:
MSG "Error! Don't find.     "
ret

TryAgain:
MSG " Plz  Try  Again   !   "
ret


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (45)
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
宁静的夏天
天空中繁星点点
心里头有些思念
思念着你的脸
我可以假装看不见
也可以偷偷的想念
直到让我摸到你那温暖的脸
知了也睡了
安心的睡了
在我心里面宁静的夏天

不知道为什么一看到这个贴子,就想到这个了
2006-5-30 23:01
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
沙发
2006-5-30 23:10
0
雪    币: 1866
活跃值: (95)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
站位!支持一下!!!
2006-5-30 23:47
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
5
这是干什么用的?
2006-5-30 23:49
0
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
6
fly兄辛苦了
2006-5-31 00:10
0
雪    币: 690
活跃值: (1826)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
7
最初由 堀北真希 发布
宁静的夏天
天空中繁星点点
心里头有些思念
思念着你的脸
我可以假装看不见
........

这是因为你是fly的粉丝
2006-5-31 07:11
0
雪    币: 200
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
适用目标有哪些?我用这个脚本来脱一个thinstall的壳好像不行啊
2006-5-31 10:27
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
9
看标题
Thinstall V2.7X
2006-5-31 10:45
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
10
支持,端午节+儿童节的礼物!
2006-5-31 11:40
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
11
粉丝算我一个
2006-5-31 12:27
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
顶.........
2006-5-31 17:10
0
雪    币: 12
活跃值: (1890)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
支持
2006-5-31 23:04
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
14
/////////////////////////////////////////////////////////////
// FileName    :  Thinstall V2.5X.oSc
// Comment     :  Thinstall.V2.5X.Single.Main.eXe.UnPacK
// Environment :  WinXP SP2,OllyDbg V1.10,OllyScript V0.92
// Author      :  fly
// WebSite     :  http://www.unpack.cn
// Date        :  2006-05-29 12:40
/////////////////////////////////////////////////////////////
#log
dbh

var Map
var Temp
var VirtualAlloc
var SetEnvironmentVariableA
var MagicOccasion
var FindOEP
var ImageBase
var PE_Signature
var SizeOfImage
var NumberOfSections
var GetNumberOfSections

MSGYN "Plz Clear All BreakPoints + Set Debugging Option Ignore All Excepions Options + Set Events Make first pause at Entry Point !"
cmp $RESULT, 0
je TryAgain

//ImageBase______________________________________

mov Temp,eax
exec
                push 0
                call GetModuleHandleA
ende
mov ImageBase,eax
mov eax,Temp
mov Temp,ImageBase
add Temp,3C
mov Temp,[Temp]
add Temp,ImageBase
mov PE_Signature,Temp
log PE_Signature

mov Temp,PE_Signature
add Temp,50
mov SizeOfImage,[Temp]
log SizeOfImage

//VirtualAlloc______________________________________

/*
004017C4     6A 40              push 40
004017C6     68 00101000        push 101000
004017CB     8B45 0C            mov eax,dword ptr ss:[ebp+C]
004017CE     6BC0 0C            imul eax,eax,0C
004017D1     FFB405 90FDFFFF    push dword ptr ss:[ebp+eax-270]
004017D8     6A 00              push 0
004017DA     FF15 F8534000      call dword ptr ds:[4053F8] ; kernel32.VirtualAlloc
004017E0     A3 845A4000        mov dword ptr ds:[405A84],eax
*/

gpa "VirtualAlloc", "KERNEL32.dll"
find $RESULT,#5DC21000#
cmp $RESULT,0
je NoFind
add $RESULT,1
mov VirtualAlloc,$RESULT
bp VirtualAlloc

eob VirtualAlloc
esto
GoOn0:
esto

VirtualAlloc:
cmp eip,VirtualAlloc
jne GoOn0
mov Temp,esp
mov Temp,[Temp]
sub Temp,12
cmp [Temp],FF0CC06B
jne GoOn0
bc VirtualAlloc
mov Map,eax
log Map       
               

//SetEnvironmentVariableA______________________________________

/*
0012FB38    7FF42553  /CALL to SetEnvironmentVariableA from 7FF4254D
0012FB3C    7FF866C4  |VarName = "TS_EXECUTE_EXTERNAL"
0012FB40    00000000  \Value = NULL
*/

gpa "SetEnvironmentVariableA", "KERNEL32.dll"
mov SetEnvironmentVariableA,$RESULT
bp SetEnvironmentVariableA

eob SetEnvironmentVariableA
esto
GoOn1:
esto

SetEnvironmentVariableA:
cmp eip,SetEnvironmentVariableA
jne GoOn1
mov Temp,esp
add Temp,4
mov Temp,[Temp]
cmp [Temp],455F5354
jne GoOn01
bc SetEnvironmentVariableA

//CreateProcessA______________________________________

/*
7FF75E35     833D E85FF97F 00   cmp dword ptr ds:[7FF95FE8],0
7FF75E3C     75 1C              jnz short 7FF75E5A
7FF75E3E     68 F86BF87F        push 7FF86BF8                    ; ASCII "IsDebuggerPresent"
7FF75E43     68 EC6BF87F        push 7FF86BEC                    ; ASCII "kernel32"
7FF75E48     FF15 D862F87F      call dword ptr ds:[7FF862D8]     ; kernel32.GetModuleHandleA
7FF75E4E     50                 push eax
7FF75E4F     FF15 C862F87F      call dword ptr ds:[7FF862C8]     ; kernel32.GetProcAddress
7FF75E55     A3 E85FF97F        mov dword ptr ds:[7FF95FE8],eax
7FF75E5A     C705 F05FF97F 9400>mov dword ptr ds:[7FF95FF0],94
7FF75E64     68 F05FF97F        push 7FF95FF0
7FF75E69     FF15 9C60F87F      call dword ptr ds:[7FF8609C]     ; kernel32.GetVersionExA
7FF75E6F     A1 AC59F97F        mov eax,dword ptr ds:[7FF959AC]
7FF75E74     25 00000002        and eax,2000000
7FF75E79     85C0               test eax,eax
7FF75E7B     0F84 B3010000      je 7FF76034
7FF75E81     FF15 9860F87F      call dword ptr ds:[7FF86098]     ; kernel32.GetCurrentProcessId
*/

find Map,#A1????????250000000285C00F84#
cmp $RESULT,0
je NoFind
add $RESULT,0A
mov [$RESULT],#33C0#

//FixSizeOfImage――――――――――――――――――――――――――――――――

/*
7FF41D41     25 00000001        and eax,1000000
7FF41D46     85C0               test eax,eax
7FF41D48     74 35              je short 7FF41D7F
7FF41D4A     64:A1 30000000     mov eax,dword ptr fs:[30]
7FF41D50     85C0               test eax,eax
7FF41D52     78 0F              js short 7FF41D63
7FF41D54     8B40 0C            mov eax,dword ptr ds:[eax+C]
7FF41D57     8B40 0C            mov eax,dword ptr ds:[eax+C]
7FF41D5A     8140 20 00200000   add dword ptr ds:[eax+20],2000
//Modify SizeOfImage
7FF41D61     EB 1C              jmp short 7FF41D7F
*/

find Map,#250000000185C0743564A130000000#
cmp $RESULT,0
je NoFind
add $RESULT,05
mov [$RESULT],#85C0EB35#

//NumberOfSections――――――――――――――――――――――――――――――――

/*
7FF614F3     F3:A5              rep movs dword ptr es:[edi],dword ptr ds:[esi]
7FF614F5     6A 38              push 38
7FF614F7     59                 pop ecx
7FF614F8     8DB5 BCFEFFFF      lea esi,dword ptr ss:[ebp-144]
7FF614FE     8B7D E8            mov edi,dword ptr ss:[ebp-18]
7FF61501     F3:A5              rep movs dword ptr es:[edi],dword ptr ds:[esi]
7FF61503     A1 A459F97F        mov eax,dword ptr ds:[7FF959A4]
7FF61508     25 00008000        and eax,800000
7FF6150D     85C0               test eax,eax
7FF6150F     0F84 8F000000      je 7FF615A4
*/

find Map,#F3A56A38598DB5????????8B7D??F3A5A1????????250000800085C00F848F000000#
cmp $RESULT,0
je NoFind
add $RESULT,2
mov GetNumberOfSections,$RESULT
bp GetNumberOfSections
pause
eob GetNumberOfSections
esto
GoOn2:
esto

GetNumberOfSections:
cmp eip,GetNumberOfSections
jne GoOn2
bc GetNumberOfSections
mov Temp,PE_Signature
add Temp,6
mov NumberOfSections,[Temp]
log NumberOfSections

//MagicOccasion――――――――――――――――――――――――――――――――

/*
7FF61821     FF75 DC            push dword ptr ss:[ebp-24]
7FF61824     E8 FB2AFFFF        call 7FF54324
7FF61829     834D DC FF         or dword ptr ss:[ebp-24],FFFFFFFF
7FF6182D     8B45 0C            mov eax,dword ptr ss:[ebp+C]
7FF61830     8B00               mov eax,dword ptr ds:[eax]
7FF61832     83E0 02            and eax,2
7FF61835     85C0               test eax,eax
*/

find Map,#FF????E8????????83??????8B????8B0083E00285C0#
cmp $RESULT,0
je NoFind
mov MagicOccasion,$RESULT
bp MagicOccasion

eob MagicOccasion
esto
GoOn3:
esto

MagicOccasion:
cmp eip,MagicOccasion
jne GoOn3
bc MagicOccasion

//FixPE――――――――――――――――――――――――――――――――

mov Temp,PE_Signature
add Temp,6
mov [Temp],NumberOfSections

add Temp,0CA
mov [Temp],#0000000000000000#
//Clear Bound Import Table Address And Size.

MSG "Plz Set  LordPE->Option->Task View -> Only Select  " Full Dump: force RAW mode "    !    "
Dump:
MSGYN  "  OK ,  plz dump it now !  Dump file will be fixed !  Don't click " Y " before dump . "
cmp $RESULT, 0
je Dump
esti

//FindOEP――――――――――――――――――――――――――――――――

/*
7FF4289C     FF95 48FCFFFF      call dword ptr ss:[ebp-3B8]
7FF428A2     6A 00              push 0
*/

find Map,#FF95????FFFF6A00#
cmp $RESULT,0
je NoFind
mov FindOEP,$RESULT
bp FindOEP

eob FindOEP
esto
GoOn4:
esto

FindOEP:
cmp eip,FindOEP
jne GoOn4
bc FindOEP
esti

//GameOver――――――――――――――――――――――――――――――――  

log eip
cmt eip, "This is the OEP!  Found By: fly  "                                                                           
MSG "Just : OEP !  Your dump file already fiXed .    Good Luck     "
ret                       

NoFind:
MSG "Error! Don't find.     "
ret

TryAgain:
MSG " Plz  Try  Again   !   "
ret
上传的附件:
2006-6-5 16:36
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
15
1、Thinstall V2.5X.oSc 只支持Thinstall V2.5X加壳主eXe文件的脱壳,其他版本未测试
2、不支持捆绑的其他文件的提取
3、附件是加壳的试炼品,也欢迎大家测试Thinstall V2.5X加壳的其他目标
4、LordPE抓取进程内存的选项设置:LordPE->Option->Task View ->Only Select->Full Dump: force RAW mode
5、支持双进程(Anti-Debugging)
6、支持Destroy PE Header和Enable Anti-ProcDump
7、支持Thinstall V2.5X加壳的.Net程序主eXe文件脱壳,但是需要简单手动调整一下dump的文件,有机会再说
上传的附件:
2006-6-5 16:42
0
雪    币: 11
活跃值: (213)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
支持,不过 2.7x连试用版都下不到,楼主能否放出来一个?
2006-6-6 11:17
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
初学

00401F0E jmp     eax
00BA1C34 call    dword ptr [ebp-0B0h]  ; OEP

通过上面脚本unpack thinstall.exe(v2.719)
unpack后程序不能正确运行。

在原来的thinstall.exe中
---P----004F0518  |.  FF15 40925100 CALL DWORD PTR DS:[519240]
00519240  7FF900F0
7FF900F0 好像是在stack中的一个hook函数

在通过脚本unpack的unpack.exe中
---U----004F0518  |.  FF15 40925100 CALL DWORD PTR DS:[<&KERNEL32.FindFirstF>; \FindFirstFileA
00519240 >7C813559  kernel32.FindFirstFileA

thinstall hook了一部分win32api,如FindFirstFileA, CreateFileA...
而这一部分iat没有在unpack.exe中正确恢复
所以会出现一些对话框
如:File does not exists:c:\program files\thinstall/resource/install.scm

请帮忙
2006-6-6 17:42
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
18
脚本会解压出捆绑的主exe文件
其他文件需要自己去找出来

主exe的输入表都已修复,看说明
2006-6-6 18:49
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
File does not exists:c:\program files\thinstall/resource/install.scm

多谢fly
再请教对有thinstall.exe(v2.719)经验者

1. 使用FileMonitor,在thinstall运行时没有访问thinstall.scm文件, 是不是
把thinstall.scm作为资源嵌入到thinstall.exe中,运行时从heap中读取,如果
是怎么样能够提取thinstall.scm

2. 如果程序是通过hook一些文件操作的函数,直接跳过install.scm,
license.scm, 可以直接忽略么,thinstall.exe可以继续正确运行么?

3. 对于thinstall.exe(v2.719)有没有其他的方法,是不是不需要unpack, 请提示

4. 有没有crack thinstall.exe(v2.719)的教程,和v2.521不太一样,

多谢共享
2006-6-7 14:36
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
20
初学就不必去搞Thinstall主程序了
不是打击你积极性,自己的目标要选好
Thinstall捆绑了很多文件,完全提取很费时间的
当然,你有耐心有时间可以慢慢玩下去
2006-6-7 15:18
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
^_^
多谢良言
换个目标
2006-6-7 21:28
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
22
最近准备找时间看个Thinstall版本
如果你有兴趣和时间,欢迎一起研究

可以通过论坛给我EMail
2006-6-7 23:07
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
有兴趣,也有时间
就是没有到55贴.

希望能多多学习
:-)
2006-6-8 20:55
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
用了一个取巧的方法(用thinstall.exe)取出了
thinstall.exe(v2.719)中的所有文件
good lucky

非常感谢fly的scriptor
现在unpack的thinstall.exe运行ok

接下来,看看算法
^_^
2006-6-9 13:51
0
雪    币: 200
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
什么方法?共享出来让俺学习学习,最近在看thinstall的license key的检验算法
2006-6-9 14:05
0
游客
登录 | 注册 方可回帖
返回
//