现在的位置: 首页 > 综合 > 正文

一行C代码破解亿赛通文档加密系统

2013年10月06日 ⁄ 综合 ⁄ 共 1642字 ⁄ 字号 评论关闭

亿赛通是国内知名的提供数据安全管理、数据安全保护、网络信息安全三大领域的公司,其产品主要为企业提供信息加密和安全服务.

亿赛通---文档安全管理系统在国内被广泛应用于公司代码保护.其安全性是获得大多数人认可的.亿赛能暴力破解是有难度里,所以这里提供一种简单的投机取巧的非暴力破解方法,只作为探讨,千万不要用于非法目的.由于不恰当的使用本文,引发的不良后果,由肇事者自己负责。

 

我是这样研究的,由于我使用的是取巧的方法,所以这里只有一行程序,所以这里不对亿赛通加解密方法,暴力破解做过多说明:

通过观察我们可以发现亿赛通工作的规律,

1.是亿赛通只加密特定的敏感的文件,比如常见的加密.c文件,不加密.txt文件,可能是出于效率考虑吧

2.是亿赛通加密过的文件,比如.c,使用UE打开是显示明文,使用NOTEPAD打开就是显示密文.

 

为了研究他的加解密过程,我写了一个函数,把.c文件的内容不经过文档工具,直接拷贝到另一个TXT文件里,结果打开后发现是密文.

这说明,亿赛通是把磁盘上的敏感文件全部加密,然后在打开的时候解密.那么我们的解密方法就只能从这里入手.他解密后我们把他存为非加密文档.由此我赶紧写了一行代码,system("type aa.c>bb.txt");发现正好可以,为了辨别方便,由于除了.C,他还加密了其他文件,全部变成TXT会存在某些覆盖的危险,我做如下改正,system("type aa.c>bb.c1");由是我们得到如下程序,可以把文件夹下所有.c解密另存为.c1,关键代码只有一行就是system(type aa.c>bb.c1);当然,你也可以改进,使用多线程查找子目录,也可以修改为解密其他文件或者所有文件.有了这个,也可以逆向重命名,得到原始的C文件.附全部源代码:

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <windows.h>
int main(int argc, char* argv[])
{
 WIN32_FIND_DATA fd;
 HANDLE hd;
 char cmdstr[1024] = {0};
 
 hd=FindFirstFile((LPCTSTR)"*.c",&fd);  //开始查找
 if(hd==INVALID_HANDLE_VALUE)
 {
  printf("没有找到文件");
  return 0;
 }
 if(!(fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))
 {
  sprintf(cmdstr, "type %s>%s%d", fd.cFileName, fd.cFileName, 1);   //生成解密字串
  system(cmdstr);     //执行解密
 }
 while(FindNextFile(hd,&fd)) //继续查找
 {
  if(!(fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))
  {
   sprintf(cmdstr, "type %s>%s%d", fd.cFileName, fd.cFileName, 1);   //生成解密字串
            system(cmdstr);    //执行解密
  }
 }
 FindClose(hd);//关闭查找
 return 0;
}

 

 

可以加入鼠标右键
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT/*/Shell]

[HKEY_CLASSES_ROOT/*/Shell/type]
@="type"

[HKEY_CLASSES_ROOT/*/Shell/type/command]
@="Cmd.exe /c type %1>%1.txt"

 

 

 题外话,由于这里我取巧使用的type显示文档的功能,所以如果你没有VC或者其他C编译工具,你可以使用批处理,一个FOR循环加一个TYPE就可以了.

抱歉!评论已关闭.