summarylogtreecommitdiffstats
path: root/ChangeLog
blob: c9692b31f0256599b574fa258b1ccff3dc126418 (plain)
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
4.5.17 (2019-10-25 23:41:07)

    Handles endbr32 and endbr64 instructions,
    Adds a few methods to handle arrays in Python API,
    Improved Mach-O header information,
    Improves command line tool,
    Fixes a crash in the C++ name demangler,
    Fixes a crash on ARM64.

4.5.16 (2019-09-18 13:45:00)

    Adds IPA file loader (note: ciphered IPA taken from the AppStore will still be ciphered, obviously...),
    Fixes an issue with contextual right mouse menu not targeting the right document,
    Fixes memory leaks.

4.5.15 (2019-09-05 12:03:03)

    Fixes an UI issue with right click menu where the target document was not properly selected,
    Improves the C preprocessor, adding directives like #elif,
    Adds parsing of extended Objective-C category fields.

4.5.14 (2019-08-13 17:22:09)

    Adds support for Intel HEX file format,
    Fixes a graphical issue on files with a segment beginning at address 0.

4.5.13 (2019-07-08 15:04:21)

    Fixes a crash when using "po" and "expr" LLDB commands in the debugger panel,
    Fixes an issue when searching numbers after another case insensitive search has been performed,
    Fixes a few issues in the Python API with thumb/ARM identification methods.
    A few minor bugs has been fixed.

4.5.12 (2019-06-21 15:20:41)

    Improves switch / case statement detection for ARM 32bits,
    Adds a way to change operand format options on multiple selection,
    Provides more information about the issue when the debugger cannot be started.

4.5.11 (2019-05-06 14:58:44)

    Fixes an issue in the search feature where results in segments with no sections were not found.

4.5.10 (2019-04-26 18:29:50)

    Improves Swift 5 name demangling,
    Now you can use Swift 5 in order to write Hopper plugins.

4.5.9 (2019-04-03 17:04:45)

    Fixes an issue which prevented some cross references to be properly computed on iOS 12,
    Fixes a deadlock on some binaries.

4.5.8 (2019-03-29 17:58:05)

    Fixes AArch64 32bits disassembler (the CPU variant used in the Apple Watch).

4.5.7 (2019-03-01 17:10:24)

    Fixes a huge slowdown on some big binaries,
    Tweaks the switch hint dialog for ARM.

4.5.6 (2019-02-14 20:48:06)

    Fixes some optimisation issues in ARM64 decompiler.
    Fixes more issues with PDB symbols.

4.5.5 (2019-02-01 18:10:43)

    Fixes loading of some PDB files,
    Fixes a performance issue when drawing text containing a breakpoint.

4.5.4 (2019-01-23 19:12:16)

    Fixes an issue with arrows in the left column not pointing to the correct address while scrolling,
    Allows one to navigate through the search result with arrow keys in the label list.

4.5.3 (2019-01-12 13:52:40)

    Fixes various issues with dark mode on Mojave.

4.5.2 (2018-12-27 13:19:52)

    Fixes a crash in the Windows PE loader.

4.5.1 (2018-12-13 13:15:12)

    Fixes an issue which prevents newly registered customers to upgrade to the full version.

4.5.0 (2018-12-12 13:58:00)

    First version of the application notarized at Apple,
    Better support for environments using Cylance,
    Initial support for the S4 processor of the latest Apple Watch Series 4,
    Fixes a rare crash in the debugger.

4.4.9 (2018-12-03 15:25:27)

    Fixes a compatibility issue with Cylance,
    Fixes an issue where custom debug servers were not properly saved,
    Improve C preprocessor parsing.

4.4.8 (2018-11-21 15:07:41)

    Fixes a decompilation issue where a function call may disappear when used in an empty if / else statement,
    Fixes an issue with the pseudo-code view after a rebase operation,
    Initial support for 8 and 16 bits CPUs (but Intel 16 bits is NOT yet supported),
    Initial support for MOS 6502 / 6510 CPU,
    Initial support for C64 PRG files, and D64 disk images.

4.4.7 (2018-11-13 21:09:39)

    Fixes an issue on some systems with empty windows.

