|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『楼 主』:
all2vbs
主要用来在vbs中"夹带"exe,dll以及ocx。支持拖放,参数。
'***********************************************************************************
'恢复exe文件的代码
'***********************************************************************************
sCode = "sFile = InputBox(""输入要生成的文件名,包括扩展名:"")" + vbCrLf + _
" if Len(Trim(sFile)) = 0 Then Wscript.Quit" + vbCrLf + _
"Set oStream = Createobject(""Adodb.Stream"")" + vbCrLf + _
"Set oXML = Createobject(""Microsoft.XMLDOM"")" + vbCrLf + _
"Set oElement = oXML.CreateElement(""oTmpElement"")" + vbCrLf + _
" oElement.DataType = ""bin.hex""" + vbCrLf + _
" oElement.NodeTypedValue = str" + vbCrLf + _
"With oStream" + vbCrLf + _
" .Type = 1" + vbCrLf + _
" .Mode = 3" + vbCrLf + _
" .Open" + vbCrLf + _
" .Write oElement.NodeTypedValue" + vbCrLf + _
" .SaveToFile sFile" + vbCrLf + _
"End With" + vbCrLf + _
" oStream.Close" + vbCrLf + _
"Set oStream = Nothing" + vbCrLf + _
"Set oXML = Nothing" + vbCrLf + _
"Set oElement = Nothing"
'***********************************************************************************
'开始
'***********************************************************************************
sFile = GetFile()
Set oStream = CreateObject("Adodb.Stream")
Set oFso = CreateObject("Scripting.FileSystemObject")
Set oFile = oFso.OpenTextFile(sFile & ".vbs",2,True)
oFile.WriteLine "str= _"
With oStream
.Type = 1
.Open
.LoadFromFile sFile
End With
Do Until oStream.EOS
'生成的vbs文件每一行的长度由oStream.Read()中的参数来控制
oFile.WriteLine Space(4) + "+" + Chr(34) + _
Bin2Str(oStream.Read(20)) + chr(34) + " _"
Loop
'由于上一行结束有"_",所以要空一行
oFile.WriteLine Space(1)
oFile.Write sCode
oStream.Close
oFile.Close
Set oStream = Nothing
Set oFile = Nothing
Set oFso = Nothing
'***********************************************************************************
'2进制转换为16进制字符串
'***********************************************************************************
Function Bin2Str(bin)
Dim i,str
For i = 1 To Lenb(bin)
If Ascb(Midb(bin,i,1)) < 16 Then str = str + "0"
str = str & Hex(Ascb(Midb(bin,i,1)))
Next
Bin2Str = str
End Function
'***********************************************************************************
'获得要操作的文件
'***********************************************************************************
Function GetFile()
On Error Resume Next
Dim strFile,objFso,objFile
If WScript.Arguments.Count < 1 Then
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "exe 文件|*.exe|dll 文件|*.dll|ocx 文件|*.ocx|所有 文件|*.*"
objDialog.ShowOpen
strFile = objDialog.FileName
Set objDialog = Nothing
Else
strFile = WScript.Arguments(0)
end if
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.GetFile(strFile)
If Err Then
If Err.Number = 5 Then WScript.Quit
WScript.Echo Err.Description
Err.Clear
WScript.Quit
Else
GetFile = strFile
End If
Set objFile = Nothing
Set objFso = Nothing
End Function 请大家帮忙测试。
|
|
2006-11-13 06:42 |
|
|
electronixtar
铂金会员
积分 7493
发帖 2672
注册 2005-9-2
状态 离线
|
『第
2 楼』:
狂顶!加分!
试了一下,编码效率是原文件大小的 2-3倍之间。太厉害了!
想想有法用base64来编码,个人觉得更好。可以只扩大体积1/3
[ Last edited by electronixtar on 2006-11-13 at 06:57 AM ]
|
C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |
|
2006-11-13 06:49 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
|
2006-11-13 06:56 |
|
|
electronixtar
铂金会员
积分 7493
发帖 2672
注册 2005-9-2
状态 离线
|
『第
4 楼』:
3742668版主果然强悍,用 MASM32 / TASM32 写的exe!再次拜!
|
C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |
|
2006-11-13 06:59 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
5 楼』:
Quote: | 想想有法用base64来编码,个人觉得更好。可以只扩大体积1/3 |
|
Microsoft.XMLDOM支持base64编码,可以指定oElement.DataType = "bin.base64"。
Quote: | ...,用 MASM32 / TASM32 写的exe |
|
汗一个,初学masm32,入门级水平。
|
|
2006-11-13 07:11 |
|
|
ccwan
金牌会员
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
6 楼』:
斑竹不愧是高手!佩服!
|
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2006-11-13 07:17 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
7 楼』:
版主果然强悍啊。佩服得没话说了。。
加分顶一个~
|
|
2006-11-13 10:49 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
|
2006-11-16 03:55 |
|
|
hdzc
初级用户
积分 146
发帖 86
注册 2007-10-1
状态 离线
|
|
2007-10-24 15:36 |
|
|
gyfhgyfh
初级用户
积分 54
发帖 25
注册 2006-9-29
状态 离线
|
|
2007-11-8 22:54 |
|