/* * Autopsy Forensic Browser * * Copyright 2012 Basis Technology Corp. * Contact: carrier <at> sleuthkit <dot> org * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sleuthkit.autopsy.coreutils; /** * * @author dick */ class LnkEnums { private static final byte[] CDRIVES = new byte[]{(byte) 0xe0, 0x4f, (byte) 0xd0, 0x20, (byte) 0xea, 0x3a, 0x69, 0x10, (byte) 0xa2, (byte) 0xd8, 0x08, 0x00, 0x2b, 0x30, 0x30, (byte) 0x9d}; private static final byte[] CMYDOCS = new byte[]{(byte) 0xba, (byte) 0x8a, 0x0d, 0x45, 0x25, (byte) 0xad, (byte) 0xd0, 0x11, (byte) 0x98, (byte) 0xa8, 0x08, 0x00, 0x36, 0x1b, 0x11, 0x03}; private static final byte[] IEFRAME = new byte[]{(byte) 0x80, 0x53, 0x1c, (byte) 0x87, (byte) 0xa0, 0x42, 0x69, 0x10, (byte) 0xa2, (byte) 0xea, 0x08, 0x00, 0x2b, 0x30, 0x30, (byte) 0x9d}; public enum CommonCLSIDS { CDrivesFolder(CDRIVES), CMyDocsFolder(CMYDOCS), IEFrameDLL(IEFRAME), Unknown(new byte[16]); private byte[] flag; private CommonCLSIDS(byte[] flag) { this.flag = flag; } static CommonCLSIDS valueOf(byte[] type) { for (CommonCLSIDS value : CommonCLSIDS.values()) { if (java.util.Arrays.equals(value.flag, type)) { return value; } } return Unknown; } } public enum LinkFlags { HasLinkTargetIDList(0x00000001), HasLinkInfo(0x00000002), HasName(0x00000004), HasRelativePath(0x00000008), HasWorkingDir(0x00000010), HasArguments(0x00000020), HasIconLocation(0x00000040), IsUnicode(0x00000080), ForceNoLinkInfo(0x00000100), HasExpString(0x00000200), RunInSeparateProcess(0x00000400), Unused1(0x00000800), HasDarwinID(0x00001000), RunAsUser(0x00002000), HasExpIcon(0x00004000), NoPidlAlias(0x00008000), Unused2(0x00010000), RunWithShimLayer(0x00020000), ForceNoLinkTrack(0x00040000), EnableTargetMetaData(0x00080000), DisableLinkPathTracking(0x00100000), DisableKnownFolderTracking(0x00200000), DisableKnownFolderAlias(0x00400000), AllowLinkToLink(0x00800000), UnaliasOnSave(0x01000000), PreferEnvironmentPath(0x02000000), KeepLocalIDListForUNCTarget(0x04000000); private int flag; private LinkFlags(int flag) { this.flag = flag; } public int getFlag() { return flag; } } public enum DriveType { DRIVE_UNKNOWN(0x00000000), DRIVE_NO_ROOT_DIR(0x00000001), DRIVE_REMOVABLE(0x00000002), DRIVE_FIXED(0x00000003), DRIVE_REMOTE(0x00000004), DRIVE_CDROM(0x00000005), DRIVE_RAMDISK(0x00000006); private int flag; private DriveType(int flag) { this.flag = flag; } public int getFlag() { return flag; } static DriveType valueOf(int type) { for (DriveType value : DriveType.values()) { if (value.flag == type) { return value; } } return DRIVE_UNKNOWN; } } public enum FileAttributesFlags { READONLY(0x00000001), HIDDEN(0x00000002), SYSTEM(0x00000004), RESERVED1(0x00000008), DIRECTORY(0x00000010), ARCHIVE(0x00000020), RESERVED2(0x00000040), NORMAL(0x00000080), TEMPORARY(0x00000100), SPARSE_FILE(0x00000200), REPARSE_POINT(0x00000400), COMPRESSED(0x00000800), OFFLINE(0x00001000), NOT_CONTENT_INDEXED(0x00002000), ENCRYPTED(0x00004000); private int flag; private FileAttributesFlags(int flag) { this.flag = flag; } public int getFlag() { return flag; } } public enum LinkInfoFlags { VolumeIDAndLocalBasePath(0x00000001), CommonNetworkRelativeLinkAndPathSuffix(0x00000002); private int flag; private LinkInfoFlags(int flag) { this.flag = flag; } public int getFlag() { return flag; } } public enum CommonNetworkRelativeLinkFlags { ValidDevice(0x00000001), ValidNetType(0x00000002); private int flag; private CommonNetworkRelativeLinkFlags(int flag) { this.flag = flag; } public int getFlag() { return flag; } } public enum NetworkProviderType { WNNC_NET_AVID(0x001A0000), WNNC_NET_DOCUSPACE(0x001B0000), WNNC_NET_MANGOSOFT(0x001C0000), WNNC_NET_SERNET(0x001D0000), WNNC_NET_RIVERFRONT1(0x001E0000), WNNC_NET_RIVERFRONT2(0x001F0000), WNNC_NET_DECORB(0x00200000), WNNC_NET_PROTSTOR(0x00210000), WNNC_NET_FJ_REDIR(0x00220000), WNNC_NET_DISTINCT(0x00230000), WNNC_NET_TWINS(0x00240000), WNNC_NET_RDR2SAMPLE(0x00250000), WNNC_NET_CSC(0x00260000), WNNC_NET_3IN1(0x00270000), WNNC_NET_EXTENDNET(0x00290000), WNNC_NET_STAC(0x002A0000), WNNC_NET_FOXBAT(0x002B0000), WNNC_NET_YAHOO(0x002C0000), WNNC_NET_EXIFS(0x002D0000), WNNC_NET_DAV(0x002E0000), WNNC_NET_KNOWARE(0x002F0000), WNNC_NET_OBJECT_DIRE(0x00300000), WNNC_NET_MASFAX(0x00310000), WNNC_NET_HOB_NFS(0x00320000), WNNC_NET_SHIVA(0x00330000), WNNC_NET_IBMAL(0x00340000), WNNC_NET_LOCK(0x00350000), WNNC_NET_TERMSRV(0x00360000), WNNC_NET_SRT(0x00370000), WNNC_NET_QUINCY(0x00380000), WNNC_NET_OPENAFS(0x00390000), WNNC_NET_AVID1(0x003A0000), WNNC_NET_DFS(0x003B0000), WNNC_NET_KWNP(0x003C0000), WNNC_NET_ZENWORKS(0x003D0000), WNNC_NET_DRIVEONWEB(0x003E0000), WNNC_NET_VMWARE(0x003F0000), WNNC_NET_RSFX(0x00400000), WNNC_NET_MFILES(0x00410000), WNNC_NET_MS_NFS(0x00420000), WNNC_NET_GOOGLE(0x00430000), WNNC_NET_UNKNOWN(0x00000000); private int flag; private NetworkProviderType(int flag) { this.flag = flag; } static NetworkProviderType valueOf(int type) { for (NetworkProviderType value : NetworkProviderType.values()) { if (value.flag == type) { return value; } } return WNNC_NET_UNKNOWN; } public int getFlag() { return flag; } } }