Class MemScan
Inheritance
Object | MemScan 🡄 Object |
Properties
FoundList | The foundlist currently attached to this memscan object. |
LastScanType | Possible values: 'stNewScan', 'stFirstScan', 'stNextScan' |
LastScanValue | |
LastScanWasRegionScan | Returns true is the previous scan was an unknown initial value. |
OnGuiUpdate | Called during the scan so you can update the interface if needed. |
OnScanDone | Set a function to be called when the scan has finished. |
OnlyOneResult | If this is set to true memscan will stop scanning after having found the first result, and written the address to "Result". |
Result | If OnlyOneResult is used this will contain the address after a scan has finished. |
ScanresultFolder | Path where the results are stored. |
Methods
firstScan ( scanoption, vartype, roundingtype, input1, input2, startAddress, stopAddress, protectionflags, alignmenttype, alignmentparam, isHexadecimalInput, isNotABinaryString, isunicodescan, iscasesensitive ) | Does an initial scan. |
getAttachedFoundlist () | Returns a FoundList object if one is attached to this scanresults. |
getOnlyResult () | Only works if returnOnlyOneResult is true. |
getProgress () | returns a table with fields: TotalAddressesToScan, CurrentlyScanned, ResultsFound |
newScan () | |
nextScan ( scanoption, roundingtype, input1, input2, isHexadecimalInput, isNotABinaryString, isunicodescan, iscasesensitive, ispercentagescan, savedresultname ) | Does a next scan based on the current addresslist and values of the previous scan or values of a saved scan. |
saveCurrentResults ( name ) | Save the current scanresults to a unique name for this memscan. |
setOnlyOneResult ( state ) | If set to true before you start a scan, this will cause the scanner to only return one result. |
waitTillDone () | Waits for the memscan thread(s) to finish scanning. |
Creation
createMemScan ( progressbar ) | Returns a new MemScan class object. |
getCurrentMemscan () | Returns the current memory scan object. |
Inheritance
Properties
- FoundList
-
The foundlist currently attached to this memscan object.
Type:
- LastScanType
-
Possible values: 'stNewScan', 'stFirstScan', 'stNextScan'
Type:
string ScanType - LastScanValue
-
Type:
- LastScanWasRegionScan
-
Returns true is the previous scan was an unknown initial value.
Type:
boolean - OnGuiUpdate
-
Called during the scan so you can update the interface if needed.
Type:
functionUsage:
MemScan.OnGuiUpdate = function(memscan, TotalAddressesToScan, CurrentlyScanned, ResultsFound)
- OnScanDone
-
Set a function to be called when the scan has finished.
Type:
functionUsage:
MemScan.OnScanDone = function(memscan)
- OnlyOneResult
-
If this is set to true memscan will stop scanning after having found the first result, and written the address to "Result".
Type:
boolean - Result
-
If OnlyOneResult is used this will contain the address after a scan has finished.
Type:
integer - ScanresultFolder
-
Path where the results are stored.
Type:
Methods
- firstScan ( scanoption, vartype, roundingtype, input1, input2, startAddress, stopAddress, protectionflags, alignmenttype, alignmentparam, isHexadecimalInput, isNotABinaryString, isunicodescan, iscasesensitive )
-
Does an initial scan.
memscan: The MemScan object created with createMemScan scanOption: Defines what type of scan is done. Valid values for firstscan are:
soUnknownValue: Unknown initial value scan soExactValue: Exact Value scan soValueBetween: Value between scan soBiggerThan: Bigger than ... scan soSmallerThan: smaller than ... scan
vartype: Defines the variable type. Valid variable types are:
vtByte vtWord 2 bytes vtDword 4 bytes vtQword 8 bytes vtSingle float vtDouble vtString vtByteArray vtGrouped vtBinary vtAll
roundingtype: Defined the way scans for exact value floating points are handled
rtRounded : Normal rounded scans. If exact value = "3" then it includes 3.0 to 3.49999999. If exact value is "3.0" it includes 3.00 to 3.0499999999 rtTruncated: Truncated algorithm. If exact value = "3" then it includes 3.0 to 3.99999999. If exact value is "3.0" it includes 3.00 to 3.099999999 rtExtremerounded: Rounded Extreme. If exact value = "3" then it includes 2.0000001 to 3.99999999. If exact value is "3.0" it includes 2.900000001 to 3.099999999
input1: If required by the scanoption this is a string of the given variable type input2: If requires by the scanoption this is the secondary input
startAddress : The start address to scan from. You want to set this to 0 stopAddress : The address the scan should stop at. (You want to set this to 0xffffffffffffffff)
protectionflags : See aobscan about protectionflags alignmenttype : Scan alignment type. Valid options are:
fsmNotAligned : No alignment check fsmAligned : The address must be dividable by the value in alignmentparam fsmLastDigits : The last digits of the address must end with the digits provided by alignmentparam
alignmentparam : String that holds the alignment parameter.
isHexadecimalInput: When true this will handle the input field as a hexadecimal string else decimal isNotABinaryString: When true and the varType is vtBinary this will handle the input field as a decimal instead of a binary string isunicodescan: When true and the vartype is vtString this will do a unicode (utf16) string scan else normal utf8 string iscasesensitive : When true and the vartype is vtString this check if the case matches
Parameters:
- scanoption
- vartype
- roundingtype
- input1
- input2
- startAddress
- stopAddress
- protectionflags
- alignmenttype
- alignmentparam
- isHexadecimalInput
- isNotABinaryString
- isunicodescan
- iscasesensitive
- getAttachedFoundlist ()
-
Returns a FoundList object if one is attached to this scanresults.
Returns nil otherwise.
Returns:
- FounList
- nil
- getOnlyResult ()
-
Only works if returnOnlyOneResult is true.
Returns nil if not found, else returns the address that was found (integer).
Returns:
- integer
- nil
- getProgress ()
-
returns a table with fields: TotalAddressesToScan, CurrentlyScanned, ResultsFound
Returns:
- newScan ()
- () : Clears the current results
- nextScan ( scanoption, roundingtype, input1, input2, isHexadecimalInput, isNotABinaryString, isunicodescan, iscasesensitive, ispercentagescan, savedresultname )
-
Does a next scan based on the current addresslist and values of the previous scan or values of a saved scan.
memscan: The MemScan object that has previously done a first scan
scanoption:
soExactValue: Exact Value scan soValueBetween: Value between scan soBiggerThan: Bigger than ... scan soSmallerThan: smaller than ... scan soIncreasedValue: Increased value scan soIncreasedValueBy: Increased value by scan soDecreasedValue: Decreased value scan soDecreasedValueBy: Decreased value by scan soChanged: Changed value scan soUnchanged: Unchanged value scan
roundingtype: Defined the way scans for exact value floating points are handled
rtRounded : Normal rounded scans. If exact value = "3" then it includes 3.0 to 3.49999999. If exact value is "3.0" it includes 3.00 to 3.0499999999 rtTruncated: Truncated algoritm. If exact value = "3" then it includes 3.0 to 3.99999999. If exact value is "3.0" it includes 3.00 to 3.099999999 rtExtremerounded: Rounded Extreme. If exact value = "3" then it includes 2.0000001 to 3.99999999. If exact value is "3.0" it includes 2.900000001 to 3.099999999
input1: If required by the scanoption this is a string of the given variable type input2: If requires by the scanoption this is the secondary input
isHexadecimalInput: When true this will handle the input field as a hexadecimal string else decimal isNotABinaryString: When true and the varType is vtBinary this will handle the input field as a decimal instead of a binary string isunicodescan: When true and the vartype is vtString this will do a unicode (utf16) string scan else normal utf8 string iscasesensitive : When true and the vartype is vtString this check if the case matches ispercentage: When true and the scanoption is of type soValueBetween, soIncreasedValueBy or soDecreasedValueBy will cause CE to do a precentage scan instead of a normal value scan savedResultName: String that holds the name of a saved result list that should be compared against. First scan is called "FIRST"
Parameters:
- scanoption
- roundingtype
- input1
- input2
- isHexadecimalInput
- isNotABinaryString
- isunicodescan
- iscasesensitive
- ispercentagescan
- savedresultname (optional)
- saveCurrentResults ( name )
-
Save the current scanresults to a unique name for this memscan.
This save can be used to compare against in a subsequent next scan.
Parameters:
- name string
- setOnlyOneResult ( state )
-
If set to true before you start a scan, this will cause the scanner to only return one result.
Note that it does not work with a foundlist.
Parameters:
- state
- waitTillDone ()
- Waits for the memscan thread(s) to finish scanning. Always use this.