Algorithm Tool
version: 2.2.0.0
created by: JizzaBeez
How to use:
1) open a file (drag n drop, or open from menu).
2) there are 2 ways to use this tool:
1) Calculator
a) enter the [start] position/offset.
b) enter the [length], or check [select all].
c) click [calculate].
2) Brute Force
a) select the [type] from the ListView.
b) enter the [start] position/offset.
c) enter the known [value] (must be in HEX format).
d) check [retry?] if you want the [start] to advance +1 when it reaches the end of data and then start the search again.
e) select the [direction]. "forward" will increase bytes read from beginning to end and "reverse" will decrease bytes read from end to beginning.
f) click [start] to start searching. if needed, click [stop] to stop searching.
- the tool will search the data with the [type] beginning at the [start] until it reaches the end of the data or if the [length] is found. if the calculated data's sum/hash matches the [value] then it will message with the details of the calculation, if not then it will message "length not found".
Information:
[type]
- the known checksum/hash algorithm type. if unknown then select all to cycle through all available.
[value]
- the known checksum/hash value (must be in HEX format).
[start]
- the starting position/offset in the data to start calculating from.
[length]
- the length of data to calculate using the given algorithm type.
[retry?]
- when the scan reaches the end of the data it will advance the [start] +1 then restart the calculation (loop) until the end of the file.
[select all]
- selects the entire file to be calculated.
[direction]
- the direction in which to scan the file. "forward" will increase bytes read from beginning to end and "reverse" will decrease bytes read from end to beginning.
Direction Example:
[X] = Bytes Read.
Forward:
scan1 : [X]
scan2 : [X][X]
scan3 : [X][X][X]
Reverse:
scan1 : [X][X][X]
scan2 : [X][X]
scan3 : [X]
Requirements:
1) .net framework 3.5, or greater.
2) windows xp, or greater (not tested on os below xp).
3) 32bit os. may work on 64bit os.
*) Plugins.dll. This DLL is needed to run and should be included.
Updates:
1) 2.0.0.0
- completely recoded.
- new ui design/layout.
2) 2.1.0.0
- Required: "Plugins.dll" is a Plugin that holds the algorithms to use. "Plugins.dll" can be updated as needed.
Example of Plugins.dll:
The program uses System.Reflection to get the Classes and Methods from the DLL file, so as long as the DLL is built like below then the program can use it...
Namespace Algorithms
Public Class Checksum32
Public Function Compute(ByVal Bytes As Byte()) As Byte()
Dim Value As UInteger = 0
For Each b As Byte In Bytes
Value = CUInt((Value + b) And &HFFFFFFFF)
Next
Dim OutBytes As Byte() = BitConverter.GetBytes(CUInt(Value))
Array.Reverse(OutBytes)
Return OutBytes
End Function
End Class
End Namespace
3) 2.2.0.0
- new design/ui (again)
- optimized code so it should scan faster now.
- included the "direction" feature for brute force.
Screenshots:
DOWNLOAD