4.4.5 (2018-11-05 16:59:36)

    Fixes a data corruption issue when saving (really) big documents,
    Fixes graphical glitches at segment boundaries,
    Improves detection of float parameters in the decompiler for some system functions.

4.4.4 (2018-10-10 14:37:28)

    Fixes a crash on disassembling files written in Go,
    Fixes the debugger for 32bits executables.

4.4.3 (2018-10-09 17:42:34)

    Fixes small graphical issues,
    Added a way to choose between the light or dark interface independently from the system settings,
    Fixes an issue in the debugger preventing from attaching to the Finder or the Dock.

4.4.2 (2018-10-04 19:41:07)

    Fixes drawing issues introduced in 4.4.0.

4.4.1 (2018-10-03 19:28:51)

    Implements most of the ARMv8.1, ARMv8.2 and ARMv8.3 extensions.

4.4.0 (2018-09-28 23:28:17)

    Dark mode support (macOS Mojave),
    New debugger backend using the LLDB C++ API, instead of the Python API (Xcode 10),
    New graphic engine (macOS Mojave),
    Fix an issue in the sample m68k CPU project (SDK).

4.3.31 (2018-09-14 16:51:03)

    Fixes an issue in the Tool SDK when disassembling instructions,
    Prevents a deadlock with outputting lots of debug messages in the log view,
    Fixes a memory leak in the hexadecimal mode.

4.3.30 (2018-09-01 16:57:29)

    Fixes a bug in the ELF loader regarding ARM relocations,
    Fixes a crash while loading some files from the watchOS 5.0 beta shared DYLD cache.

4.3.29 (2018-08-25 11:28:09)

    Fixes an issue where main screen would be impossible to read in some circumstances. 

4.3.28 (2018-08-13 17:42:43)

    Fixes an issue with x86 segment registers not displayed in some cases,
    Fixes a formatting issue on ARM LDRB/STRB instructions where offsets were truncated.

4.3.27 (2018-08-08 17:15:41)

    Implements most ARM and AArch64 relocation for ELF files,
    Fixes a slowness during the analysis of file containing big BSS sections,
    Fixes function pointer signature editor on Linux. 

4.3.26 (2018-07-13 15:02:01)

    Fixes missing symbols in some ELF executables,
    Improves loading of ELF object files,
    Adds methods to load and save documents from Python,
    Adds a way to launch Python commands from the CLI,
    Some improvements in the SDK for CPU plugins with multiple CPU modes. 

4.3.25 (2018-06-27 20:10:44)

    Slightly improves the ASM analysis,
    Improves enum types handling,
    Fixes an issue in the ARM64 calling convention,
    Fixes an issue in the Windows C++ name demangler,
    Improves command line tool. 

4.3.24 (2018-05-24 17:06:08)

    Fixes the module search path for Python scripts,
    Faster access to labels list in Python scripts. 

4.3.22 (2018-05-16 19:03:48)

    Fixes an issue where some Python scripts were stopped when Hopper was running in background,
    Fixes a typo in decompiled Objective-C methods signatures. 

4.3.21 (2018-05-09 19:59:46)

    Fixes a crash in the decompiler,
    Better automatic ARM / Thumb handling. 

4.3.20 (2018-04-25 16:22:16)

    Fixes an optimization issue in the decompiler,
    Fixes missing labels in pseudo-code,
    Faster pseudo-code export (exporting all procedures is now multithreaded),
    Lowers memory usage during pseudo-code export,
    Decompiled Objective-C methods now have a more easily readable signature. 

4.3.19 (2018-04-20 13:11:14)

    Adds a way to export pseudo-code for a single procedure, or all the procedures,
    Adds a way to export an Objective-C header file, à la class-dump (Objective-C 2 only at the moment)
    Adds a way to declare strings which are not NULL terminated,
    You can now customize the application shortcuts,
    Better ARM prolog detection,
    Fixes some graphical issues on macOS 10.9,
    Fixes multiple issues in the decompiler, 

4.3.18 (2018-03-29 11:13:06)

    Fixes a issue when displaying arrays on a single line,
    Fixes missing types in the SDK 

