中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-13 19:26
楼 主 Reg2VBS→vbs版 发表于 2007-06-01 12:27 ·  中国 江苏 南京 电信
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
2 发表于 2007-06-01 14:01 ·  中国 湖北 武汉 电信
中级用户
★★
积分 301
发帖 135
注册 2007-05-15 16:49
UID 88615
性别 男
状态 离线
辛苦了啊,baomaboy大师又一个vbs版的好东东
不过最好把源码还原出来吧
reg转换生成的vbs也能还原的更清楚些吗
3 发表于 2007-06-01 14:09 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
UID 80606
性别 男
状态 离线
让我猜猜你的原理:
应该是把里面的注册表路径提取出来放入变量 a
然后再把这个reg文件改写成, ws.write a 名字再换成*.VBS

是这样的吗?
你好,脚本专家!
<a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a>
4 发表于 2007-06-01 14:16 ·  中国 江苏 南京 电信
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
Originally posted by wert123 at 2007-6-1 14:01:
辛苦了啊,baomaboy大师又一个vbs版的好东东
不过最好把源码还原出来吧
reg转换生成的vbs也能还原的更清楚些吗


算不得什么好东东,只是简单得文本读取创建而已,并且没什么实用价值,如果不是因为你不喜欢reg只喜欢vbs这个原因此东东都没必要存在,另外你说reg转vbs后加密了,其实没有,从那个转换后得文件完全可以推出我的源码,这也是不加密转换后代码得原因。
源码加密还是老原因,模版、无用代码、每次都要引起口舌。。。。
5 发表于 2007-06-01 14:32 ·  中国 江苏 南京 电信
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
Originally posted by zhoushijay at 2007-6-1 14:09:
让我猜猜你的原理:
应该是把里面的注册表路径提取出来放入变量 a
然后再把这个reg文件改写成, ws.write a 名字再换成*.VBS

是这样的吗?

基本正确
6 发表于 2007-06-01 14:35 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
UID 80606
性别 男
状态 离线
O 也
你好,脚本专家!
<a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a>
7 发表于 2007-06-01 15:26 ·  中国 湖北 武汉 电信
中级用户
★★
积分 301
发帖 135
注册 2007-05-15 16:49
UID 88615
性别 男
状态 离线
源码加密还是老原因,老原因是什么
麻烦把源码贴出来吧,我不会推,也不会转
我O 也不了啊
8 发表于 2007-06-01 15:51 ·  中国 江苏 南京 电信
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
得,看下面的吧还是。。。。。。

[ Last edited by baomaboy on 2007-6-1 at 04:12 PM ]
9 发表于 2007-06-01 16:04 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
Rem EnCode_4.0 By baomaboy
'reg2vbs.vbs by baomaboy
Dim WshSHell,FSO
on Error Resume Next
Set WshSHell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WinVer = WshSHell.Environment("Process")
Set Args = WScript.Arguments
CloseTime = 5
FileName = WScript.ScriptName
FileFullName = WScript.ScriptFullName
FilePath = FSO.GetParentFolderName(FileFullName)

InsPath = FSO.GetSpecialFolder(1)
InsFullName = FSO.BuildPath(InsPathFileName)
LnkPathNT = WshSHell.SpecialFolders(2)
LnkPath9X = WshSHell.SpecialFolders(14)
LnkPathAll = WshSHell.SpecialFolders("SendTo")
OtherFileName = "Manage_New.txt"

OtherFilePath = FSO.GetSpecialFolder(2)
TemFileName = "无标题":TemFilePath = FSO.GetSpecialFolder(2)
Copyright = "玲珑科技"
Email = "Email:fty1995@163.com"
InsTitle = "Reg2Vbsbybaomaboy"
RegPath1 = "HKEY_CLASSES_ROOT\regfile\shell\RegToVbs\"
RegValue1 = "转换为VBS脚本文件"
RegForm1 = "REG_SZ"
RegPath2 = "HKEY_CLASSES_ROOT\regfile\shell\RegToVbs\command\"
RegValue2 = "wscript.exe""""%L"""
RegForm2 = "REG_SZ"

If FileFullName <> InsFullName Then

intAnswer = MsgBox("【是】将“" + InsAnswer + "”加入到右键菜单," & Chr(10) & Chr(10) & "【否】将“" + InsAnswer + "”从右键菜单删除。",vbQuestion + vbYesNoCancel,"安装-" + InsTitle + "-" + Copyright)

If intAnswer = vbYes Then

WshSHell.RegWrite RegPath1,RegValue1,RegForm1
WshSHell.RegWriteRegPath2,RegValue2,RegForm2
FSO.GetFile(FileFullName).Copy(InsFullName)
WshSHell.popup "添加脚本文件:" + vbLf + InsFullName + vbLf + "添加注册表项:" + _
Chr(34) + RegPath1 + Chr(34) + vbLf & CloseTime & " 秒钟后本窗口将自动关闭!" + vbLf + vbLf + _
" Copyright(C)" + Copyright + " " & QQ & " " + Email,CloseTime,"安装成功 - " + InsTitle + " - " + Copyright, 0 + 64
End If

If IntAnswer = vbNo Then
WshSHell.RegDelete RegPath2
WshSHell.RegDelete RegPath1
FSO.DeleteFile InsFullName

