diff --git a/.circleci/config.yml b/.circleci/config.yml index 72c0a1b3660b..c288fa32c3f8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -88,20 +88,7 @@ commands: # Useful resources for AIM: http://reboot.pro/index.php?showtopic=22068 name: 'Arsenal Image Mounter (RAM Disk)' command: | - # Download AIM Drivers - Invoke-WebRequest 'https://github.com/ArsenalRecon/Arsenal-Image-Mounter/raw/988930e4b3180ec34661504e6f9906f98943a022/DriverSetup/DriverFiles.zip' -OutFile 'aim_drivers.zip' -UseBasicParsing - Expand-Archive -Path 'aim_drivers.zip' - - # Download AIM CLI - Invoke-WebRequest 'https://github.com/ArsenalRecon/Arsenal-Image-Mounter/raw/988930e4b3180ec34661504e6f9906f98943a022/Command%20line%20applications/aim_ll.zip' -OutFile 'aim_ll.zip' -UseBasicParsing - Expand-Archive -Path 'aim_ll.zip' - - # Install AIM drivers - ./aim_ll/x64/aim_ll.exe --install ./aim_drivers - - # Setup RAM disk mount. Same parameters as ImDisk - # See: https://support.circleci.com/hc/en-us/articles/4411520952091-Create-a-windows-RAM-disk - ./aim_ll/x64/aim_ll.exe -a -s 5G -m X: -p "/fs:ntfs /q /y" + pwsh ./.circleci/win-ram-disk.ps - run: nvm install 16.10 - run: nvm use 16.10 - run: npm install -g yarn@1.22.10 diff --git a/.circleci/win-ram-disk.ps1 b/.circleci/win-ram-disk.ps1 new file mode 100644 index 000000000000..40ce955067e2 --- /dev/null +++ b/.circleci/win-ram-disk.ps1 @@ -0,0 +1,22 @@ +# Download AIM Drivers and validate hash +Invoke-WebRequest "https://github.com/ArsenalRecon/Arsenal-Image-Mounter/raw/988930e4b3180ec34661504e6f9906f98943a022/DriverSetup/DriverFiles.zip" -OutFile "aim_drivers.zip" -UseBasicParsing +$aimDriversDownloadHash = (Get-FileHash aim_drivers.zip -a sha256).Hash +If ($aimDriversDownloadHash -ne "1F5AA5DD892C2D5E8A0083752B67C6E5A2163CD83B6436EA545508D84D616E02") { + throw "aim_drivers.zip hash is ${aimDriversDownloadHash} which didn't match the known version." +} +Expand-Archive -Path "aim_drivers.zip" + +# Download AIM CLI and validate hash +Invoke-WebRequest "https://github.com/ArsenalRecon/Arsenal-Image-Mounter/raw/988930e4b3180ec34661504e6f9906f98943a022/Command%20line%20applications/aim_ll.zip" -OutFile "aim_ll.zip" -UseBasicParsing +$aimCliDownloadHash = (Get-FileHash aim_ll.zip -a sha256).Hash +If ($aimCliDownloadHash -ne "9AD3058F14595AC4A5E5765A9746737D31C219383766B624FCBA4C5ED96B20F3") { + throw "aim_ll.zip hash is ${aimCliDownloadHash} which didn't match the known version." +} +Expand-Archive -Path "aim_ll.zip" + +# Install AIM drivers +./aim_ll/x64/aim_ll.exe --install ./aim_drivers + +# Setup RAM disk mount. Same parameters as ImDisk +# See: https://support.circleci.com/hc/en-us/articles/4411520952091-Create-a-windows-RAM-disk +./aim_ll/x64/aim_ll.exe -a -s 5G -m X: -p "/fs:ntfs /q /y"