4.3.17 (2018-03-27 15:23:29)

    Exposes types, and method signatures in the SDK,,
    Adds method to rename registers from Python and the SDK,
    Adds a way to print structs and arrays on a single line,
    Adds a way to import multiple types at once by parsing a C header file,
    Fixes some issues in the decompiler. 

4.3.16 (2018-02-16 18:53:05)

    Adds the ability to change the display format of a selection,
    Adds an option to avoid the DUP keyword,
    Fixes the switch/case pattern based on LDRLS on ARM,
    Adds some functions to the Python API to get access to demangled names. 

4.3.15 (2018-02-11 11:29:40)

    Fixes a compatibility issue with macOS before 10.12. 

4.3.14 (2018-02-09 19:26:01)

    Fixes a crash when moving in a large decompiled function. 

4.3.13 (2018-02-09 18:06:52)

    Improve analysis of ARM64 binaries,
    Improve decompilation of ARM64 binaries,
    Handle some new switch / case construction for ARM64,
    Better handling of ADRP/ADD and ADRP/LDR instruction couples,
    Fixes some issues in the AAPCS implementation,
    Add an option for searching an integer across the file,
    Add the ability to use label names in the assembler. 

4.3.12 (2018-01-12 16:49:53)

    Fixes some crashes when opening some very old HOP files,
    Fixes the "no return" attribute propagation in method signature,
    Adds some methods to the Python API. 

4.3.11 (2017-12-28 18:35:40)

    Fixes an issue with the detection of switch / case on ARM64 which may end in an infinite loop,
    Fixes an issue with rebasing of Mach-O dylib,
    Fixes an issue with some object files generated by NASM,
    Additions to the SDK and the Python API. 

4.3.10 (2017-12-16 10:28:17)

    Fixes the command line tool. 

4.3.9 (2017-12-16 00:54:32)

    Fixed a missing case in the corrupted database issue handling. 

4.3.8 (2017-12-15 23:16:57)

    Fixes a crash which occurs when the "Data Inspector" inspector component is collapsed,
    Fixes a data corruption due to a old database format (fortunately, no data were lost),
    You can extend the popups in the other direction while pressing the Alt key,
    Adds a way to truncate a procedure. 

4.3.7 (2017-11-29 16:12:30)

    Better handling of Windows executables,
    Updates the method signature database for Mac, Linux and Windows,
    Fixes a crash in the search dialog,
    Adds a way to define a method signature for external functions,
    Adds some ARM64 switch / case patterns. 

4.3.6 (2017-11-03 12:03:39)

    Fixes an excessive CPU usage when the window was split with at least one pseudo-code view. 

4.3.5 (2017-11-02 12:23:54)

    Pseudo-code mode can now be synced with other modes,
    Fixes some situations where PIC registers in 32 bits executables were not properly tracked,
    Alt+click can now be used to create split view from many dialogs,
    Various optimisations. 

4.3.4 (2017-10-24 18:08:44)

    Fixes an issue when trying to load an old database from Hopper v2,
    Adds an option to hide columns in the label list,
    Adds an option to hide the toolbar,
    Fixes a deadlock issue during save,
    Fixes a performance issue on ARM files. 

4.3.3 (2017-10-23 12:23:30)

    Fixes decoding operands of MSR/MRS instructions,
    Safer way to save files. 

4.3.2 (2017-10-21 18:00:51)

    Fixes a potential issue with the new preferences system. 

4.3.1 (2017-10-21 10:30:01)

    Fixes an issue with the hex mode on macOS 10.9 

4.3.0 (2017-10-20 16:26:43)

    New analysis engine,
    More information in the label list,
    Better handling of Windows executables,
    Parses exceptions from GCC/Clang and Windows SEH structures,
    Detects more switch / case constructions,
    Fixes Python script execution on Linux,
    Fixes some ARM instruction with floating point operand,
    Fixes an issue where the application would fall back to the demo mode after the computer has been suspended,
    Improves speed on areas with a lot of references,
    Various optimisations. 

4.2.21 (2017-09-28 18:38:03)

    Properly handle the BND prefix. 

