亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? filedisk.c

?? CROSSCRYPT是FILEDISK的拓展
?? C
字號:
/*
    Control program for a virtual disk driver for Windows NT/2000/XP.
    Copyright (C) 1999, 2000, 2001, 2002 Bo Brant閚.
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

   modified by Stefan Scherrer to add crypt support

*/

#include <windows.h>
#include <winioctl.h>
#include <stdio.h>
#include <stdlib.h>
#include <Wincrypt.h>
#include "filedisk.h"
#include "twofish.h"
#include "rmd160.h"
#include "tom.h"
#include "sha512.h"



int FileDiskSyntax(void)
{
    fprintf(stderr, "syntax:\n");
    fprintf(stderr, "filedisk /mount  <filename> [size[k|M|G] | /ro | /cd] [<drive:>] [Encryption]\n");
    fprintf(stderr, "filedisk /umount [<drive:>]\n");
    fprintf(stderr, "filedisk /status [<drive:>]\n");
    fprintf(stderr, "filedisk /encrypt <filename_plain> <filename_encryped> [Encryption]\n");
    fprintf(stderr, "filedisk /decrypt <filename_crypt> <filename_plain> [Encryption]\n");
	fprintf(stderr, "filedisk /rnd [/m]  (Generate Random key)\n");
    fprintf(stderr, "\n");
    fprintf(stderr, "filename formats:\n");
    fprintf(stderr, "  c:\\path\\filedisk.img\n");
    fprintf(stderr, "  \\Device\\Harddisk0\\Partition1\\path\\filedisk.img\n");
    fprintf(stderr, "  \\\\server\\share\\path\\filedisk.img\n");
    fprintf(stderr, "\n");
    fprintf(stderr, "Encryption \n");
    fprintf(stderr, "/2f:key encrypt / decrypt with twofish using the given key\n");
    fprintf(stderr, "/aes128:key encrypt / decrypt with AES128 using the given key\n");
    fprintf(stderr, "/aes256:key encrypt / decrypt with AES256 using the given key\n");
    fprintf(stderr, "/aes192:key encrypt / decrypt with AES192 using the given key\n");
    fprintf(stderr, "\n");
    fprintf(stderr, "example:\n");
    fprintf(stderr, "filedisk /mount  c:\\temp\\filedisk.img 8M /aes256\n");
    fprintf(stderr, "filedisk /mount  c:\\temp\\cdimage.iso /cd g:\n");
    fprintf(stderr, "filedisk /umount f:\n");
    fprintf(stderr, "filedisk /umount\n");

    return -1;
}

void PrintLastError(char* Prefix)
{
    LPVOID lpMsgBuf;

    FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER |
        FORMAT_MESSAGE_FROM_SYSTEM |
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        GetLastError(),
        0,
        (LPTSTR) &lpMsgBuf,
        0,
        NULL
        );

    fprintf(stderr, "%s %s", Prefix, (LPTSTR) lpMsgBuf);

    LocalFree(lpMsgBuf);
}

int
FileDiskMount(
    int                     DeviceNumber,
    POPEN_FILE_INFORMATION  OpenFileInformation,
    char                    DriveLetter,
    BOOLEAN                 CdImage
)
{
    char    VolumeName[] = "\\\\.\\ :";
    char    DeviceName[255];
    HANDLE  Device;
    DWORD   BytesReturned;

    VolumeName[4] = DriveLetter;

    Device = CreateFile(
        VolumeName,
        GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE,
        NULL,
        OPEN_EXISTING,
        FILE_FLAG_NO_BUFFERING,
        NULL
        );

    if (Device != INVALID_HANDLE_VALUE)
    {
        SetLastError(ERROR_BUSY);
        PrintLastError(&VolumeName[4]);
        return -1;
    }

    if (CdImage)
    {
        sprintf(DeviceName, DEVICE_NAME_PREFIX "Cd" "%u", DeviceNumber);
    }
    else
    {
        sprintf(DeviceName, DEVICE_NAME_PREFIX "%u", DeviceNumber);
    }

    if (!DefineDosDevice(
        DDD_RAW_TARGET_PATH,
        &VolumeName[4],
        DeviceName
        ))
    {
        PrintLastError(&VolumeName[4]);
        return -1;
    }

    Device = CreateFile(
        VolumeName,
        GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE,
        NULL,
        OPEN_EXISTING,
        FILE_FLAG_NO_BUFFERING,
        NULL
        );

    if (Device == INVALID_HANDLE_VALUE)
    {
        PrintLastError(&VolumeName[4]);
        DefineDosDevice(DDD_REMOVE_DEFINITION, &VolumeName[4], NULL);
        return -1;
    }

    if (!DeviceIoControl(
        Device,
        IOCTL_FILE_DISK_OPEN_FILE,
        OpenFileInformation,
        sizeof(OPEN_FILE_INFORMATION) + OpenFileInformation->FileNameLength - 1,
        NULL,
        0,
        &BytesReturned,
        NULL
        ))
    {
		printf("Fn: %s\n",OpenFileInformation->FileName);
        PrintLastError("FileDisk:");
        DefineDosDevice(DDD_REMOVE_DEFINITION, &VolumeName[4], NULL);
        return -1;
    }

    return 0;
}

