首页
社区
课程
招聘
[旧帖] [原创]关于文件夹加密超级大师的闪电加密 0.00雪花
发表于: 2012-6-25 19:40 1485

[旧帖] [原创]关于文件夹加密超级大师的闪电加密 0.00雪花

2012-6-25 19:40
1485
菜菜鸟的第一次发帖
最近想写个文件夹加密程序,就去下载了个文件夹加密超级大师,看他是怎样做的,结果发现需要注册,抱着侥幸的心理拖到Od里,结果还是没有成功,太强了不是我等菜鸟能破的。
发现文件夹加密超级大师的有这么几个功能
第一个文件夹伪装,这个没什么好说的
第二个万能锁,用万能锁加锁的程序访问的时候会出现拒绝访问,开始我以为是文件占坑,用xuetr看了一下,没发现任何进程打开了文件,结果才发现它加载了驱动,估计是过滤驱动,附加在FileSystem\Sr上面,主要功能应该是隐藏文件夹,用xuetr卸载后。发现文件夹还是打不开,结果才发现是用了低级了手段,改了文件的安全权限,所有万能锁只对Ntfs文件夹有用,试着加锁Fat32的文件夹,会弹出不是Ntfs无法加锁的对话框
第三个闪电加密,我主要看它这个是怎样做的,早就听说它是把文件夹移动到回收站里,我最想知道的它是怎样移动到回收站的,经过仔细的查看之后终于弄明白的,它应该是这样做的,比喻我要加密的文件夹是123
第一,重命名123为123(1),然后在同目录下生成后缀名为fse的1.fse文件
第二,移动123到C:\RECYCLER\            ã..\W-S-FSE-750715-771104-3000..\com1.{21EC2020-3AEA-1069-A2DD-08002B30309D}\local 这个讨厌的路径下,文件夹加密超级大师对这个           ã..文件夹用驱动进行了隐藏,只有卸载dgs_fsd驱动才能看到,而且还设置了拒绝所有的权限,用xuetr和PowerTool都能看到,而且可以很轻松的访问,说了这么多,我用了一段代码简单的模仿了一下它的闪电加密,下面的代码不懂的不要尝试,后果自负

#ifndef UNICODE
#define UNICODE
#endif

#include <windows.h>
#include <stdio.h>
#include <Shlwapi.h>
#pragma comment(lib, "Shlwapi.lib")

#pragma setlocale(TEXT("en"))

LPTSTR g_szPath[] = {
	L"C:\\RECYCLER", 
	L"C:\\RECYCLER\\\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\xe3..\\",
	L"C:\\RECYCLER\\\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\xe3..\\W-S-FSE-750715-771104-3000..\\",
	L"C:\\RECYCLER\\\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\xe3..\\W-S-FSE-750715-771104-3000..\\com1.{21EC2020-3AEA-1069-A2DD-08002B30309D}\\",
	L"C:\\RECYCLER\\\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\xe3..\\W-S-FSE-750715-771104-3000..\\com1.{21EC2020-3AEA-1069-A2DD-08002B30309D}\\local"
};

BOOL InitDirectory()
{
	for(int i=0; i<5; i++)
	{
		if(!PathFileExists(g_szPath[i]))
		{
			if(!CreateDirectory(g_szPath[i], 0))
				return FALSE;
		}
	}

	return TRUE;
}

void main(int argc, char *argv[])
{
	TCHAR		wszPath[MAX_PATH];
	TCHAR		wszTmpPath[MAX_PATH];
	LPTSTR		pszName;

	if(argc == 1 || argc != 3)
	{
		printf("语法:\n");
		printf("%s -e[-d] 文件夹路径\n", argv[0]);
		printf("-e 加密文件夹\n");
		printf("-d 解密文件夹\n");
		return;
	}

	if(!InitDirectory())
		return;

	//将文件夹路径转换成宽字符
	mbstowcs(wszPath, argv[2], lstrlen(wszPath) + 1);
	//获取文件名
	pszName = ::PathFindFileName(wszPath);
	
	memset(wszTmpPath, 0, MAX_PATH);
	::lstrcat(wszTmpPath, g_szPath[4]);
	::lstrcat(wszTmpPath, L"\\");
	::lstrcat(wszTmpPath, pszName);

	if(strcmpi(argv[1], "-e") == 0)
	{
		if(!PathFileExistsA(argv[2]))//不存在
			return;
		
		if(MoveFile(wszPath, wszTmpPath))
		{
			printf("加密成功!\n");
		}
		else
		{
			printf("加密失败!错误:%p\n", ::GetLastError());
		}
	}
	else if(strcmpi(argv[1], "-d") == 0)
	{
		if(MoveFile(wszTmpPath, wszPath))
		{
			printf("解密成功!\n");
		}
		else
		{
			printf("解密失败!错误:%p\n", ::GetLastError());
		}
	}
}


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//