4.2.20 (2017-09-26 19:21:10)

    Tweaks the interface for macOS High Sierra,
    Now you can create arrays of arbitrary length by selecting bytes,
    Adds an option to extend the segments, so that it is possible to edit any part of the file. 

4.2.19 (2017-09-22 19:56:28)

    Better handling of MRC/MCR instructions,
    Better decoding os STOS/LODS/INS/OUTS instructions with prefixes,
    Fixes an issue with relocation on ELF files. 

4.2.18 (2017-09-16 16:10:44)

    Fixes a crash in the type editor,
    Fixes an issue with arrays on stack,
    Fixes an issue when setting a switch hint with absolute addresses in a 64 bits executable. 

4.2.17 (2017-09-10 09:07:17)

    Fixes an issue which causes the lost of formatting for some operands 

4.2.16 (2017-09-08 18:20:27)

    Fixes an issue when disassembling some NEON instructions,
    New argument formatting option for addresses relative to another address,
    Fixes an incompatibility with Mavericks. 

4.2.15 (2017-09-01 19:06:08)

    Fixes an excessive usage of RAM when closing a document running a background analysis,
    Loads symbols of dyld shared cache, even when loading the whole mapping,
    Fixes some memory leak,
    Fixes a crash in the debugger,
    Fixes debugger on Mavericks. 

4.2.14 (2017-08-18 23:22:16)

    Fixes an issue preventing loading some HOP files 

4.2.13 (2017-08-17 10:29:43)

    Fixes Mavericks compatibility 

4.2.12 (2017-08-11 17:36:10)

    Optimization of the navigation bar drawing,
    Better handling of external symbols in DYLD shared cache. 

4.2.11 (2017-08-05 14:17:03)

    Complete rewrite of the DYLD shared cache loader,
    Fixes an issue in the debugger when debugging a dylib. 

4.2.10 (2017-07-24 18:45:07)

    Improves information in mach-o headers,
    Adds a new switch hint mode,
    Fixes a deadlock in the debugger. 

4.2.9 (2017-07-11 01:46:10)

    Fixes a formatting issue on TST instruction (ARM64),
    Fixes a database corruption issue in some rare situations,
    Add some new switch / case types,
    Automatically detect some new switch / case constructs. 

4.2.8 (2017-07-07 18:59:14)

    Fixes a decompilation issue due to pointer aliasing,
    Fixes decompilation of TBZ/TBNZ ARM instructions,
    Fixes some issues with Objective-C protocol recognition in the decompiler,
    Now you can define another color for jumping instructions,
    Some additions to the Python API,
    Various small fixes. 

4.2.7 (2017-07-05 17:19:41)

    Better demangling of Swift 4 names,
    Better representation of enums in pseudo-code,
    Fixes some glitches in the navigation bar on small files,
    Fixes an infinite loop in the PowerPC disassembler. 

4.2.6 (2017-06-29 00:49:38)

    Fixes double-click on objects in CFG mode,
    Changes to the HEX mode behaviour. 

4.2.5 (2017-06-27 20:25:25)

    You can move the edges of the CFG, and add/remove control points, using the Cmd key,
    Improves the decompilation of AArch64 binaries (especially ivar access, and strings references),
    Adds a data inspector in the right pane in hex mode,
    Various fixes. 

4.2.3 (2017-06-16 17:46:24)

    Fixes decoding of some STP/LDP AArch64 instructions,
    Fixes some improperly displayed variables,
    Slightly faster loading and saving 

4.2.2 (2017-05-30 15:46:55)

    Fixes the rebasing algorithm for Mach-O files,
    Fixes a hang when opening the contextual menu on files containing invalid Objective-C metadata,
    Fixes a crash in some rare situations when creating a procedure. 

4.2.1 (2017-05-26 08:13:09)

    Fixes a crash after a method signature has been edited. 

4.2.0 (2017-05-24 19:11:43)

    Now you can give a type to a local variable,
    Allows one to name breakpoints,
    Fixes some issues in the decompiler,
    Fixes a crash during the analysis of empty ELF sections 

4.1.5 (2017-04-29 11:44:59)

    Fixes an issue with pointers in the decompiler. 

