-
Notifications
You must be signed in to change notification settings - Fork 26
Sense_MFile
This sensor works on multiple input files in a tiled based output format, that permits you to quickly compare files of similar original and look for slight deviations. This is a useful feature when, for instance, you are looking into reversing unknown file formats where you have multiple samples of the same format.
The primary window here is the one used for navigating, stepping etc. and shares most options and controls with the regular file sensor. The key difference and limitation is that there is no curve mapping or similar features, you are locked to the tile format used (although the size of tiles, and the border between tiles are both configurable).
Meta + number- keys can also be used to quick-zoom to/from a specific tile.
The secondary window here highlights common or deviating parts of each tile. Using the cycle- mode button, colors can be inverting from highlighting common values (bright green equals a 100% match between tiles) and deviating (bright green is a complete mismatch)
By doubleclicking a tile, its right-side border turns yellow. This means that step-lock is enabled. This means that stepping operations will only apply to the locked tile(s), double-click again to toggle off.
This feature helps to re-align tiles that have deviated due to length- fields or other file-format dependent variable datablock.
During sensor launch, it is also possible to specify comparison tiles that show the effect of some binary operations (ADD/DEC/XOR/etc.). The format looks like this:
./sense_mfile -c0,1,XOR -c0,3,AND file1 file2 file3 file4
This will compare 4 different files, and add two more tiles that are generated based on the contents of the (first and second) and (first and fourth) files, applying the XOR and AND operators respectively.
There is also a custom 3D view for this sensor, right-click the data window to normal popup, and select Comparison Model. The view looks like this:
Where each cell gets its own XZ layer spaced out along the Y axis. The first cell is drawn as normal (using the last global LUT that has been set) and the others are drawn to show if they match or deviate from the correspondin.
This is to complement the secondary window to help pin-point which bytes that differ in which file. The mode toggle (default-key: m) switches between showing match or mismatch while the point-sz (default-keys: o, p) increase or decrease the active point size.
-
Mapping to translators is fairly unreliable as the border and tile- format mapping into eachother makes the useful data window rather small.
-
This sensor works best in 1byte per pixel packing mode on rather small input sets.
- Add support for scriptable stateful meta- tiles.