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


  Quote:
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


  Quote:
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


  Quote:
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了,就当作作业