4.1.4 (2017-04-26 17:15:29)

    Fixes decompilation of SETcc instructions,
    Visual Studio PDB symbols support,
    Get more information on plugins compliance to the SDK,
    Lower memory footprint (around -20%). 

4.1.3 (2017-04-18 23:53:52)

    Fixes multiple issues in the ARM Neon disassembler 

4.1.1 (2017-04-11 15:33:12)

    Add a decompilation option to remove NOPs,
    Fixes an issue where x86 instructions accessing the immediate 0x0 address were improperly displayed,
    Fixes an issue in the decompiler where some Objective-C messages were truncated,
    Fixes multiple issues in the AArch64 decompiler. 

4.1.0 (2017-04-07 17:25:47)

    Fixes issues with some AArch64 instructions,
    Improves PE executable parsing,
    Visual C++ symbol demangling.
    Handles some switch / cases constructions which use indirect tables. 

4.0.35 (2017-03-17 11:17:05)

    Fixes a deadlock in the debugger command panel on interactive command,
    Better handling of some TBB/TBH constructions,
    Fixes a scrolling issue. 

4.0.34 (2017-03-15 11:29:32)

    Fixes a crash on some iOS binaries,
    Fixes missing information on some ARMv8 vector instructions. 

4.0.33 (2017-03-14 12:40:12)

    Fixes the display of some ARM vector instructions,
    Fixes a crash in the Swift demangler,
    Fixes a rare issue where analysis time was very long. 

4.0.32 (2017-03-09 22:19:02)

    Fixes decoding os ARMv8 SIMD instructions,
    Fixes a layout issue in the inspector panel. 

4.0.31 (2017-02-28 15:06:14)

    Fixes some issues in the debugger (bad register values),
    Better handling of Objective-C method signatures,
    Fixes some aesthetic glitches. 

4.0.30 (2017-02-14 16:44:38)

    Fixes disassembly of some ARM64 instructions (csel,fcsel ...),
    Improves ARM64 decompilation of Objective-C code,
    Fixes highlighting when scrolling the document. 

4.0.29 (2017-02-04 10:28:29)

    Fixes some issues in the PPC CPU plugin. 

4.0.28 (2017-02-03 18:26:18)

    Basic PowerPC support (mainly for MachO files),
    Fixes computation of the new tagged CFString addresses on Sierra, and iOS 10,
    Various small graphical glitches have been fixed. 

4.0.27 (2017-02-02 21:02:37)

    Fixes a deadlock in the debugger when setting breakpoints,
    Adds completion to the embedded LLDB console,
    Fixes a problem with the sample m68k CPU plugin in the SDK. 

4.0.26 (2017-01-31 14:39:22)

    Adds binary files to the "Open Recent" menu,
    The "Procedures" tabs now display more information,
    Fixes an issue with dialogs created from Python scripts,
    Fixes various graphical glitches,
    Various optimisations. 

4.0.25 (2017-01-26 19:31:14)

    Fixes an issue with decoding of some ARMv8 instructions containing large immediate value,
    Mach-O headers were not commented anymore. 

4.0.24 (2017-01-19 16:23:15)

    Fixes an issue while updating the application on Sierra. 

4.0.23 (2017-01-18 20:13:21)

    Handles variadic methods using nil sentinel in the decompiler,
    Fixes the display of some ARM instruction using shifter,
    Fixes an issue where a basic block was missing a successor in some very rare cases,
    Adds an option to force the prolog heuristic used to automatically find procedures. 

4.0.22 (2017-01-17 20:27:59)

    Fixes multiple issues during the ARM64 analysis,
    Fixes ADR instruction decoding on ARMv7,
    Fixes some issues when selecting text,
    Smoother scrolling. 

4.0.21 (2017-01-13 12:32:29)

    Faster overall analysis,
    Fixes an analysis issue in the ARMv7 disassembler,
    Fixes dyld iOS shared cache loading,
    Improves 10.9 compatibility. 

4.0.20 (2017-01-07 14:32:41)

    Fixes a crash on ARMv7 

