From c461d417695ebf73b09618d9c0fdcf166ae45446 Mon Sep 17 00:00:00 2001 From: Spenser Reinhardt Date: Mon, 6 Jan 2025 10:02:48 -0500 Subject: [PATCH 1/3] create Binary Ninja package --- .../binaryninja-free.vm.nuspec | 12 ++++++++ .../tools/chocolateyinstall.ps1 | 29 +++++++++++++++++++ .../tools/chocolateyuninstall.ps1 | 10 +++++++ 3 files changed, 51 insertions(+) create mode 100644 packages/binaryninja-free.vm/binaryninja-free.vm.nuspec create mode 100644 packages/binaryninja-free.vm/tools/chocolateyinstall.ps1 create mode 100644 packages/binaryninja-free.vm/tools/chocolateyuninstall.ps1 diff --git a/packages/binaryninja-free.vm/binaryninja-free.vm.nuspec b/packages/binaryninja-free.vm/binaryninja-free.vm.nuspec new file mode 100644 index 000000000..50c56570d --- /dev/null +++ b/packages/binaryninja-free.vm/binaryninja-free.vm.nuspec @@ -0,0 +1,12 @@ + + + + binaryninja-free.vm + 4.2 + Vector 35, Inc. + Binary Ninja is an interactive decompiler, disassembler, debugger, and binary analysis platform built by reverse engineers, for reverse engineers. + + + + + diff --git a/packages/binaryninja-free.vm/tools/chocolateyinstall.ps1 b/packages/binaryninja-free.vm/tools/chocolateyinstall.ps1 new file mode 100644 index 000000000..cf4036c7d --- /dev/null +++ b/packages/binaryninja-free.vm/tools/chocolateyinstall.ps1 @@ -0,0 +1,29 @@ +$ErrorActionPreference = 'Stop' +Import-Module vm.common -Force -DisableNameChecking + +try { + $toolName = 'BinaryNinja Free' + $category = 'Disassemblers' + + $packageArgs = @{ + packageName = ${Env:ChocolateyPackageName} + fileType = 'exe' + silentArgs = '/S /ALLUSERS=1' + url = 'https://cdn.binary.ninja/installers/binaryninja_free_win64.exe' + checksum = '426aa8219415a64df90562274ae7e420471934c60f3a19c459e982467469cf55' + checksumType = 'sha256' + } + + Install-ChocolateyPackage @packageArgs + + $toolDir = Join-Path ${Env:ProgramFiles} "Vector35" -Resolve + $toolDir = Join-Path $toolDir "BinaryNinja" -Resolve + $executablePath = Join-Path $toolDir "binaryninja.exe" -Resolve + + Install-BinFile -Name $toolname -Path $executablePath + $executableIcon = Join-Path $toolDir "icon.ico" -Resolve + VM-Install-Shortcut -toolName "binja" -category $category -executablePath $executablePath -IconLocation $executableIcon + +} catch { + VM-Write-Log-Exception $_ +} diff --git a/packages/binaryninja-free.vm/tools/chocolateyuninstall.ps1 b/packages/binaryninja-free.vm/tools/chocolateyuninstall.ps1 new file mode 100644 index 000000000..10b00ae6e --- /dev/null +++ b/packages/binaryninja-free.vm/tools/chocolateyuninstall.ps1 @@ -0,0 +1,10 @@ +$ErrorActionPreference = 'Continue' +Import-Module vm.common -Force -DisableNameChecking + +$toolName = 'BinaryNinja Free' +$category = 'Disassemblers' +VM-Remove-Tool-Shortcut $toolName $category + +Uninstall-BinFile -Name $toolName + +VM-Uninstall-With-Uninstaller "Binary Ninja*" $category "EXE" "/S /ALLUSERS=1" \ No newline at end of file From 01de76fcaa378be13f96d4addc07f1f5a30f9114 Mon Sep 17 00:00:00 2001 From: Spenser Reinhardt Date: Thu, 16 Jan 2025 11:33:20 -0500 Subject: [PATCH 2/3] rename binja-free to binja --- .../binaryninja.vm.nuspec} | 4 ++-- .../tools/chocolateyinstall.ps1 | 2 +- .../tools/chocolateyuninstall.ps1 | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename packages/{binaryninja-free.vm/binaryninja-free.vm.nuspec => binaryninja.vm/binaryninja.vm.nuspec} (88%) rename packages/{binaryninja-free.vm => binaryninja.vm}/tools/chocolateyinstall.ps1 (96%) rename packages/{binaryninja-free.vm => binaryninja.vm}/tools/chocolateyuninstall.ps1 (89%) diff --git a/packages/binaryninja-free.vm/binaryninja-free.vm.nuspec b/packages/binaryninja.vm/binaryninja.vm.nuspec similarity index 88% rename from packages/binaryninja-free.vm/binaryninja-free.vm.nuspec rename to packages/binaryninja.vm/binaryninja.vm.nuspec index 50c56570d..e7e23ff65 100644 --- a/packages/binaryninja-free.vm/binaryninja-free.vm.nuspec +++ b/packages/binaryninja.vm/binaryninja.vm.nuspec @@ -1,8 +1,8 @@ - binaryninja-free.vm - 4.2 + binaryninja.vm + 4.2.6455 Vector 35, Inc. Binary Ninja is an interactive decompiler, disassembler, debugger, and binary analysis platform built by reverse engineers, for reverse engineers. diff --git a/packages/binaryninja-free.vm/tools/chocolateyinstall.ps1 b/packages/binaryninja.vm/tools/chocolateyinstall.ps1 similarity index 96% rename from packages/binaryninja-free.vm/tools/chocolateyinstall.ps1 rename to packages/binaryninja.vm/tools/chocolateyinstall.ps1 index cf4036c7d..da09e0b1d 100644 --- a/packages/binaryninja-free.vm/tools/chocolateyinstall.ps1 +++ b/packages/binaryninja.vm/tools/chocolateyinstall.ps1 @@ -2,7 +2,7 @@ $ErrorActionPreference = 'Stop' Import-Module vm.common -Force -DisableNameChecking try { - $toolName = 'BinaryNinja Free' + $toolName = 'binaryninja' $category = 'Disassemblers' $packageArgs = @{ diff --git a/packages/binaryninja-free.vm/tools/chocolateyuninstall.ps1 b/packages/binaryninja.vm/tools/chocolateyuninstall.ps1 similarity index 89% rename from packages/binaryninja-free.vm/tools/chocolateyuninstall.ps1 rename to packages/binaryninja.vm/tools/chocolateyuninstall.ps1 index 10b00ae6e..5ea402ffe 100644 --- a/packages/binaryninja-free.vm/tools/chocolateyuninstall.ps1 +++ b/packages/binaryninja.vm/tools/chocolateyuninstall.ps1 @@ -1,7 +1,7 @@ $ErrorActionPreference = 'Continue' Import-Module vm.common -Force -DisableNameChecking -$toolName = 'BinaryNinja Free' +$toolName = 'binaryninja' $category = 'Disassemblers' VM-Remove-Tool-Shortcut $toolName $category From 362a7761108fbbd011d6e57a57fe925014889a3d Mon Sep 17 00:00:00 2001 From: Spenser Reinhardt Date: Thu, 16 Jan 2025 12:31:49 -0500 Subject: [PATCH 3/3] binja: move to VM-Install-With-Installer --- .../tools/chocolateyinstall.ps1 | 47 +++++++++++-------- .../tools/chocolateyuninstall.ps1 | 12 ++--- 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/packages/binaryninja.vm/tools/chocolateyinstall.ps1 b/packages/binaryninja.vm/tools/chocolateyinstall.ps1 index da09e0b1d..30c638ba2 100644 --- a/packages/binaryninja.vm/tools/chocolateyinstall.ps1 +++ b/packages/binaryninja.vm/tools/chocolateyinstall.ps1 @@ -1,29 +1,36 @@ $ErrorActionPreference = 'Stop' Import-Module vm.common -Force -DisableNameChecking -try { - $toolName = 'binaryninja' - $category = 'Disassemblers' - - $packageArgs = @{ - packageName = ${Env:ChocolateyPackageName} - fileType = 'exe' - silentArgs = '/S /ALLUSERS=1' - url = 'https://cdn.binary.ninja/installers/binaryninja_free_win64.exe' - checksum = '426aa8219415a64df90562274ae7e420471934c60f3a19c459e982467469cf55' - checksumType = 'sha256' - } +$toolName = "binaryninja" +$category = "Disassemblers" +$installFile = "binaryninja_free_win64.exe" - Install-ChocolateyPackage @packageArgs +function Get-CurrentHash { + param ( + [string]$url = "https://binary.ninja/js/hashes.json", + [string]$installFile = $installFile + ) + $json = Invoke-WebRequest -Uri $url + $json = ConvertFrom-Json $json + return $json.Hashes.$installFile +} - $toolDir = Join-Path ${Env:ProgramFiles} "Vector35" -Resolve - $toolDir = Join-Path $toolDir "BinaryNinja" -Resolve - $executablePath = Join-Path $toolDir "binaryninja.exe" -Resolve +try { + $url = "https://cdn.binary.ninja/installers/$installFile" + $hash = Get-CurrentHash + $toolDir = Join-Path ${Env:ProgramFiles} "Vector35" + $toolDir = Join-Path $toolDir "BinaryNinja" + $executablePath = Join-Path $toolDir "binaryninja.exe" - Install-BinFile -Name $toolname -Path $executablePath - $executableIcon = Join-Path $toolDir "icon.ico" -Resolve - VM-Install-Shortcut -toolName "binja" -category $category -executablePath $executablePath -IconLocation $executableIcon + VM-Install-With-Installer -toolName $toolName ` + -category $category ` + -fileType 'EXE' ` + -silentArgs '/S /ALLUSERS=1' ` + -executablePath $executablePath ` + -url $url ` + -sha256 $hash ` + -consoleApp $false } catch { VM-Write-Log-Exception $_ -} +} \ No newline at end of file diff --git a/packages/binaryninja.vm/tools/chocolateyuninstall.ps1 b/packages/binaryninja.vm/tools/chocolateyuninstall.ps1 index 5ea402ffe..807518cb1 100644 --- a/packages/binaryninja.vm/tools/chocolateyuninstall.ps1 +++ b/packages/binaryninja.vm/tools/chocolateyuninstall.ps1 @@ -1,10 +1,10 @@ $ErrorActionPreference = 'Continue' Import-Module vm.common -Force -DisableNameChecking -$toolName = 'binaryninja' -$category = 'Disassemblers' -VM-Remove-Tool-Shortcut $toolName $category +$toolName = "binaryninja" +$category = "Disassemblers" -Uninstall-BinFile -Name $toolName - -VM-Uninstall-With-Uninstaller "Binary Ninja*" $category "EXE" "/S /ALLUSERS=1" \ No newline at end of file +VM-Uninstall-With-Uninstaller -toolName $toolName ` + -category $category ` + -fileType "EXE" ` + -silentArgs "/S /ALLUSERS=1" \ No newline at end of file