-
Notifications
You must be signed in to change notification settings - Fork 70
/
TODO
165 lines (159 loc) · 6.23 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
HT TODO
=========
+sepps
- implement ht_static_treeview::goto_node() at all
- exports/dimports in PE32+ broken
- ht_listbox should have column align (left, right, center)
- strz escape problems e.g. ffffffff -> " "
- segments
- multiple disassemblers
- address: different display types (ie rva)
- next unexplored
- out_addr *analyser_output::get_addr(ADDR Addr) no cur_out_addr==NULL test
- htanaly.cc: menu ifs not used properly (for keys...)
- analy_x86: AnalyX86Disassembler::createAddress() fix it.
- analy.cc: pushAddress(x,y) leaks x if !isValidCodeAddr(x)
- analy.cc: analyser file storage: thresholds are stored after data structures
which they are used for.
> 80c20 dd 0x4c000024 ;; 00080c20 rfid
> 823e4 dd 0x7d708120 ;; 000823e4 mtcrf 0x08,r11
+dunno
- update help
- listbox-search
- qword *, /, %: better impl...
- FILEOFS 64+ bits
- (HT_1_0) freeze/stabilize config file formats / APIs
- int ht_ne_entrypoint_viewer::ref_sel(LINE_ID *id)
- 1”1 will eval to 1
- [x86 asm] 'jmp 1+2' doenst work but 'mov [1+2], ax' ??
- store.cc:60: getObject quits with invalid config file
- disasm (esp. x86) switch 16/32 correctly
- classread/view.cc
- rename to match PE/ELF/LE,etc.'s structure
- shared data not freed
- segmented addresses + eval()
- [start, end) or [start, end] in
- Areas
- ht_analy::lowest/highest address
- document commandline options in help
+steves
- get rid of bnstr()!!!
- ./configure should not fail if it can't find lex/flex (and probably other including
but not limited to yacc)
- eval: no signed division (there should be an operator s/ with "-7 s/ 7 == -1")
- x86asm: "test eax, [2342343]" should yield "test [2342343], eax"
("test" ist symmetric)
same with "xchg"
- eval: "-2+1.0" vs. "2+1.0" (difficult)
- option to open a file without attempting to parse
'special information' - i.e. to edit it as pure hex.
- mov eax, [eax+ebp] vs. mov eax, [ebp+eax]
- blockop should support multiple endianesses (currently only big-endian)
- eval: int(-1.0) results in 0xffffffff instead of 0xffffffffffffffff
- eval: int("-1") does not work
- eval should warn if number too big/cannot parse
- eval whatis(whatis("whatis")), what is?
- create ht.cfg in "home dir", implementation+interface sys_get_home_dir()
- disabling "-pipe" on generic-POSIX systems doesn't seem to work
- input_date_time()
- open... new option: preserve mtime
- htsys.h move to .., implement sys_pstat_fd(pstat_t *s, int fd)
- eval text_viewer
- LE binary search does not work
- Resources in VxDs (like in PE)
- IPC-djgpp: recognize gui progs and close window !?
- httext line wrapping, ctrl+page_down ?!
- new instead of malloc
- terminal.cc: terminal line buffering ?!
- textviewer: vi-mania: '/' searches, 'n' continues
- vfsview: xtime tag modified to display seconds. keep this ?
- LE: fix file offset chaos (but howto ?)
- "class Process" in process.cc: replacing/improving *_process
see messy code htsearch: replace_bin_process (c->'s)
- (HT_0_9) features configurable
- (HT_0_9) directory structure
- move source files (especially object system) into separate directories,
solve name problems
- (HT_0_9) data2/string2/stream2/store2/debug2
- homogenous/heterogenous lists
- save on readonly/locked file
- stream::set_layered suspicious
- use exceptions
- (HT_0_9) the next big changes (htvision rewrites)
- rewrite menus, disable menu-entries (and multiple context menus ?)
- handlemsg should not have to handle keypressed. new concepts needed
- texteditor as dialog-widget should have attachable scrollbar
- menus should save last cursor position
- use exceptions and get rid of globalerror (cause its ugly)
- cleanup msg interface
- auto-documentation (e.g. keys)
- syntax.cc:bool match_sorted_stringtable(char *s, UINT slen, char **strings, UINT strings_count):
better use bsearch() (ANSI, POSIX)
- texteditor as dialog-widget should have attachable scrollbar
- open file: wildcards
- search
- search should prefill start/end ofs from selection (if applicable)
- search with invalid start/end offset
- menus should save last cursor position
- int ht_disasm_sub::prev_line_id(LINE_ID *line_id, int n), bah
- getbounds rel coords
- disable buttons (disable menu-entries, disable messages)
- file manager
- file browser
- vfs based on ht_listbox
- copy, etc. ?!
- vfs ..._viewer to get config_changed
- elf/pe/etc.-section ref tree optimizationdfgjl
- KEY_RESIZE
- textedit/file
- +get_size,extend,truncate +overwrite -use_getline
- highlighter speed !!
- bug with getline's pofs ?!
- long lines
- unindent()
- match pair highlight
- undo::gettext() should (be able to) use text_editor::snprint_ppos(...)
- input separators configurable (right now only creates UNIX-style files)
- search backwards
- more history entries: replace e.g.
- improve edit_time/dialog ?!
- auto-documentation (e.g. keys)
- portability
- compile on sun solaris (curses problems (only?) on cf.sf.net)
- compile on MacOS X (curses.h, but no ACS_*)
- detect format length (ne,le,elf)
- LE: use byte/word order (no examples)
- pe/elf relocations ?
- make ht_group_sub work correctly
- color invert & underlined attribute and transparent chars, codepages ? &&
abstract (e.g. transparent) chars (io/*)
- x86 (dis)assembler
- options (ambigous & + floats) + beautify (enums)
- "short"/"large" branches
- OBJECT_ID vs HT_ATOM ?
- object notification (e.g. insertion into groups (c overview),
dialog-elements content modified )
- file structure overview
- uformat+k_shift_*: use select_mode_*
- *::duplicate(); --> *::clone();
- use better c/c++ (s/most dwords/UINT/, s/int/bool/where needed,
more enums, templates, exceptions)
- better coff-detection
- multiple bit tag (extend bit tag ?)
- execute_dialog_modal + window move/resize
- taginfo-window
- clipboard: limit size somehow
- smart window positioning (don't hide cursor)
- split up htobj.cc and htdialog.cc into smaller files
- extended search (continue as idle w/result window)
- CHAR-TAGs must also be editable as hex
- full support of: pe, le, lx, mz, ne, elf, a archives, pure/dj coff,
m$ object files, etc..
- exe-packer support (at least notification)
- fix FIXMEs
- remove memory leaks
+discussion
- queuemsg in ht_view ?!
- searchmode bin/regex: rewrite regex ?
- "Ctrl-X" vs. "Ctrl+X"
- only frames have desc, rest view_debug_name