Board logo

标题: [原创]VB做的小软件,给文本加密! [打印本页]

作者: zhoushijay     时间: 2007-5-22 10:43    标题: [原创]VB做的小软件,给文本加密!
软件做的很简陋,特别是选择路径的时候,请大家多多包涵
本软件原理是把每个字符转为ASC码,然后+1再转回字符,反编译原理就是-1
加密成功后会在同目录下生成一个加密后的文件
文本加密程序

作者: eech     时间: 2007-5-22 11:12
我用它来加密AutoRun.exe的AUTORUN.INI文件,
可加密还原
但加密后,AutoRun.exe认不出来,唉,遗憾

作者: zhoushijay     时间: 2007-5-22 12:17
还原后里面的文字还是一样的吗?

作者: lianjiang2004     时间: 2007-5-22 13:44
对批处理没用吧?

作者: wudixin96     时间: 2007-5-22 14:04
既然只能加密文本文件。就可以把非文本文件过滤不显示

作者: benteng302     时间: 2007-5-22 17:27
哦,做得太糙了。不怎么好呀。

作者: baomaboy     时间: 2007-5-22 20:57
Originally posted by eech at 2007-5-22 11:12:
我用它来加密AutoRun.exe的AUTORUN.INI文件,
可加密还原
但加密后,AutoRun.exe认不出来,唉,遗憾


你把exe当文本来操作?你即使不做任何更改只是用记事本另存一个exe试试。

作者: zhoushijay     时间: 2007-5-23 11:42
baomaboy
不是,他的意思是把AUTORUN.INI文件来编译,按理说应该可以的

作者: baomaboy     时间: 2007-5-23 14:01
Originally posted by zhoushijay at 2007-5-23 11:42:
baomaboy
不是,他的意思是把AUTORUN.INI文件来编译,按理说应该可以的


哦 那就比较奇怪了。

作者: zhoushijay     时间: 2007-5-23 15:00
把EXE发上来就有人说这也简陋那也粗糙,我要是只发个加密的代码上来不知道还会不会这样说,还没叫你们买注册码呢 - .-

作者: eech     时间: 2007-5-29 18:29
Originally posted by baomaboy at 2007-5-22 20:57:


你把exe当文本来操作?你即使不做任何更改只是用记事本另存一个exe试试。


我只是加密INI文件

作者: 3742668     时间: 2007-5-29 23:00
vbs就够了:
Set oStream = CreateObject("Adodb.Stream")
With oStream
.Type = 1
.Mode = 3
.Open
End With

Set oIE=WScript.CreateObject("InternetExplorer.Application","Event_")
With oIE
.MenuBar = 0
.AddressBar = 0
.ToolBar = 0
.StatusBar = 0
.Width = 350
.Height = 100
.Resizable = 0
.Navigate "about:blank"
.Left=Fix((oIE.Document.ParentWindow.Screen.AvailWidth-oIE.Width) / 2)
.Top=Fix((oIE.Document.ParentWindow.Screen.AvailHeight-oIE.Height) / 2)
.Visible = 1
End With

With oIE.Document
.Write "<HTML><BODY Scroll=No>"
.Write "<Input type='File' ID='ccc' />"
.Write "<Button ID='aaa'>加密</Button>"
.Write "<Button ID='bbb'>解密</Button>"
.Write "</body></html>"
End With

oIE.Document.All.aaa.OnClick=GetRef("aaa")
oIE.Document.All.bbb.OnClick=GetRef("bbb")

Do
WScript.Sleep 200
Loop


Sub Event_OnQuit

oStream.Close
Set oIE = Nothing
Set oStream = Nothing
WScript.Quit

End Sub

'***********************************************************************************
'加密
'***********************************************************************************
Sub aaa

Dim str
str = oIE.Document.All.ccc.Value
oStream.LoadFromFile str
oStream.Position = 0
Hex2Bin Bin2StrInc(oStream.Read),str & ".bak"
oStream.Close
oStream.Open

End Sub

'***********************************************************************************
'解密
'***********************************************************************************
Sub bbb

Dim str
str = oIE.Document.All.ccc.Value
oStream.LoadFromFile str
oStream.Position = 0
Hex2Bin Bin2StrDec(oStream.Read),Mid(str,1,Len(str) - 4)
oStream.Close
oStream.Open

End Sub


'***********************************************************************************
'2进制转换为16进制字符串并+1
'***********************************************************************************
Function Bin2StrInc(bin)

Dim i,str
For i = 1 To Lenb(bin)
str = Ascb(Midb(bin,i,1))
Bin2StrInc = Bin2StrInc & Right("0" & Hex(str + 1),2)
Next

End Function

'***********************************************************************************
'2进制转换为16进制字符串并-1
'***********************************************************************************
Function Bin2StrDec(bin)

Dim i,str
For i = 1 To Lenb(bin)
str = Ascb(Midb(bin,i,1))
Bin2StrDec = Bin2StrDec & Right("0" & Hex(str - 1),2)
Next


End Function

'***********************************************************************************
'16进制字符串转换为2进制流
'***********************************************************************************
Sub Hex2Bin(strHex,strFileName)

Dim objStream,objXML,objElement

Set objStream = Createobject("Adodb.Stream")
Set objXML = Createobject("Microsoft.XMLDOM")
Set objElement = objXML.CreateElement("oTmpElement")
objElement.DataType = "bin.hex"
objElement.NodeTypedValue = strHex
With objStream
.Type = 1
.Mode = 3
.Open
.Write objElement.NodeTypedValue
.SaveToFile strFileName
End With
objStream.Close
Set objStream = Nothing
Set objXML = Nothing
Set objElement = Nothing

End Sub

只是简单的例子,并未做任何Bug检测。

作者: qzwqzw     时间: 2007-5-29 23:12
楼上真是好样的

楼主真是有胆的

就一个最简单的凯撒密码干吗还要用VB

想起当时用ANSI C写的这类程序真是太简洁了

其实用debug写个汇编脚本也十分简单

关键没有什么流啦、设备啦那些莫名其妙的

另外,凯撒密码虽然简单(依靠词频和字符特征可以很快确定密码原理)

但有时其变形也能收到意想不到的效果

作者: lxmxn     时间: 2007-5-29 23:15
qzwqzw 可否用debug写个汇编脚本出来让我们学习学习??

嘿嘿,正在学汇编。

作者: qzwqzw     时间: 2007-5-29 23:22
嘿嘿,我好像说过了

天太热,有些发昏,实在没心思写代码

不过我记下了

再过几天

如果没人发善心

只好由我做苦工了

作者: zh159     时间: 2007-5-30 01:59
好东西,正在找一些直接将16进制写成bin的VBS脚本

作者: zhoushijay     时间: 2007-5-30 11:21
本来是想用VBS的,不过正在学习VB嘛,所以就用VB了,就当作作业