Code Monkey home page Code Monkey logo

arsenal-image-mounter's Introduction

Arsenal-Image-Mounter

Arsenal Image Mounter mounts the contents of disk images as complete disks in Microsoft Windows. Arsenal Image Mounter includes a virtual SCSI adapter (via a unique Storport miniport driver) which allows users to benefit from disk-specific features in Windows like integration with Disk Manager, access to Volume Shadow Copies, and more. As far as Windows is concerned, the contents of disk images mounted by Arsenal Image Mounter are “real” SCSI disks.

For developers, Arsenal Image Mounter source code and APIs are available for royalty-free use by open source projects. Commercial projects (and other projects not licensed under an AGPL v3 compatible license - see https://www.gnu.org/licenses/agpl-3.0.html) that would like to use Arsenal Image Mounter source code and/or APIs must contact us (https://ArsenalRecon.com/contact/) to obtain alternative licensing.

For end users, Arsenal Image Mounter’s full functionality (along with all our other tools) is available as part of an affordable monthly subscription. If Arsenal Image Mounter is licensed, it runs in "Professional Mode.” If Arsenal Image Mounter is run without a license, it will run in "Free Mode" and provide core functionality.

Please see Arsenal Image Mounter’s product page: https://ArsenalRecon.com/weapons/image-mounter for more details.

Supporting Arsenal Image Mounter

We appreciate your help making commercial projects aware of Arsenal Image Mounter’s capabilities, because commercial licensing of our source code and APIs supports ongoing development. On a related note, we know that some commercial projects are using Arsenal Image Mounter’s source code and APIs without being properly licensed… we also appreciate being alerted to these situations so we can nudge those projects appropriately.

More Details on Licensing and Contributions

We chose a dual-license for Arsenal Image Mounter (more specifically, Arsenal Image Mounter’s source code and APIs) to allow its royalty-free use by open source projects, but require financial support from commercial projects.

Arsenal Consulting, Inc. (d/b/a Arsenal Recon) retains the copyright to Arsenal Image Mounter, including the Arsenal Image Mounter source code and APIs, being made available under terms of the Affero General Public License v3. Arsenal Image Mounter source code and APIs may be used in projects that are licensed so as to be compatible with AGPL v3. If your project is not licensed under an AGPL v3 compatible license and you would like to use Arsenal Image Mounter source code and/or APIs, contact us to obtain alternative licensing.

Contributors to Arsenal Image Mounter must sign the Arsenal Contributor Agreement ("ACA"). The ACA gives Arsenal and the contributor joint copyright interests in the source code.

arsenal-image-mounter's People

Contributors

gitoffthelawn avatar ltrdata avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arsenal-image-mounter's Issues

RAMDisk - only half of the allocated memory can be used

Same with ImDisk only half of the allocated memory usable.
When i copy files to the RAM-Drive (within WinPE Projects Winbuilder/PhoenixPE). Every file uses at least twice the size it actually has on the RAMDrive. If i allocate 2 GB - i can barely use 1 GB. The size of the files is correct on the drive.

Cannot access Arsenal Image Mounter driver

i use aim_cli .exe -version3.9.239
Cmd line like this"aim_cli --mount --filename=D:\USB\Virtualusb.E01"
but return"Cannot access Arsenal Image Mounter driver. Check that the driver is installed and that you are running this application with administrative privileges.

No Arsenal Image Mounter adapter found."

ChatGPT not working examples

I tryed to ask c++ code for AIM to ChatGPT but not work.
Also google nothing found about "aimapi.h".

#include <Windows.h>
#include <aimapi.h>

int main()
{
    const wchar_t* imageFilePath = L"path\\to\\image.vhdx";
    const wchar_t* deviceName = L"AIMExampleRamDisk";
    const unsigned long long diskSize = 1073741824; // 1 GB
    const unsigned long sectorSize = 512;

    // Initialize the Arsenal Image Mounter API
    AIMInit();

    // Create the RAM disk parameters
    AIM_VIRTUAL_STORAGE_PARAMETERS params;
    ZeroMemory(&params, sizeof(params));
    params.DeviceFlags = AIM_VIRTUAL_STORAGE_DEVICE_FLAGS_VOLATILE;
    params.AccessFlags = AIM_VIRTUAL_STORAGE_ACCESS_FLAGS_READWRITE;
    params.SectorSize = sectorSize;
    params.MaxSize = diskSize;
    AIMCreateVirtualStorageParams(&params);

    // Mount the VHDX image as a virtual disk
    AIM_VIRTUAL_STORAGE_HANDLE vhdxHandle = AIMMountVirtualDisk(imageFilePath, AIM_VIRTUAL_STORAGE_TYPE_VHDX, 0, 0);
    if (vhdxHandle == INVALID_HANDLE_VALUE)
    {
        printf("Failed to mount VHDX image.\n");
        return 1;
    }

    // Create the RAM disk using the mounted VHDX image
    AIM_VIRTUAL_STORAGE_HANDLE ramDiskHandle = AIMCreateVirtualDisk(deviceName, AIM_VIRTUAL_STORAGE_TYPE_RAMDISK, &params, vhdxHandle, 0);
    if (ramDiskHandle == INVALID_HANDLE_VALUE)
    {
        printf("Failed to create RAM disk.\n");
        return 1;
    }

    // Assign a drive letter to the RAM disk
    DWORD error = AIMAssignVirtualDiskDriveLetter(ramDiskHandle, NULL);
    if (error != ERROR_SUCCESS)
    {
        printf("Failed to assign drive letter to RAM disk. Error code: %lu\n", error);
        return 1;
    }

    // Unmount the VHDX image
    AIMUnmountVirtualDisk(vhdxHandle);

    // Cleanup
    AIMCloseVirtualStorageHandle(ramDiskHandle);
    AIMDeleteVirtualStorageParams(&params);
    AIMPurgeVirtualStorageMountCache();
    AIMCleanup();

    printf("RAM disk created successfully.\n");

    return 0;
}

Also Powershell code not work:

Import-Module -Name "C:\Program Files (x86)\ArsenalRecon\AIM\AIM.psd1"

Mount-AIMVirtualDisk -ImagePath "C:\path\to\file.vhdx" -ReadOnly

$deviceID = Get-AIMVirtualDisk | Where-Object { $_.ImagePath -eq "C:\path\to\file.vhdx" } | Select-Object -ExpandProperty DeviceID

New-AIMVirtualDiskDrive -DeviceID $deviceID -DriveType Dynamic

running driver setup on mcr.microsoft.com/windows/server:ltsc2022-kb5008223-amd64

Kernel type: Win10
Kernel supports StorPort: True
Using temp path: C:\Users\ContainerAdministrator\AppData\Local\Temp\ArsenalImageMounter-DriverSetup
System architecture is: amd64
Process architecture is: amd64
RemovePnPDevice: hwid='ROOT\SCSIADAPTER\0000'
CreateOrUpdateRootPnPDevice: InfPath="C:\Users\ContainerAdministrator\AppData\Local\Temp\ArsenalImageMounter-DriverSetup\Win10\phdskmnt.inf", hwid="root\phdskmnt"
CreateOrUpdateRootPnPDevice: ClassGUID="4d36e97b-e325-11ce-bfc1-08002be10318", ClassName="SCSIAdapter"
UpdateDriverForPnPDevices: InfPath="C:\Users\ContainerAdministrator\AppData\Local\Temp\ArsenalImageMounter-DriverSetup\Win10\phdskmnt.inf", hwid="root\phdskmnt", forceReplaceExisting=False
Win32 error: -536870365
System.ComponentModel.Win32Exception (0x80004005): Unknown error (0xe0000223)
at Arsenal.ImageMounter.IO.NativeFileIO.UpdateDriverForPnPDevices(IntPtr OwnerWindow, String InfPath, String hwid, Boolean forceReplaceExisting, Boolean& RebootRequired)
at Arsenal.ImageMounter.IO.NativeFileIO.CreateRootPnPDevice(IntPtr OwnerWindow, String InfPath, String hwid, Boolean ForceReplaceExistingDrivers, Boolean& RebootRequired)
at Arsenal.ImageMounter.DriverSetup.InstallStorPortDriver(IWin32Window ownerWindow, String setupsource)
at Arsenal.ImageMounter.DriverSetup.Install(IWin32Window ownerWindow, String setupsource)
at Arsenal.ImageMounter.DriverSetup.InstallFromZipArchive(IWin32Window ownerWindow, ZipFile zipFile)
at Arsenal.ImageMounter.MainModule.SetupOperation(OpMode opMode)
at Arsenal.ImageMounter.MainModule.Main(String[] args)
The command 'cmd /S /C c:\arsenal\DriverSetup\ArsenalImageMounterCLISetup.exe /install' returned a non-zero code: 4294967295

Is it possible to log the mounter driver operation? (aim_ll -a -P not leading to automount)

Hi, I am using the following command line arguments to create a RAM drive that doesn't page to disk -a -f \\?\vhdaccess\??\awealloc\??\C:\Stuff\RAMDisk.vhd -m R:

That template is used and a RAM disk appears at R:\, although a non-fatal error appears most of the time (a cursory look at the source of aim_ll indicates the SetVolumeMountPoint() system call is what leads to it, perhaps some race condition):

C:\Windows\system32>aim_ll -a -f \\?\vhdaccess\??\awealloc\??\C:\Stuff\RAMDisk.vhd -m R: -P
Creating device...
Created device 000100 -> \\?\vhdaccess\??\awealloc\??\C:\Stuff\RAMDisk.vhd
Saving registry settings...
Device is \\?\PhysicalDrive4
Attached disk volume \\?\Volume{ba0c38bf-0000-0000-0000-100000000000}
Error setting volume '\\?\Volume{ba0c38bf-0000-0000-0000-100000000000}\'
mount point to 'R:\': The directory is not empty.
Done.

C:\Windows\system32>echo %errorlevel%
0

The RAM disk VHD template is in a folder any user can access and the file itself is also accessible by anyone:

C:\Windows\system32>icacls C:\Stuff\

C:\Stuff\ BUILTIN\Administrators:(I)(OI)(CI)(F)
          NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
          BUILTIN\Users:(I)(OI)(CI)(RX)
          NT AUTHORITY\Authenticated Users:(I)(M)
          NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)