int FileDiskUmount2(char *VolumeName)
{
    char DriveLetter[4];
    HANDLE  Device;
    DWORD   BytesReturned;
    POPEN_FILE_INFORMATION OpenFileInformation;

	strcpy(DriveLetter," :");

    Device = CreateFile(
        VolumeName,
        GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE,
        NULL,
        OPEN_EXISTING,
        FILE_FLAG_NO_BUFFERING,
        NULL
        );

    if (Device == INVALID_HANDLE_VALUE)
    {
        //PrintLastError(&VolumeName[4]);
        return -3;
    }

    	OpenFileInformation = malloc(sizeof(OPEN_FILE_INFORMATION) + MAX_PATH);

		if (!DeviceIoControl(
					Device,
					IOCTL_FILE_DISK_QUERY_FILE,
					NULL,
					0,
					OpenFileInformation,
					sizeof(OPEN_FILE_INFORMATION) + MAX_PATH,
					&BytesReturned,
					NULL
					))
		{
			//PrintLastError(VolumeName);
			free(OpenFileInformation);
			CloseHandle(Device);
			return -2;
		}
	DriveLetter[0] = OpenFileInformation->DriveLetter;

	free(OpenFileInformation);
	if (!DriveLetter[0]) {
		CloseHandle(Device);
		return 0;
	}



    if (!DeviceIoControl(
        Device,
        FSCTL_LOCK_VOLUME,
        NULL,
        0,
        NULL,
        0,
        &BytesReturned,
        NULL
        ))
    {
        PrintLastError("Ignored:");
        //return -1;
    }

    if (!DeviceIoControl(
        Device,
        IOCTL_FILE_DISK_CLOSE_FILE,
        NULL,
        0,
        NULL,
        0,
        &BytesReturned,
        NULL
        ))
    {
        PrintLastError("FileDisk:");
        return -1;
    }

    if (!DeviceIoControl(
        Device,
        FSCTL_DISMOUNT_VOLUME,
        NULL,
        0,
        NULL,
        0,
        &BytesReturned,
        NULL
        ))
    {
        PrintLastError(VolumeName);
        return -1;
    }

    if (!DeviceIoControl(
        Device,
        FSCTL_UNLOCK_VOLUME,
        NULL,
        0,
        NULL,
        0,
        &BytesReturned,
        NULL
        ))
    {
        //PrintLastError("Ignored:");
        //return -1;
    }

    CloseHandle(Device);


    if (!DefineDosDevice(
        DDD_REMOVE_DEFINITION,
        DriveLetter,
        NULL
        ))
    {
        PrintLastError(DriveLetter);
        return -1;
    }

	printf("%s: unmounted\n",DriveLetter);
    return 0;
}