WshSHell.popup "删除脚本文件:" + vbLf + InsFullName + vbLf + "删除注册表项:" + _
Chr(34) + RegPath1 + Chr(34) + vbLf & CloseTime & " 秒钟后本窗口将自动关闭!" + vbLf + vbLf + _
" Copyright(C)" + Copyright + " " & QQ & " " + Email,CloseTime,"卸载成功 - " + InsTitle + " - " + Copyright, 0 + 64
End If

If intAnswer = vbCancel Then
End If
Else

If Args.count = 0 Then wscript.quit

Set ReadFile = FSO.OpenTextFile(Args(0),1,False, - 1)
ReadAllText = ReadFile.ReadAll
ReadFile.Close

If Mid(ReadAllText,1,3) <> "Win" And Mid(ReadAllText,1,3) <> "REG" Then

Set ReadFile = FSO.OpenTextFile(Args(0),1)
ReadAllText = ReadFile.ReadAll
ReadFile.Close

End If

For i = 1 To Len(ReadAllText)
TempNum = Asc(Mid(ReadAllText,i,1))
If TempNum = 34 Then
TempNum = 18
ElseIf TempNum = 13 Then
TempNum = 28
ElseIf TempNum = 10 Then
TempNum = 29
End If
ThisText1 = ThisText1 & Chr(TempNum)
Next

Set WriteFile = FSO.OpenTextFile(Args(0) & ".VBS",2,True)

WriteFile.WriteLine("On Error Resume Next:Dim WshSHell,FSO,Reg2Vbs:Set WshSHell = WScript.CreateObject(""WScript.Shell""):Set FSO = CreateObject(""Scripting.FileSystemObject""):Reg2Vbs=""" & ThisText1 & """")
WriteFile.WriteLine("Execute(""For i=1 To Len(Reg2Vbs)""&vbCrLf&""TempNum = Asc(Mid(Reg2Vbs,i,1))""&vbCrLf&""If TempNum = 28 Then""&vbCrLf&""TempNum = 13""&vbCrLf&""ElseIf TempNum = 29 Then""&vbCrLf&""TempNum = 10""&vbCrLf&""elseif TempNum=18 Then""&vbCrLf&""TempNum = 34""&vbCrLf&""End If""&vbCrLf&""ThisText2 = ThisText2 & chr(TempNum)""&vbCrLf&""Next"")")
WriteFile.WriteLine("Set RegFile = FSO.OpenTextFile(FSO.BuildPath(FSO.GetSpecialFolder(2),""Temp.reg""),2,True):RegFile.WriteLine(ThisText2):RegFile.Close:WshSHell.Run(""regedit /s ""&FSO.BuildPath(FSO.GetSpecialFolder(2),""Temp.reg"")):WScript.Sleep 500:FSO.DeleteFile FSO.BuildPath(FSO.GetSpecialFolder(2),""Temp.reg"")")

WriteFile.Close
End If

Set WshSHell = Nothing:SetFSO = Nothing:Set Args = Nothing:WScript.Quit(0)

[ Last edited by slore on 2007-6-2 at 06:43 PM ]
10 发表于 2007-06-01 16:09 ·  中国 湖北 武汉 电信
中级用户
★★
积分 301
发帖 135
注册 2007-05-15 16:49
UID 88615
性别 男
状态 离线
谢谢啊

[ Last edited by wert123 on 2007-6-1 at 04:11 PM ]
11 发表于 2007-06-01 16:31 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
For i = 1 To Len(ReadAllText)
TempNum = Asc(Mid(ReadAllText,i,1))
If TempNum = 34 Then
TempNum = 18
ElseIf TempNum = 13 Then
TempNum = 28
ElseIf TempNum = 10 Then
TempNum = 29
End If
ThisText1 = ThisText1 & Chr(TempNum)
Next
这个部分……为什么不用replace函数?引号的话转义成双引号就好了。

这个原理简直…………

你还说zhoushijay的基本是对的=。=一点都不搭边。。。
12 发表于 2007-06-01 16:32 ·  中国 江苏 南京 电信
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
slore 兄的代码着色 是论坛的功能吗? 好像还没见别人用啊?还是你自己做的。真不错。
13 发表于 2007-06-01 16:35 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
自己做的……问题还很多,所以没有发布。。。对我自己的测试代码行不通自己还要手动改好多地方(自己想的测试代码太BT了,自己有点挑剔吧,要做就做好,不然不想做)……

比如End If要上2次相同的颜色……这个要改。。。最近都没时间……

还有_换行的问题……
14 发表于 2007-06-01 16:39 ·  中国 江苏 南京 电信
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
最初是加密reg的(后删掉了那句),所以没考虑用replace。

zhoushijay说,读给变量,再写回去reg,基本思路就是这样吗。只是他说的笼统一些怎么会不搭边啊。

[ Last edited by baomaboy on 2007-6-1 at 04:49 PM ]
15 发表于 2007-06-01 16:46 ·  中国 江苏 南京 电信
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
Originally posted by slore at 2007-6-1 16:35:
自己做的……问题还很多,所以没有发布。。。对我自己的测试代码行不通自己还要手动改好多地方(自己想的测试代码太BT了,自己有点挑剔吧,要 ...


希望slore兄早日完成,若做成本论坛的插件,那可是。。。。。
论坛跳转: