Jump to content

Recommended Posts

Posted

I get to add a new task into my current software certification list. This is to test for full removal of a product via uninstall. I already know I can use Regshot to see what registry changes are made, but is there a program that shows me what files are changed? Basically I need to verify a complete removal is done when uninstalling.


Posted

Im reworking an AutoIt version of an integrity checker, this may give you the means to roll your own...


#include <Crypt.au3>
#include<RecFileListToArray.au3>
#Include <File.au3>
#Include <Array.au3>
#include <WindowsConstants.au3>
#Include <WinAPIEx.au3>

_CreateHashFile()

sleep (2000)

_CheckHashFile()


Func _CreateHashFile()

$path = FileSelectFolder ("Select Directory" , "c:" , 2)

$Farray = _RecFileListToArray ($path ,"*" , 1 , 1 , 1 , 2)

Dim $HashArray[$Farray[0] + 1]
Dim $ComboArray[$Farray[0] + 1]

For $i = 1 to $Farray[0]
$HashArray[$i] = _Crypt_HashFile($Farray[$i], $CALG_SHA1)
Next

For $n = 1 to $Farray[0]
$ComboArray[$n] = $Farray[$n] & "||" & $HashArray[$n]
Next

$ComboArray[0] = $path

_FileWriteFromArray (@ScriptDir & "\hashfile.txt" , $ComboArray , 0)

EndFunc


;;;===============================CHECKING AN EXISTING FILE====================================

Func _CheckHashFile()

$GUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_LAYERED)
GUISetBkColor(1, $GUI)
_WINAPI_SETLAYEREDWINDOWATTRIBUTES($GUI, 1, 255)
GUISetState(@SW_SHOW)

Dim $ReadArray
_FileReadToArray(@ScriptDir & "\hashfile.txt" , $ReadArray)
$path = $ReadArray[1]
_ArrayDelete($ReadArray , 0)


$FArray = _RecFileListToArray ($path ,"*" , 1 , 1 , 1 , 2)

Dim $HashArray[$Farray[0] + 1]
Dim $ComboArray[$Farray[0] + 1]

For $i = 1 to $Farray[0]
$HashArray[$i] = _Crypt_HashFile($Farray[$i], $CALG_SHA1)
Next

For $n = 1 to $Farray[0]
$ComboArray[$n] = $Farray[$n] & "||" & $HashArray[$n]
Next

$ComboArray[0] = $path


;~ ;FIND MISSING ELEMENTS

For $S = 0 To UBound($ReadArray) - 1
_ARRAYSEARCH($ComboArray, $ReadArray[$S])
If @error = 6 Then
GUISetBkColor(16711680, $GUI)
ExitLoop
EndIf
Next
For $K = UBound($ComboArray) - 1 To 0 Step -1
$FIND = _ARRAYFINDALL($ReadArray, $ComboArray[$K])
For $M = UBound($FIND) - 1 To 0 Step -1
_ARRAYDELETE($ReadArray, $FIND[$M])
Next
Next


$MISSINGARRAY = $READARRAY
_ArrayDisplay($MissingArray , "Missing or Modified Files")
If NOT IsArray ($missingArray) Then $flag = 0


;FIND ADDED or Modified Elements

_FileReadToArray(@ScriptDir & "\hashfile.txt" , $ReadArray)
$path = $ReadArray[1]
_ArrayDelete($ReadArray , 0)

For $K = UBound($READARRAY) - 1 To 0 Step -1
$FIND = _ARRAYFINDALL($ComboARRAY, $READARRAY[$K])
For $M = UBound($FIND) - 1 To 0 Step -1
_ARRAYDELETE($ComboARRAY, $FIND[$M])
Next
Next

$ADDEDARRAY = $ComboARRAY
_ArrayDisplay($AddedArray , "Added or Modified Files")
If NOT IsArray ($AddedArray) And $flag = 0 Then msgbox(0, '' , "Directory contents are the same")

_ArrayConcatenate($AddedArray , $MissingArray)
_ArrayDisplay($AddedArray , "All Modifications")

EndFunc











Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...