C:\Windows\system32>icacls C:\Stuff\RAMDisk.vhd

C:\Stuff\RAMDisk.vhd BUILTIN\Administrators:(I)(F)
                     NT AUTHORITY\SYSTEM:(I)(F)
                     BUILTIN\Users:(I)(RX)
                     NT AUTHORITY\Authenticated Users:(I)(M)

The registry entry for the driver seems to be populated correctly, there are 4 new values added to the Parameters key:

image

However, after a system restart the driver isn't automounting the volume, it gets loaded, awealloc as well, but the volume isn't added. I noticed a value named DebugLevel as part of the parameters set to 0xFF and I was wondering if it could be used to troubleshoot why it isn't.

I am using the low level interface, I also looked at the proper AIM program, but it seems not to expose an option to use AWE allocation, I understand the memory can't be prevented from being paged then, and its automount feature doesn't rely on the driver parameters, it seems to be tied to the GUI program executing.

duplicate uuid/volumeid

when mounting 2 or more disk image, the uuid of those volumename is conflicted/duplicated

(00000001-0000-0000-0000-000000000000)

its makes low level operations on the next after the first mounted drive failed, for example defragging it.

please make it so that the uuid for each mounted disk image randomly different, as if windows recognized it as other a physically mounted device drive.

Using AIM in WinPE