4.0.19 (2017-01-06 22:04:40)

    Fixes handling of IT instructions on ARM Thumb,
    Better decompilation of Objective-C instance variable access,
    Faster decompiler. 

4.0.18 (2016-12-28 20:01:07)

    Faster navigation in big files,
    Fixes an issue where operands of the TEST instructions were swapped,
    Fixes an issue where procedures were not properly created, especially on object files extracted from static libraries,
    Automatically process the "_ustring" section of MachO files. 

4.0.17 (2016-12-22 19:18:10)

    Hopper v4 is now compatible with OS X 10.9,
    Adds a navigation stack explorer to the inspector,
    Fixes an issue in the decompiler where constants were not properly propagated,
    Initial support for remote KDP connection. 

4.0.16 (2016-12-15 19:07:17)

    Allows to remotely debug Windows applications with gdbserver. 

4.0.15 (2016-12-13 18:35:24)

    Fixes a crash in the new Swift demangler. 

4.0.13 (2016-12-11 01:28:00)

    Fixes a crash when switching to the Hex mode in some situations,
    After loading a new file, moves the cursor to the first segment if no entry point was found. 

4.0.12 (2016-12-10 13:57:22)

    Fixes a crash. 

4.0.11 (2016-12-09 12:52:51)

    Adds more Swift demangling (especially class names),
    Adds an option to display the addresses, and the hex column in the CFG mode.
    Moves the control to change ASM syntax directly from the preferences to the inspector,
    Adds methods to the SDK, and the Python API to access local labels, and procedures call graph,
    Fixes an issue with the panel management controls when the window was resized with some panel hidden. 

4.0.10 (2016-12-05 16:16:59)

    Fixes an issue after loading a RAW binary with a non-null file offset,
    Fixes an issue where the inspector formatting capability was not available on some instructions,
    Improves the PLT analysis of ARM binaries,
    Some fixes to the SDK sample CPU plugin. 

4.0.9 (2016-11-30 19:26:35)

    Fixes the behaviour of the inspector, and the contextual menu where structures are defined,
    Fixes the formatting of structure fields,
    Fixes a crash of the decompiler,
    Adds a better syntax colorization to the pseudo-code mode,
    Allows one to navigate between Objective-C method implementations of a given selector,
    Adds small optimizations to the decompiler by removing useless "goto" statements,
    Adds two themes: solarized light, and solarized dark. 

4.0.8 (2016-11-29 14:38:48)

    Fixes the undo / redo feature,
    Fixes issues with AT&T syntax,
    Fixes the behavior of the search feature when searching for text in assembly,
    Adds a way to hide implicit segment registers 

4.0.7 (2016-11-25 18:15:43)

    Fixes MSR / MRS instructions on ARM v7 

4.0.6 (2016-11-23 18:01:40)

    Fixes a crash while demangling some C++ symbols,
    Fixes a weird bug which displayed "lock ret" instead of "ret" on Intel CPU,
    Fixes an issue with autoscroll,
    Remove the extra dollar sign before labels in AT&T syntax 

4.0.5 (2016-11-18 22:37:55)

    Fixes an issue with missing font in assembly view 

4.0.4 (2016-11-18 17:10:59)

    Fixes long time loading UPX compressed files 

4.0.3 (2016-11-18 14:16:25)

    Fixes some crashs on malformed PE, ELF and MachO files,
    Fixes MSR and MRS instructions disassembly (AArch64),
    Fixes text copy in the pseudo-code mode,
    Updates the pseudo-code when the method signature is changed. 

4.0.2 (2016-11-17 17:35:43)

    Fixes an issue with macOS 10.12.1 build 16B2555

4.0.1 (2016-11-17 15:29:48)

    Fixes some crashes

4.0.0 (2016-11-17 12:04:29)

    Welcome to Hopper v4!

    Hopper v4 is a free upgrade for the customers of Hopper v3.

    This update is packed with tons of new features, including:

    - Display modes,
    - Interactive control flow graph,
    - Swift demangler,
    - Enumarated types,
    - A lot faster on many tasks,
    - Local labels,
    - Register renaming,
    - Smart contextual menu,

    More on information at https://www.hopperapp.com/blog/?p=171