发新话题
打印

[原创]文件夹伪装工具原代码

[原创]文件夹伪装工具原代码

文章作者:白色猎人(Unicorn)
信息来源:邪恶八进制安全小组 中国

  前阵子特别无聊,我在自己电脑里整理黑软,无意中发现了个文件夹加密工具,经过半小时的分析,发现了它的加密原理,心想反正没事情做,于是根据它的原理用vb自己写了一个文件夹伪装程序,哈哈,自己动手丰衣足食。其原理和代码如下:

    (PS:下面的+s、+r、+h、+a分别表示系统属性、只读属性、隐藏属性和存档属性。)
   
    1.文件夹必须是+s +r的
    2.desktop.ini必须是+s +a +h +r
    3.[.ShellClassInfo]
      CLSID={21ec2020-3aea-1069-a2dd-08002b30309d}
      
      (这里的CLSID可以是:
      1、CLSID={21ec2020-3aea-1069-a2dd-08002b30309d}  控制面板  ‘如果是写入的代码是这个的话,文件夹会伪装成控制面板
      2、CLSID={20D04FE0-3AEA-1069-A2D8-08002B30309D}  我的电脑  ‘如果是写入的代码是这个的话,文件夹会伪装成我的电脑
      3、CLSID={645FF040-5081-101B-9F08-00AA002F954E}  回收站   ‘如果是写入的代码是这个的话,文件夹会伪装成回收站
      CLSID不同伪装出来的效果也不同的。)

  满足以上三个条件就可以实现文件夹的伪装了。
   
下面是核心部分的原代码(其实里面一些代码根本不完善。考虑也不周到的,希望大家看了自己完善吧。),上面我写上了注释,代码很简单,大家慢慢看吧,编程高手看了可别笑哦:

' ==加密部分的代码==
引用:
Dim n(20), i, mima, mima1, load
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Dim syspath As String          '获取系统路径的API函数
Dim len5 As Long

Private Sub Command2_Click()
    Form4.Show
End Sub

Private Sub syspath1()
  syspath = String(255, 0)
  len5 = GetSystemDirectory(syspath, 256)
  syspath = Left(syspath, InStr(1, syspath, Chr(0)) - 1)
End Sub

Private Sub Command3_Click()
    Call syspath1
    mima = Trim(Text2.Text)
    light = Len(mima)          '检查密码的长度
        If light < 0 Or light > 20 Then         &#39;判断密码的长度,如果密码长度不在0-20之间就报错
          MsgBox "你输入的密码长度不在0-20间,请重新输入", vbExclamation + vbOKOnly, "出错拉!"
          Text1.Text = ""
          Text2.Text = ""
          Text2.SetFocus
        End If
    For i = 1 To light          ’这里是密码加密的算法,算法很简单,是个异或运算(这里出现这个是因为伪装文件夹后需要输入密码才可以恢复,这里的密码就是这个拉。)
       n(i) = Asc(Mid(mima, i, 1))
       n(i) = Chr(n(i) Xor (i + light))
       mima1 = mima1 & n(i)
    Next
   
    Open Dir1.Path & "/mm.ini" For Output As #1    ’打开需要伪装的文件夹所在的路径,在这个文件夹中写入mm.ini文件,里面用来记录加过迷的密码
    Print #1, mima1
        MsgBox "密码设置成功,请记住你的密码哦", vbInformation + vbOKOnly, "恭喜!"
    Close #1
   
    Open syspath & "\mm.ini" For Output As #4  ’顺便将密码写入到系统目录下,防止丢失,为了便于恢复和解密,为此我专门写了个解密工具,扯远了
    Print #4, mima1
    Close #4
   
    Open Dir1.Path & "/desktop.ini" For Output As #2
    Print #2, "[.ShellClassInfo]"
    Print #2, "CLSID={21ec2020-3aea-1069-a2dd-08002b30309d}"
    Close #2
   
    Open App.Path & "/add.bat" For Output As #3  ’输出一个批处理是实现文件夹伪装的。里面的几条命令对各位黑哥应该都很熟悉了吧。
    Print #3, "attrib +s +a +h +r" & Chr(32) & Dir1.Path & "/desktop.ini"
    Print #3, "attrib +s +r" & Chr(32) & Dir1.Path
    Print #3, "del" & Chr(32) & "add.bat"
    Close #3
    Shell App.Path & "/add.bat", vbHide
    Unload Me
    Form1.Show