int FileDiskUmount(char DriveLetter)
{
	    char VolumeName[60] = "\\\\.\\ :";
		int i;



		if (DriveLetter) {
			VolumeName[4] = DriveLetter;

			i= FileDiskUmount2(VolumeName);
			if (i) PrintLastError("Unmount

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
911精品国产一区二区在线| 欧美综合欧美视频| 亚洲五月六月丁香激情| 欧美成人一区二区| 欧美日韩免费不卡视频一区二区三区| 精品制服美女丁香| 日本午夜精品一区二区三区电影 | 中文字幕av不卡| 久久久青草青青国产亚洲免观| 欧美大度的电影原声| 欧美日韩精品系列| 99综合电影在线视频| 成人av影院在线| 国产白丝网站精品污在线入口| 国产一区二区美女诱惑| 久久精品国产在热久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 免费不卡在线视频| 麻豆精品国产91久久久久久| 美女性感视频久久| 日本不卡123| 日韩高清在线电影| 免费成人深夜小野草| 久久99国产精品免费| 日韩经典一区二区| 午夜亚洲国产au精品一区二区| 亚洲第一av色| 午夜免费久久看| 日日摸夜夜添夜夜添亚洲女人| 亚洲成a人片综合在线| 天天影视色香欲综合网老头| 久久精品国产精品青草| 狠狠色狠狠色综合系列| 国产一区二区三区电影在线观看| 大胆欧美人体老妇| 91麻豆精品在线观看| 欧美午夜精品久久久| 91在线精品一区二区| 欧美色窝79yyyycom| 欧美视频一二三区| 欧美一级淫片007| 精品国产sm最大网站免费看| 久久亚洲一级片| 国产精品乱人伦一区二区| 亚洲二区在线视频| 日韩福利电影在线观看| 国内精品免费**视频| 成人高清视频在线| 欧美三级资源在线| 日韩精品一区二区三区视频播放 | 中文字幕在线免费不卡| 亚洲欧美一区二区三区国产精品| 一区二区三国产精华液| 日韩精品一级二级| 国产一区二区三区美女| 91影院在线免费观看| 欧美人成免费网站| 精品国产污网站| 国产日韩欧美高清| 亚洲精品国产视频| 麻豆精品一区二区av白丝在线| 国产乱一区二区| 在线日韩国产精品| 欧美哺乳videos| 亚洲少妇中出一区| 亚洲成av人片在线| 国产mv日韩mv欧美| 在线免费观看不卡av| 欧美www视频| 一区二区三区自拍| 国内精品久久久久影院色| 色婷婷久久久亚洲一区二区三区 | 色域天天综合网| 欧美三级蜜桃2在线观看| 欧美视频一区二区三区四区| 久久无码av三级| 视频一区在线播放| 久久色在线观看| 欧美综合久久久| 懂色av一区二区三区免费看| 精品国产1区2区3区| 久久成人精品无人区| 91国产视频在线观看| 一区二区日韩电影| 欧美精品粉嫩高潮一区二区| 亚洲另类在线视频| 国产综合成人久久大片91| 欧美日韩精品一区二区三区四区| 综合色中文字幕| 亚洲成人你懂的| 国产精品影视网| 91视频91自| 国产精品久久久爽爽爽麻豆色哟哟| 国产亚洲综合性久久久影院| 日韩av中文字幕一区二区| 国产激情精品久久久第一区二区 | 国产精品久久久久一区二区三区共 | 欧美肥胖老妇做爰| 日本91福利区| 678五月天丁香亚洲综合网| 亚洲永久免费av| 欧美精选午夜久久久乱码6080| 日本不卡免费在线视频| 日本福利一区二区| 亚洲国产精品影院| 欧美色图片你懂的| 久久亚洲二区三区| 国产精品自拍av| 中文字幕av在线一区二区三区| 国产麻豆91精品| 久久亚洲一区二区三区四区| 韩国三级中文字幕hd久久精品| 日韩欧美在线综合网| 九九热在线视频观看这里只有精品| 精品1区2区在线观看| 日韩精品国产欧美| 777色狠狠一区二区三区| 日韩激情视频网站| 亚洲图片你懂的| 日韩欧美久久一区| 激情五月婷婷综合网| 亚洲欧美日韩一区二区| 欧美一区二区视频在线观看2020| 成人一区二区三区| 五月天久久比比资源色| 亚洲一二三级电影| 亚洲精品伦理在线| 中文字幕亚洲一区二区av在线| 91免费小视频| 亚洲婷婷在线视频| 欧美日韩一区成人| 七七婷婷婷婷精品国产| 欧美精品一区二区三区一线天视频| 国产精品正在播放| 亚洲欧美另类小说视频| 欧美日韩精品一区二区天天拍小说| 日韩—二三区免费观看av| 精品对白一区国产伦| 成人性生交大片免费| 午夜精品一区二区三区电影天堂| 精品福利视频一区二区三区| 91影院在线免费观看| 日本欧美久久久久免费播放网| 国产日韩欧美一区二区三区综合| 972aa.com艺术欧美| 久久精品国产一区二区三| 国产精品久久久久久户外露出| 欧美精品123区| 国产aⅴ综合色| 天天影视色香欲综合网老头| 国产网站一区二区| 欧美日韩在线三级| 国产一区二区美女诱惑| 亚洲国产精品久久不卡毛片| 中文字幕一区二区三区在线播放 | 精品亚洲成av人在线观看| 国产精品久久久久久一区二区三区| 欧美手机在线视频| 国产成人免费高清| 五月婷婷久久综合| 国产精品你懂的在线欣赏| 91精品国产91久久综合桃花| 成人午夜在线视频| 日本欧美韩国一区三区| ㊣最新国产の精品bt伙计久久| 91精品国产综合久久精品| 成人精品视频一区二区三区| 欧美aaaaaa午夜精品| 亚洲色图一区二区三区| 欧美v日韩v国产v| 精品视频一区三区九区| 成人免费毛片app| 男人的j进女人的j一区| 日韩久久一区二区| 26uuu久久天堂性欧美| 欧美日韩在线三区| caoporn国产精品| 久久精品国产在热久久| 亚洲不卡av一区二区三区| 亚洲欧洲日韩av| 久久综合色一综合色88| 欧美精品丝袜中出| 色婷婷激情综合| 成人在线视频首页| 国产精品自拍三区| 另类人妖一区二区av| 日韩和欧美一区二区| 一区二区在线观看视频在线观看| 国产精品色在线| 久久综合资源网| 欧美一区二区福利视频| 欧美日韩电影在线播放| 色香蕉久久蜜桃| 99re6这里只有精品视频在线观看| 九九九精品视频| 免费美女久久99| 天堂一区二区在线| 天堂蜜桃91精品| 婷婷丁香激情综合| 亚洲成精国产精品女|