HexView
Hex data display and structs anylizer
Download:
https://code.google..../trunk/HexView/
Features:
pVar - Input data address
pByteNo - Optional number of bytes to show, by default StrLen(pVar)
pActiveTab - Optional tab name to activate upon startup. This overrides saved registry setting.
Example:
s := "123456789ABCDEF0 This is some very nice binary data"
s := s s s s s s s s s
HexView(&s, 1024)
return
[/code]
This is something very handy for debuging. Its not made to preview files, but AHK variables and API structures. Don't pass more then 50KB data.
You have some other useful functions in this package.
History
v3.11
* Changes so it works with latest AHK_L
v3.1
- Synchronised selection of hex and ascii edits reimplemented using subclassing instead of timer. HexView doesn't create timer anymore and selection sync is real time.
* Anchor in archive updated to latest version
v3.0
- StdLib adaptation: InsertExtract Integer removed, Dependencies set as stdlib modules (Anchor, Mem), API_xxx replaced with DllCalls.
- Structures.str will be searched in Lib folder also.
- To use, save each dependency module in the Lib directory.
v2.0
- Width can be changed now. Your last width is saved
- Active selection is saved on exit and returned on next load.
- Changed first parameter to be address instead variable
- Double left click at the struct row copies row to clipbord
- New Option: copy entire row or just a value
- Double right click at the struct row displays text at the address
v2.0 rc2
- Includes merged so you can include HexView easier. Package now includes:
HexView.ahk - contains hexview include
Structures.str - contains default structure list
EXAMPLE.ahk - example of usage- You can override struct list that is by default taken from the Structures.str file. If you don't want to use this file, or if you just want to override it in some situations, define HexView_structList global variable before calling HexView. The variable should contain struct definitions the same way like in file. For example:
HexView_structList = [SIZE]- Some minor improvements.
v2.0 rc1
- Interface redesigned to add space for more tabs and options.
- Sync scrolling now works in ascii. If you move cursor in asci edit appropriate byte will be selected in hexa view. If you have tooltip ON you can see the decimal value of the byte that will be automaticaly selected by cursor moving.
- Options to set hex format for struct members and/or offset
- Show or hide header in struct list view (enable it to sort and move columns)
- Last active tab is now saved and restored on next run. You can override this by using pActiveTab parameter
v2.0 b1
- Reverse struct interpretation. Add - infront of struct name, for instance "-RECT"
- Tooltip to show struct members when current tab is not struct tab. You can toogle it in setup tab.
- Bug fix (inproper selection count)
- Some minor improvements of struct tab.
NOTE: Example removed from the include file. You can't see it by executing HexView.ahk any more.
v1.95
- structs tab
v1.91
- hexa cursor moving bug fix
- sync scroll bug fix
- badly calculated offset fixed
- code is commented and polished
- added third optional parameter to start with specific tab open
v1.9
- major gui redesign
- customization
- position and size saving; now you can extend the height of the GUI.
v1.0
Initial release
Notes:
- You can make HexView window modal if you put following code at the end of the HexView funcion:
loop { sleep 200 IfWinNotExist ahk_id %HexView_hwnd% break }
I wont add this to the function until some modality thing is included natively in AHK, as above solution is workaround for missing AHK feature and make window movement glitchy. Sleep -1 solves glitches but introduces around 20% of CPU burn on my system.
Thx goes to:PhiLho, Laszlo