Is there a proper/recommend method for using Arsenal-Image-Mounter in WinPE in place of ImDisk?

Integrating the drivers with DISM /Add-Driver works for adding the drivers, but does not create the storage controller device.
I was able to get everything to work by using aim_ll.exe --install, which installs the driver AND creates the SCSI adapter, however this method creates some overhead by having to include the drivers twice (once for the source folder used by --install and once in the write-filter overlay once installed. Is there a good way to create the SCSI adapter offline or at boot when drivers are integrated directly into a WinPE build?

Extra commands for aimll.exe

Hello,
I've been testing aimll.exe for a while and it's a great tool!
I'd like to thank you and ask if there exists a command to unmount every existing mount (like "remove all" in ArsenalImageMounterMountTool.exe).

Thanks and have a nice weekend.
V.

phdskmnt.sys bsod

when browsing through mounted image (bitlockered) windows 10 gives bluescreen caused by phdskmnt.sys IRQ not less then or equal.

Contextual menu absent

AIM not have a contextual menu as in ImDisk to unmount a volume in a click mouse?
I have only installed driver with aim_ll.exe.

Arsenal-Image-Mounter does not work together with virtio disk.

Hi,
I found that Arsenal-Image-Mounter does not work in qemu VM, if there is a disk, using virtio drivers [1].

Command tested:
aim_ll.exe -a -s 8G -m R: -p "/fs:ntfs /q /y"
Wrong version of Arsenal Image Mounter.

(in reality, version is indeed correct one)

I think problem is that both drivers create device \Device\RaidPortN and Arsenal-Image-Mounter chooses wrong one [2]. Program than later fails on driver version check [3].

[1] https://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
[2] https://github.com/ArsenalRecon/Arsenal-Image-Mounter/blob/master/Unmanaged%20Source/aimapi/aimapi.cpp#L152
[3]

fputs("Wrong version of Arsenal Image Mounter.\n", stderr);

I encountered a problem

Hello
When I want to run Managed Source, I encounter the error in the picture, can you help me how to solve it?

AIM on XP

Hello again,
I tried to use AIM also on my XP SP3 and it works great except for the fact that I am obliged to avoid putting the PC into sleep state.

The problem seems to be with AIM as I get the following message: "System Standby Failed: The device driver For the 'SCSI/RAID Host Controller' device is preventing the machine from entering standby. Please close all applications and try again. If the problem persists, you may need to update this driver." I know that nowadays XP is mostly not supported but do you know if there's a registry tweak or something else to avoid this?

Meanwhile I'm continuing using ImDisk that is giving me some minor issues which I'd like to report, but I'd like to know: where exactly should I address them?

Thanks and have a nice weekend!
V.

Free ver of AIM do not mount splited vmdk, need DiscUtils/DIY something?

hi.

i tried to use AIM to mount splited vmdk disk.

The install worked with splited raw,
but have "object reference not set to an instance of an object"error when i wanna mount a splited vmdk.

the vmdk was created as shown in the picture, and is recognized
by virtualbox so should be valid.

I only have free ver and not sure free ver need DIY or manually build discutils for this?
I downloaded the zip file from https://arsenalrecon.com/downloads/,
named Arsenal-Image-Mounter-v3.1.101.zip

btw,

As in the discussion elsewhere,
not all discutils support .vmdk size of larger than 20KB.
it would be nice if in later versions AIM could be modified
to handle the .vmdk of larger than 20KB. otherwise the total
vmdk disk will be limited to be 1TB.

thank you.

Screenshot (7)

Mounting vmdk image using AIM (gui or cli) on a virtual machine does not work

Hi,

I'm trying to mount a .vmdk image with the command-line tool aim_cli.exe. To do so, I use the following command :

.\aim_cli.exe /mount /readonly /filename="E:\VirtualMachine\Win10Bitlocker\WinDev2003Eval-disk001.vmdk" /provider=DiscUtils

When I run this command on my host computer (Windows 10 Pro), I do not have any problem. All the drives are mounted correctly and I can access my data. However, when I run the same command on my virtual machine (Windows 10 Entreprise Eval), it does not work anymore. There is no drive mounted but I do not have any error message.

aim_cli_vmdk3

I also tried the gui tool ArsenalImageMounter.exe but the result is the same as you can see below (the first screenshot comes from the host and the second one from the VM).

aim_cli_vmdk2

aim_cli_vmdk

I thought the problem could come from missing dependencies and especially DiscUtils but I did not manage to solve this issue. I tried to install last version of .NET and also tried different versions of AIM (v3.1.101 and v3.1.107 downloaded from https://arsenalrecon.com/downloads/).

Do you have any idea to solve this issue ?

Thank you

VMDK Mount and write makes computer totally unusable at all sometimes

Hello. Thanks for making this tool. as VMWare people given up the feature to mount VMDK in windows platform, this is indeed valuable tool for me to make jobs done in sane manor.

Unfortunately, Since ImDisk's (i believe AIM is inherited from ImDisk) last version and till latest version of AIM, there's very nasty bug which totally hangs system(e.g. process creation, data saving, shutting down at all, you must have to force shutdown your computer with total loses of your works :( ) when sometimes you tries to write on mounted VMDK filesystem.

As i don't have any knowledge for debugging windows drivers, i cannot explain more deeply than this (and seems like there's no such debugging log for me to post either..). But seems like nobody reporting this so im doing it.

I'm experiencing this nasty bug since 2020, must be the kernel module that is responsible for this sort of issues..

Free version AIM permissions issue

Hi,
I'm trying to use the aim with a vmdk image. The mount process was completed successfully but it looks like there is some sort of permissions issue with the mounted device.
I can't access some system folders and for example can't get the MFT file from the mounted device (can extract it using 7zip).
This ain't working both using this project (cli + gui) and the project from the official Arsenal site (free mode - without license, both gui and cli).

Thanks in advance.

Question: Mounting a Volume (not a disk)

Is it possible to use AIM to mount an E01 of a volume (not a disk)?

AIM mounts the E01 successfully but of course Windows sees it as a disk, so tries parsing Sector 0 as an MBR. Because the E01 is in fact of a volume, Sector 0 is a VBR. Consequently, Windows doesn't find an MBR/MPT and so presents the disk as RAW.

I wondered if Windows can be "told" its a volume, rather than a disk. Or whether some kind of fake MBR could be shim'd in order to present an MPT which points to a volume at sector 1?

Virtual disk using existing virtual volume as backing store.

Consider using an existing NTFS/ReFS virtual volume (\Device\VirtVol1) as a backing file for the virtual disk created by AIM.

aim_ll -a -F \Device\VirtVol1 -o ro

Two cases NTFS and ReFS:

NTFS:

In my tests, the above created disk correctly shows up as NTFS if the virtual volume was NTFS. But if the readonly flag (-o ro) is removed then the phdskmnt.sys driver fails NTWriteFile with random "access denied" (0xC0000022) errors and in the end the disk shows up as RAW.

ReFS:

The created disk always shows up as an uninitialized disk (no MBR/GPT) with/without readonly flag and needs to be formatted which defeats the purpose of using the pre-existing virtual volume.

Is there a way to get the created disk show up as ReFS volume mirroring the virtual volume (\Device\VirtVol1) just like NTFS, instead of an uninitialized disk?

This test is similar to the following workaround claimed to make this work but doesn't actually work as per my tests (i only get an uninitialized disk):

https://sourceforge.net/p/veracrypt/discussion/technical/thread/88b66508d3/#32a0

A property file seems to be missing from the repo, aim_um.props.

Hi, out of curiosity I checked out the source to have a better look at it and all, I'm way over my head here, but I figured it wouldn't hurt to see how pros do things and hopefully learn something in the process.

When opening the unmanaged source solution, ArsenalImageMounter.sln, Visual Studio complained about a couple of missing things, the WDK for starters and then some prop files that come from a previous product it seems, ImDisk. I located it and installed the required toolchains. Since the environment was already the current preview of VS2022 I settled for the latest WDK too (Windows 11 22H2's).

However, one prop file seems to be missing from the repo and I can't seem to be able to locate it, it is Arsenal-Image-Mounter\Unmanaged Source\aim_um.props required by at least aim_ll, aimapi and aimwrfltr. Was it a mishap? I didn't see it listed in the .gitignore file though.

Thanks for everything!

PS. There seems to be another one missing too, Arsenal-Image-Mounter\Unmanaged Source\aimwrfltr\aimwrfltr.props

Multi part image last sector error

When mounting a multi part raw image (dump) and reading from a physical last sector it throws an error code 1117, Device I/O error.

To reproduce:

  1. Create spli disk dump or split a raw image into multiple parts.
  2. Mount (with multi part provider)
  3. Open physical drive (CreateFile \?\PhysicalDrive)
  4. Seek to the last sector (end of the disk minus sector size)
  5. Read 1 sector

Notes:

  1. This happens only with multi part provider, I have mounted and successfully read the same sector of nonsplit image.
  2. The last sector that doesn't serve the operation system and found by calculating the geometry of the drive or the sum of the size of all image parts.
  3. This works on other mounters.
  4. Arsenal process called ReadFile with correct parameters - the correct part and offset.

Write cache Major problem on Arsenal

Hello,

I am encountering an issue across all versions of Arsenal.
The problem arises when you enable write cache on a local disk, and it exacerbates if the local disk has a higher write speed (SSD/NVMe).
You can reproduce the issue by mounting a VHD image from a Linux Samba or an iSCSI drive and enabling write cache.
Initially, it starts writing the differential file, but after a while, the write speed drops to 0, and the computer hangs. It appears to be losing access to the virtual drive.mipos
we tried in windows 10 full or not full updated and windows 11 with the same behavior!
I will give you the commands that i use to help you reproduce.
1 .VHD c:\ArsenalImageMounter\aim_cli.exe /mount /filename="\x.x.x.x\Name.vhd" /writeoverlay=C:\LocalDiffs\Name.vhd.diff
2. ISCSI c:\ArsenalImageMounter\aim_cli.exe /mount /readonly /provider=DiscUtils /filename=\?\PhysicalDrive2 /writeoverlay=C:\LocalDiffs\Name.diff

Originally posted by @rimaxr in #42 (comment)

aim_ll & the format prompt

aim_ll triggers the format prompt "You need to format the disk in drive E: before you can use it. Do you want to format it?". In my case, E: is the first unused drive.

Command used:
aim_ll.exe -a -s 2048M -m R: -p "/fs:ntfs /q /y /v:RAM"

Is there any way to get rid of that prompt?

Windows 10 22H2 x64, latest AIM & aim_ll

Force ImScsiRemoveDeviceByMountPoint

Do it is possible to use Force parameter when use ImScsiRemoveDeviceByMountPoint API?
I have to use
ImScsiSetAPIFlags(IMSCSI_API_FORCE_DISMOUNT);
before?

vhd work in awe and not as file

Why this work fine:
aim_ll -a -f \?\vhdaccess??\awealloc??\c:\fn.vhd -m Z:
and this not?
aim_ll -a -t file -f c:\fn.vhd -m Z:
"No volumes attached. Disk could be offline or not partitioned."

Unable to mount multiple VMDK disks sequentially with aim_cli.exe on Windows Server2022

aim_cli version: 3.11.279.0
driver version: 1.2.14.73

Command line: .\aim_cli.exe --mount --readonly --provider=DiscUtils --filename={path}

aim_cli is used to mount multiple disks, including (".vmdk", "raw(dd)", "E01").

There occurs a problem where if you try to mount multiple disks sequentially without unmounting the previous disks:

  1. aim_cli.exe gives the disk a physical location ("\?\PhysicalDiskN")
  2. The partition(s) on the disk is not visible for the Windows OS
  3. Windows does detect the partition on the disk and cannot assign it with a drive letter.

Is this a known issue?

max 1000 files in splited raw? and begin /w .000 or .001? thx

hi

i got HDDs of 2TB and 4TB,
i wanna make splited raw images for easy handling.

but

  1. not sure shd I begin the series with .000 or .001,
    AIM ask for .001 as splited raw images, yet SOME OTHER
    programs do ask for .000 as the 1st part.

STRANGE thing is, if I got files of image.000 to .014, each of 1GB,
when I mount inside AIM, it shows 15GB.
i.e. the .000 is included in the collection, but AIM ask for .001...

i tried AIM only recognize .000 to .999,
it wont recognize .1000 etc.

this make my 4TB/1000 = 4GB which is a quite large file.
I prefer to have 1-2GB/file, which makes upload/download
to cloud easier.

how about alphebets? if yes, how should I include in the series?
thanks

btw, AIM seems don't have a locking mechanism,
when the drive is mounted, files copying/writing,
a simple click in AIM can "remove"the drive,
which is less prefer-ed these days I think.

thank you.

Installing driver using command line

Hi, with regards to #7, can I ask how do we install the driver using the command line?

I've ran ArsenalImageMonterCLISetup.exe but get the following output.
image

On the other hand, using aim_ll.exe, I get the following output.
image

Thanks!

Dynamic Ramdisk with aim_ll

Is it possible to create a dynamic ramdisk using aim_ll?

I have created a .vhd to back the ramdrive and have tried aim_ll.exe -a -t vm -file X:\ramdrive.vhd -m B: without success. I can't seem to find any documentation or reference to creating a dynamic ramdisk via the commandline, so it's entirely possible I'm doing something wrong.

Thanks!

BitLocker password prompting

Do it have a command line to mount a BitLocker vhdx prompting for password as gui do without notification?
Do ti have a WinApi also to get it.

No Arsenal Image Mounter adapter found

i use the aim_cli.exe tool in a folder called "Command line applications",
Cmd line like this "aim_cli /mount /filename="D:\winxp.E01" /readonly /shared".
The return "No Arsenal Image Mounter adapter found".
Then i use the ArsenalImageMounterMountTool.exe tool in a folder called "MountTool",it is succeed.
Strangely, after ArsenalImageMounterMountTool,i use aim_cli and the same cmd line also succeed.
What steps am I missing?

Some dependencies seem to be missing for the driver installers.

Running the driver installer, for example using DriverSetup\ArsenalImageMounterCLISetup.exe /install or the GUI variant at the same location, leads to exceptions due to missing libraries on a Windows 10 22H2 machine without any .NET Framework development workload installed.

The runtime is present, but it seems some libraries are not part of it:

System.IO.FileNotFoundException: Could not load file or assembly 'System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
   at Arsenal.ImageMounter.MainModule.SetupOperation(OpMode opMode)
   at Arsenal.ImageMounter.MainModule.Main(String[] args)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

After downloading the nuget package and extracting the .NET 4.6.1 targeted binary, a similar exception occurs for System.Runtime.CompilerServices.Unsafe:

Kernel type: Win10
Kernel supports StorPort: True
Using temp path: C:\Users\Alex\AppData\Local\Temp\ArsenalImageMounter-DriverSetup
Error removing existing device nodes. This will be ignored and driver update operation will continue anyway. Exception: Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
CreateOrUpdateRootPnPDevice: InfPath="C:\Users\Alex\AppData\Local\Temp\ArsenalImageMounter-DriverSetup\Win10\phdskmnt.inf", hwid="root\phdskmnt"
System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at System.MemoryExtensions.AsSpan(String text)
   at Arsenal.ImageMounter.IO.Native.NativeFileIO.CreateRootPnPDevice(IntPtr OwnerWindow, String infPath, ReadOnlyMemory`1 hwid, Boolean ForceReplaceExistingDrivers, Boolean& RebootRequired)
   at Arsenal.ImageMounter.DriverSetup.InstallStorPortDriver(IWin32Window ownerWindow, String setupsource)
   at Arsenal.ImageMounter.DriverSetup.Install(IWin32Window ownerWindow, String setupsource)
   at Arsenal.ImageMounter.DriverSetup.InstallFromZipArchive(IWin32Window ownerWindow, ZipArchive zipFile)
   at Arsenal.ImageMounter.MainModule.SetupOperation(OpMode opMode)
   at Arsenal.ImageMounter.MainModule.Main(String[] args)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

The package version that provides that assembly is 4.5.3, perhaps a newer one still kept that version, but 4.6.0 already bumped it to 4.0.5.0.

A previous version of the installer, at least the one dating Mar. 21st 2022, used to work as expected.

No volumes attached if move vhd from other pc

when move a NTFS vhd from a computer to other i get: No volumes attached. Disk could be offline or not partitioned.
I have to reinitialite it and reformat from diskmgmt.msc.
Why?

Unable to open images on Windows 10 1809 in High Contrast mode

This is actually a bug in .NET shipped with Windows 10 1809 - when running in High Contrast mode, programs that aren't manifested as Windows 8-compatible .NET programs fail to open common dialogs with the following error:


COMException

Error: Creating an instance of the COM component with CLSID {DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7} from the IClassFactory failed due to the following error: 80040111 ClassFactory cannot supply requested class (Exception from HRESULT: 0x80040111 (CLASS_E_CLASSNOTAVAILABLE)).

Ignore error and continue?

Da Ne

Workaround is to mark the executable as Windows 8-compatible in the manifest - this allows the program to run with visual styles enabled in High Contrast mode.

AIM fail to mount splited raw of .0000 etc, and did AIM touch .000 file?

hi

  1. I created empty blank raw image files by win10+cygwin,
    by:
    dd if=/dev/zero of=(anyname).img.0000 bs=1G count=2

thus each is 2GB file.

then i simply use batch to duplicate them into around 1000 files for 2TB HDD,
i have to use renamer say BRU to tune the file name, as in Fig-0.
ending in .0000, .0001 etc

then I open AIM, it didn't recognize .0000 or .0001 by default,
and I manually choose .0000 as the file,
AIM asked if treat as raw, ofcoz I say yes.
Then result is FIg-1: only 2GB

Then I give AIM another shot,
choosing .0001 as the file, and as in Fig-2, it's still 2GB in total.

HOWEVER, I am able to use Hex in the numbering,
so for 3alphabets, max is FFF, i.e. 4096 files.
each of 1-2GB, fits my need of 4TB to 8TB HDD.

  1. IMPORANT: did AIM touch .000 file?

as asked in previous issue,
Currently I WILL include a .000 in the collection, say for some reason.
it's STRANGE that if i got disk.000 disk.001 ... disk.014, each of 1GB,
if i open in AIM, choosing the .001 as the file,
the outcome is a 15GB disk,
which mean the disk.000 is included in the collection by AIM.

It is an ESSENTIAL question for this. becoz later I may use some rescue softwares
like , say getdataback etc for it and suppose GDB start with .000.

case 1: IF AIM DO touch .000,
then I think it's fine,
so both AIM and GDB start from .000,
and likely will find the MBR etc (I am a layman, not programmer),
in .000. Perfect.

case 2: IF AIM DONOT touch .000
then there is a risk for me and I wanna seek HELP.
so in this case, AIM start with .001, I suppose MBR is put in .001 then?
What if I use GDB to load from .000? will GDB think (as .000 is untouched,
it is all 00) the whole collection is a BLANK?

obviously i could manually rename the files to begin /w .001 when I
use AIM and rename them to begin /w .000 when I use GDB,
but with HEX naming, there is some chance the files are mixed up---
some file manager sort 0123456789ABCDEF (e.g. BRU) and some sort by
0ABCDEF123456789! (e.g. windows file manager)

  1. ps: how do AIM sort the 0-9 and ABCDEF? that info may help, thx

hope wont be too much of trouble by asking these.
thanks.

And everybody take care!

0-file-list
1-0000-fail
2-0001-fail

Failed to start service process: 0x80131500

Hi,
I'm hoping somebody has insight where I can look to see what's going on or has seen this error/issue before.

I'm attempting to mount an E01 image via Arsenal Image Mounter v3.9.223 and I get an error message of:
"Failed to start service process: 0x80131500"

I can't find anything in any log or Process Monitor that provided any help.

Below is the ArsenalImageMounter.log file.


2022-08-12 11:14:52
Starting up: Application 'C:\Software\Arsenal-Image-Mounter-v3.9.223\ArsenalImageMounter.dll' version 3.9.223, licensed mode = False. OS = 'Microsoft Windows 10.0.19044 X64'. Framework = .NET 6.0.7

2022-08-12 11:15:02
Image file 'C:\Images\TestCase.E01', detected BiosPartitionTable, 1 partitions.
0x2E0 - 0x7807FF (IFS (NTFS or HPFS)), detected 'Microsoft NTFS' (healthy).


2022-08-12 11:15:04
Error mounting disk image.

Failed to start service process: 0x80131500


2022-08-12 11:15:22
Exit: Application 'C:\Software\Arsenal-Image-Mounter-v3.9.223\ArsenalImageMounter.dll' version 3.9.223, licensed mode = False. OS = 'Microsoft Windows 10.0.19044 X64'. Framework = .NET 6.0.7

Any help would be appreciated.

-Salty

aim_ll support for volume mount points seems broken

To reproduce: aim_ll -a -f diskimage -m d:\mountpoint

Expected result: the volume (sole partition in the image) is mounted at the mountpoint.

Actual result:

Creating device...
Created device ###### -> diskimage
Attached disk volume \\?\Volume{...}
  Mounted at F:\
Created new volume mount point at d:\mountpoint\

Disk Manager then shows the volume as mounted at both the mount point and the drive letter (which seems to be the alphabetically first available letter excluding A: and B:).

Also, aim_ll -d -m d:\mountpoint, while it does remove the disk, doesn't delete the reparse point at d:\mountpoint. This problem persists even if I delete the spurious drive letter in Disk Manager so that the volume is mounted only at d:\mountpoint when I try to remove it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.