- UID
- 48024
- 帖子
- 602
- 精华
- 0
- 贡献
- 5
- 推广
- 0
- 有效BUG
- 0
- 来自
- 杭州
- 注册时间
- 2007-3-7
|
2#
发表于 2008-6-6 08:50
| 只看该作者
网上漫山遍野的破解网站
http://www.x2y2.com/sites/Thunder/
http://xl.zg99.com/JM.asp
还有工具,连源代码都有。
http://hi.baidu.com/helfee/blog/ ... 026785c917688d.html
#SingleInstance force
#NoTrayIcon
Chars=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
Gui,Add,Edit,w250 vurl ReadOnly,复制地址后,点【Encode/Decode】
Gui,Add,Button,w120,Encode/&Decode
Gui,Add,Button,w120 xp+130,&Cancel
Gui,Add,Edit,w250 vu1 ReadOnly x10
Gui,Add,Edit,w250 vu2 ReadOnly
Gui,Add,Edit,w250 vu3 ReadOnly
Gui,Show,w275 h60,迅雷/快车/旋风 地址转换
Return
ButtonEncode/Decode:
GuiControlGet,url
IfNotEqual,url,%Clipboard%
{GuiControl,,edit1,% Clipboard
url:=Clipboard
}
RegExMatch(url,"(?<=^).+(?=://)",t)
RegExMatch(url,"(?<=://).+",m)
If t=thunder
RegExMatch(InvBase64(m),"(?<=^AA).+(?=ZZ)",url)
Else If t=flashget
RegExMatch(InvBase64(m),"(?<=FLASHGET.).+(?=.FLASHGET)",url)
Else If t=qqdl
url:=InvBase64(m)
Else IfEqual,t,
{Gui,Show,w275 h60
GuiControl,,edit1,错误地址!!!
return
}
Else Goto,Encode
Gui,Show,w275 h60
GuiControl,,url,%url%
Clipboard:=url
ControlFocus,edit1
ControlSend,edit1,^a
Return
Encode:
Gui,Show,w275 h140
GuiControl,,u1, % "Thunder://" Base64("AA" url "ZZ")
GuiControl,,u2, % "Flashget://" Base64("[FLASHGET]" url "[FLASHGET]")
GuiControl,,u3, % "Qqdl://" Base64(url)
Return
#IfWinActive,迅雷/快车/旋风 地址转换 ahk_class AutoHotkeyGUI
~^LButton::
~LButton::
MouseGetPos,,,id,control
WinGetTitle,title,ahk_id %id%
StringTrimRight,control2,control,1
if (title="迅雷/快车/旋风 地址转换" and control2="edit")
{ if control<>edit1
{
GuiControlGet,aa,,%control%
ControlSend,%control%,^a,ahk_id %id%
Clipboard:=aa
}
}
Return
#IfWinActive
guiClose:
guiEscape:
ButtonCancel:
ExitApp
;From http://www.autohotkey.com/forum/viewtopic.php?p=35427
Base64(string) {
Loop Parse,string
{
If Mod(A_Index,3) = 1
buffer := Asc(A_LoopField) << 16
Else If Mod(A_Index,3) = 2
buffer += Asc(A_LoopField) << 8
Else {
buffer += Asc(A_LoopField)
out := out . Code(buffer>>18) . Code(buffer>>12) . Code(buffer>>6) . Code(buffer)
}
}
If Mod(StrLen(string),3) = 0
Return out
If Mod(StrLen(string),3) = 1
Return out . Code(buffer>>18) . Code(buffer>>12) "=="
Return out . Code(buffer>>18) . Code(buffer>>12) . Code(buffer>>6) "="
}
InvBase64(code) {
StringReplace code,code,=,,All
Loop Parse,code
{
If Mod(A_Index,4) = 1
buffer := DeCode(A_LoopField) << 18
Else If Mod(A_Index,4) = 2
buffer += DeCode(A_LoopField) << 12
Else If Mod(A_Index,4) = 3
buffer += DeCode(A_LoopField) << 6
Else {
buffer += DeCode(A_LoopField)
out := out . Chr(buffer>>16) . Chr(255 & buffer>>8) . Chr(255 & buffer)
}
}
If Mod(StrLen(code),4) = 0
Return out
If Mod(StrLen(code),4) = 2
Return out . Chr(buffer>>16)
Return out . Chr(buffer>>16) . Chr(255 & buffer>>8)
}
Code(i) { ; <== Chars[i & 63],0-base index
Global Chars
StringMid i,Chars,(i&63)+1,1
Return i
}
DeCode(c) { ; c = a char in Chars ==> position [0,63]
Global Chars
Return InStr(Chars,c,1) - 1
} |
|