End Sub

Private Sub Command4_Click()
     Unload Me
     Form1.Show
End Sub

Private Sub Dir1_Change()
   Text1.Text = Dir1.Path
End Sub

Private Sub Drive1_Change()
     On Error Resume Next
     Dir1.Path = Drive1.Drive
End Sub

Private Sub Form_Load()
     Text1.Text = ""
     Text2.Text = ""
     Text2.PasswordChar = "*"
End Sub
&#39;  ==解密部分的代码==
解密部分的代码其实和加密部分的代码差不多的,我就不在多解释了,相信大家都能看的懂的。
引用:
Dim n(20)
Private Sub Command2_Click()
   Form4.Show
End Sub
Private Sub Command3_Click()
  On Error GoTo gg
  Open Dir1.Path & "\mm.ini" For Input As #1
    Do Until EOF(1)
      Line Input #1, Unicorn$         &#39;----读入的密码放入变量Unicorn中-----
    Loop
    light = Len(Unicorn$)
      If light < 0 Or light > 20 Then
        MsgBox "你输入的密码长度不在0-20间,请重新输入", vbExclamation + vbOKOnly, "出错拉!"
      End If
    For i = 1 To light
      n(i) = Asc(Mid(Unicorn$, i, 1))
      n(i) = Chr(n(i) Xor (i + light))
      mima = mima & n(i)
    Next
    If Trim(Text2.Text) = mima Then
      MsgBox "成功解密拉!", vbInformation, "恭喜"
      Open App.Path & "/m.bat" For Output As #2
          Print #2, "attrib -s -a -h -r" & Chr(32) & Dir1.Path & "\desktop.ini"
          Print #2, "attrib  -a " & Chr(32) & Dir1.Path & "\mm.ini"
          Print #2, "attrib -s -r" & Chr(32) & Dir1.Path
          Print #2, "del" & Chr(32) & Dir1.Path & "\desktop.ini"
          Print #2, "del" & Chr(32) & Dir1.Path & "\mm.ini"
          Print #2, "del" & Chr(32) & "m.bat"
      Close #2
      Shell App.Path & "/m.bat", vbHide
      Form1.Show
      Unload Me
    Else
      MsgBox "你输入的密码有问题,如果你不是非法用户,别紧张,再试试", vbExclamation + vbOKOnly, "密码错误"
      Text1.Text = ""
      Text2.Text = ""
      Text2.SetFocus
    End If
gg:
  Close #1
End Sub
Private Sub Command4_Click()
    Form1.Show
    Unload Me
End Sub
Private Sub Dir1_Change()
    Text1.Text = Dir1.Path
End Sub
Private Sub Drive1_Change()
    On Error Resume Next
    Dir1.Path = Drive1.Drive
End Sub
Private Sub Form_Load()
    Text1.Text = ""
    Text2.Text = ""
    Text2.PasswordChar = "*"
End Sub
以上就是文件夹伪装程序的原代码,这段代码有个很大的毛病就是伪装2个或2个以上文件夹的话,在系统目录下存放密码的文件mm.ini只能记录一个文件夹的密码了,哈哈,这个缺陷是我刚才看原代码的时候发现的,我也懒的再去改了,请大家自己修改吧。哈哈。
青铜的钝剑:我是没有眼泪的人 为了保护自己 今后我可以对任何人残忍 巫师的披风:我不怕死 因为我一直对它充满着无尽的好奇 想亲眼看一下死之后会是什么←目前状态 耀眼的强光:我最擅长从零开始创造世界 所以从来不怕失败 它最多也就让我一无所有

TOP

发新话题