Commit Graph

858 Commits

Author SHA1 Message Date
NIRMAL MANOJ C
691de14853
Synchronized Decompiler and Enabling Multiple Decompiler Widgets (#2402)
* Sync/Unsync decompiler widgets.

* Add multiple decompiler widgets with its own decompiler and functions.

* updateWindowTitle() in widgets for decompiler, disassembly, and hexdump.
2020-08-29 10:45:47 +05:30
NIRMAL MANOJ C
b7d1059a1b Decompiler Documentation + Clean up (#2374) 2020-08-18 23:26:44 +05:30
NIRMAL MANOJ C
1c86f54c95 Edit/Rename Variables Actions for function variables (#2357)
* Edit Function Variables Action

* Rename Function Variables Action

* CutterCore::renameFunctionVariable
2020-08-18 23:26:44 +05:30
NIRMAL MANOJ C
b42a19e995 Display jumping fix useless decompilation (#2351)
* save scroll position and reset to that if the newly decompiled function is the same as the previous one

* instructionChanged signal replaced completely by breakpointsChanged in toggle/add breakpoint functions.

* removed addbreakpoint(QString) and toggleBreakpoint(QString)
2020-08-18 23:26:44 +05:30
NIRMAL MANOJ C
37fc01478f Global variable actions and Show in action and refactoring (#2295)
* Show in action for global variables and functions
* Copy address of global variable or function referenced by the cursor selection
* Rename global variable
2020-08-18 23:26:44 +05:30
NIRMAL MANOJ C
eef9baa300 Action to rename functions in the decompiler context menu (#2286) 2020-08-18 23:26:44 +05:30
NIRMAL MANOJ C
88f837465f Intercept right-click event in the decompiler widget (#2281)
Update cursor before opening context menu for right-click
2020-08-18 23:26:44 +05:30
NIRMAL MANOJ C
a4174271f6 Breakpoint Menu and Debug Menu in the Decompiler Context Menu (#2260) 2020-08-18 23:26:44 +05:30
NIRMAL MANOJ C
ea9f3f1831 Skelton for dedicated context menu + action to copy selection (#2256) 2020-08-18 23:26:44 +05:30
karliss
d6d2e90028
Clazy warnings (#2371)
* Refactor some of the connect calls.
* Refactor more old style signal connect calls.
2020-08-07 17:18:42 +03:00
karliss
dcb9970f91
Fix an off by 1 bug during hexwidget cursor blinking. (#2368)
1 pixel line sometimes remained on during hexwidget cursor blinking.
2020-08-04 21:19:17 +03:00
karliss
8f5fbeddde
Refactor old style macro based signal connect. (#2360) 2020-08-03 12:13:39 +03:00
karliss
7c9c7e6fe4
Add symbol exports. (#2345)
* Add symbol exports required for external native plugins to work on Windows
* Make Linux build behave more like Windows so that missing export
annotations can be more easily detected.
2020-08-01 17:14:30 +03:00
Jan Deinhard
73f99c696f
Fix sorting resources by index, vaddr and size (#2308)
* Fix sorting resources by index, vaddr and size
2020-07-25 11:32:44 +03:00
karliss
f92c42d09e
Reset last seen memory widget during layout switching. (#2303) 2020-07-21 12:40:53 +03:00
karliss
65a668943a
Reorganize R2GraphWidget UI (#2298)
* Reorganize R2GraphWidget UI.
2020-07-19 22:00:05 +03:00
karliss
e5d7bd660a
Add more graph widgets (#2273)
* Add generic r2 graph.
* Add Callgraph widgets
* Add more graphviz layouts.
* Fix some edge cases in graphGridLayout that were more likely to appear in callgraphs
* Refactor the code moving some of the logic out of disassemblyGraphWidget making it more reusable
2020-07-16 11:05:10 +03:00
itayc0hen
447d2cfa20 Use QInputDialog in Functions widget 2020-07-15 17:36:25 +03:00
itayc0hen
21aef22c45 Use QInputDialog in Flags widget 2020-07-15 17:36:25 +03:00
itayc0hen
9c0d5d72d1 Use QInputDialog in Classes widget 2020-07-15 17:36:25 +03:00
karliss
8c52627312
Graph optimize placment (#2255)
Add optional placement optimization pass which tries to push everything together and ignores the grid.
2020-07-03 20:09:37 +03:00
batuhanakcay
e88ad82968
Implemented No Results Found warning when search result is empty (#2258) 2020-06-24 10:50:51 +03:00
karliss
e28ee3bebd
Add options for tweaking graph layout. (#2246)
* Fix overview refresh when switching layout.
2020-06-16 13:43:45 +03:00
NIRMAL MANOJ C
255ffe1208 Refactored Decompiler Widget and R2Dec Plugin to use RAnnotatedCode (#2227) 2020-06-16 00:27:51 +03:00
karliss
76773eadd6
Reduce amount of warnings (#2233)
* Deal with QT depracated warnings
2020-06-06 19:02:24 +03:00
karliss
837dd63e6b
Horizontal graph (#2234)
* Create adapter for converting vertical layout into horizontal

* Fix edge spacing override for edges going out of switch statement.

* Update documentation.
2020-06-06 02:06:38 +03:00
bartoszek
56c2e3741a
Fix qt>5.15 build (#2231) 2020-06-04 06:51:03 +03:00
karliss
54ecc33ca9
Rewrite part of graph layout code (#2207)
* Rewrite node placement and edge routing parts of graph layout code
* Document the high level structure of layout algorithm
* Tighter layout and less edge crossings
* Better worst case memory and CPU usage
2020-06-03 18:36:44 +03:00
Surendrajat
5dcf53dff6
refactor hexdumpwidget sidepanel parsing (#2222)
Avoid use of magic numbers.
2020-05-30 16:29:29 +03:00
Surendrajat
4ddba1b8d3
add pci to hexwidget sidepanel (#2219) 2020-05-30 13:00:29 +03:00
Itay Cohen
bfec29f825
Toggle Console Widget and clear output (#2213)
* Add shortcuts to toggle Console and clear its output
* Update the docs

Co-authored-by: Kārlis Seņko <karlis3p70l1ij@gmail.com>
2020-05-25 12:19:05 +03:00
Itay Cohen
6f75fa1a71
Add menu options for changing IO mode (#2187) 2020-05-23 14:41:12 +03:00
karliss
3545f059f1
Rewrite layout management code (#2172)
* Use QDockWidget::toggleViewAction instead of custom solution.
* Improve new dock placement.
2020-05-22 14:49:34 +03:00
karliss
8a3b51c291
Take into account interactive flag in more cases (#2208)
* Edge style
* Token highlighting
2020-05-21 16:31:22 +03:00
Itay Cohen
fe96ee1b51
Recreate hashes widgets when refreshing (#2181) 2020-05-06 20:21:51 +03:00
karliss
aa8ecee8e2
Use drrj to read values for RegistersWidget. (#2141)
* Avoids problem with 64bit value as number in json
* Keeps registers in the order reported by r2
2020-04-17 16:01:05 +03:00
karliss
b69dff0fcd
Add commandline option for disabling stdout redirection (#2144)
* Add option for disabling stdout and stderr redirection.
* Add command line option description to documentation.
2020-04-17 15:02:44 +03:00
karliss
4d2ef58e6a
Fix errors reported by UB sanitizer (#2150)
* Use qt parent for deleting completer

Manually deleting causes some UAF due to it being installed as event
filter.
Qt seems to destroy things in correct order. Sanitizer doesn't report
completer as being leaked.

* Fix sanitizer problems in HexWidget

* Initialize size properties to somewhat sane values to avoid
unrealized variable use when calculating them first time.
* Change AbstractData interface. Old one returned pointer to unknown
sized block of data which was difficult to use correctly. Adjust bound
checking to avoid out of bounds access when comparing with oldData and
scrolling.
2020-04-16 20:32:24 +03:00
Itay Cohen
a4cf66d13c
Resource names are strings (#2151) 2020-04-15 19:20:57 +03:00
Dhaval Purohit
7110d73979
Add tooltip for displaying flag and comment in hexdump (#1471) (#2116)
* Add tooltip for displaying flag and comment in hexdump (#1471)


Co-authored-by: Itay Cohen <itaycohen23@gmail.com>
Co-authored-by: karliss <karlis3p70l1ij@gmail.com>
2020-04-04 10:09:30 +03:00
itayc0hen
638c838e6f Use cmdRaw and cmdRawAt in TypesWidget 2020-03-25 19:12:18 +02:00
itayc0hen
1849568c5f Use cmdRaw and cmdRawAt in HexdumpWidget 2020-03-25 19:12:18 +02:00
itayc0hen
cb1177b35c Use cmdRaw and cmdRawAt in GraphWidget 2020-03-25 19:12:18 +02:00
itayc0hen
fa2350dfb6 Use cmdRaw and cmdRawAt in DisassemblerGraphView 2020-03-25 19:12:18 +02:00
itayc0hen
4f01d54443 Use cmdRaw and cmdRawAt in DebugActions 2020-03-25 19:12:18 +02:00
itayc0hen
b98c2671b3 Use cmdRaw and cmdRawAt in Dashboard 2020-03-25 19:12:18 +02:00
itayc0hen
31c994ae4c Use cmdRaw and cmdRawAt in ColorThemeListView 2020-03-25 19:12:18 +02:00
Liumeo
d202b7d15d
fix statement has no effect warning (#2110) 2020-03-23 18:33:55 +02:00
optizone
e50eddb8cd
Implement some of w? commands in HexWidget (#1854)
* Implement write commands in hex widget 
* Add cmdRawAt and seekSilent
* Document patching context menu

Co-authored-by: itayc0hen
Co-authored-by: Kārlis Seņko
2020-03-19 11:36:36 +02:00
NIRMAL MANOJ C
d12aae2ac0
Add scaling and background transparency options to graph export (#2089) 2020-03-09 22:59:03 +02:00
Florian Märkl
b3f2c9c6c3
Fix deprecated QString usage on empty relro info (#2075) 2020-02-28 13:40:51 +01:00
Itay Cohen
7008d4e9b9
Refactor hashes in dashboard to support newly added hashes (#2067)
* Fix regression of API to get all hashes
* Refactor hashes and entropy in Dashboard
* Update radare2 submoudle
2020-02-28 10:48:30 +02:00
Itay Cohen
37544b45d5
Don't set comments to vertical when resizing (#2045) 2020-02-01 16:54:36 +01:00
yossizap
a1b5a41e56
Register refs widget improvements (#2038)
* Move register refs to the new telescoping function and add an addressable context menu
2020-01-30 19:40:27 +02:00
Hye Sung Jung
57b5879593 fix spelling errors (#2036) 2020-01-28 10:02:17 +02:00
Itay Cohen
8266cd074f
Add realname and libname to Flags and Imports widgets (#2024)
* Add realname and libname to flags and imports
2020-01-25 09:18:53 +02:00
Itay Cohen
d88bb43d22
Add virtual-size to section widget (#2030)
* Add virtual-size to table
2020-01-24 13:16:40 +02:00
Itay Cohen
c7d66cec06
If available, set r2ghidra the default decompiler (#2007)
* If available, set r2ghidra the default decompiler
* Honor user preferences
2020-01-21 18:43:30 +02:00
karliss
e0c80182dd
Improve flag and string widget performance (#2021)
* Deffer vtable refresh.
* Use uniformRowHeight mode
* Adjust StringsWidget column resizing mode.
2020-01-20 20:36:32 +02:00
Florian Märkl
a9ed742cad
Update radare2 and fix Cutter for it (#2017) 2020-01-15 20:19:24 +01:00
Itay Cohen
3eeb631c68
Add sha256 and crc32 to the hexdump widget (#2006)
* Add SHA256 and CRC32 to hexdump widget
* Fix layout
* Add copied-to-clipboard messages
2020-01-13 21:48:43 +02:00
yossizap
830e9cd947 Add a custom telescoping function and improve StackWidget's output (#1990)
* Add a custom telescoping function and improve StackWidget's output

* Use colors from the color configuration for stackswidget

* Improve telescoping output
2020-01-10 22:46:49 +02:00
karliss
c645cbee01
Refresh monospace font after it gets reset by style or font change. (#2002) 2020-01-08 00:03:25 +02:00
karliss
90c7bfab1e
Breakpoint editor dialog (#1975)
* Add breakpoint dialog for editing breakpoint properties
* Allow editing breakpoint using context menu from breakpointWidget and disassembly menu.
2020-01-04 20:05:49 +02:00
yossizap
7e6a8ae17a Fix debug not working with paths that have a space in them (#1978)
* Fix debug not working with paths that have a space in them
* Updated r2 for spaced paths fix and other debug fixes
2019-12-30 17:00:54 +02:00
karliss
46ba0dc20a
Add more breakpoint editing options (#1967)
* Convert breakpoint widget to AddressableItemWidget
* When selecting multiple breakpoints and pressing delete key delete all of them
* Allow toggling breakpoint trace and active properties by doublicking them in table
2019-12-26 22:51:55 +02:00
karliss
550d079f14
Improve graph HighDPI scaling (#1963) 2019-12-22 20:56:33 +02:00
yossizap
45f7c78726 Moved the debug exit dialog to DebugActions
Qt may crash or freeze if a window is created outside of the main loop
2019-12-20 18:03:39 +01:00
yossizap
3be0472837 Fix remote debug crash after the first session 2019-12-20 18:03:39 +01:00
yossizap
96baaeada6 Prevent the update of some widgets while debug task is in progress to avoid freezing 2019-12-20 18:03:39 +01:00
yossizap
2fb59b26ad Switch to registerChanged from seekChanged where possible
Some widgets would constantly refresh when moving around, making the
interface very laggy
2019-12-20 18:03:39 +01:00
karliss
0b849bc05e When using add breakpoint button add it not toggle. (#1953) 2019-12-20 18:02:27 +01:00
Itay Cohen
4e84d1b502 Highlight Breakpoints and PC in decompiler (#1948) 2019-12-19 18:58:30 +01:00
yossizap
59af77fb72 Separate the search widget's boundaries for debug and non-debug modes
Previously, you could search in spaces that weren't available in debug
mode and freeze Cutter. That also meant most existing searches would freeze
Cutter when debug started.
2019-12-14 16:44:57 +02:00
yossizap
2f6e4b183e Removed disabling of startEmul to show the restart debug option when emulating 2019-12-14 16:44:57 +02:00
yossizap
a8bc37f0de Add a signal for widget rebasing and switch to oodf for remote debug rebasing (#1913)
* Add codeRebased to sync widgets after debug starts
* Switch attachDebug to oodf to enable rebasing
2019-12-14 16:44:57 +02:00
yossizap
519cd5dabd Add debug dialogs (#1903) 2019-12-14 16:44:57 +02:00
yossizap
ef97c84351 Add processes widget for kernel and child debugging (#1894)
* Update r2 for dp fixes and general debug fixes

* Added ProcessesWidget for kernel debugging and switching between children

* Update r2 for dpl fixes

* Update r2 for linux and gdbserver dp/dp= fixes

* Added switchedThread and switchedProcess events to refresh their widgets

Seek doesn't always change after switching if the other process is at
the same offset in the same binary so it's better to have another event
for it.

* Disable threads/processes widget during a debugtask/when not debugging and clear it's history after a session

* Improve Processes Widget's UI

- Remove vertical numbers
- Highlight the current process with bold instead of using the "current"
  column

* Updated r2 for fork fixes
2019-12-14 16:44:57 +02:00
itayc0hen
4d306616f9 Use proper docstrings 2019-12-14 16:44:57 +02:00
itayc0hen
52f9a57c04 Remove auto scroll from registerRefs widget 2019-12-14 16:44:57 +02:00
itayc0hen
e54ab621fc Support multi-theme icons on debug 2019-12-14 16:44:57 +02:00
itayc0hen
a75533c3ae Improve debug icons 2019-12-14 16:44:57 +02:00
itayc0hen
c15cac1cba Make labels selectable by mouse 2019-12-14 16:44:57 +02:00
itayc0hen
88afd22af8 Disable auto scroll in stack widget 2019-12-14 16:44:57 +02:00
itayc0hen
0eb5753758 Rename backtrace func name column 2019-12-14 16:44:57 +02:00
itayc0hen
035aa52cca Improve RegistersWidget grid UI 2019-12-14 16:44:57 +02:00
itayc0hen
489b89dc7c Improve stack widget ui 2019-12-14 16:44:57 +02:00
itayc0hen
ccd8e86052 Remove column of active thread in ThreadsWidget 2019-12-14 16:44:57 +02:00
itayc0hen
44e68146db Remove vertical numbers in debug widgets 2019-12-14 16:44:57 +02:00
itayc0hen
a63c3401b6 Change label to suspend process 2019-12-14 16:44:57 +02:00
yossizap
f284f9d209 Stdin redirection for locally debugged processes (#1892) 2019-12-14 16:44:57 +02:00
yossizap
49d58b3624 gdbserver and windbg remote debugging support (#1874)
* Added remote debugging
2019-12-14 16:44:57 +02:00
yossizap
c85e1db3b3 Detach Cutter interface from debug command execution (#1857) 2019-12-14 16:44:57 +02:00
yossizap
a3e140bf4d ThreadsWidget and r2 debugging fixes (#1846)
* Added wrappers for dpt and dpt=

* Added ThreadsWidget used for thread monitoring during debugging

* Updated r2 for dpt, dpt= and drrj fixes

* Convert r2's pid status letters to more informative strings

* Replaced cmdj with cmd and ensure the thread's data is synced

* Moved viewThreas to threadsWidget.ui, switched from onDoubleClick to Activated and added a column cleanup

* Add old row cleanup to BacktraceWidget

* Clean up

* Added sorting and filters

* Modified ThreadsWidget for Qt5.3 compatibility
2019-12-14 16:44:57 +02:00
xarkes
c3ce953134 Fixed include 2019-12-14 16:44:57 +02:00
mandlebro
9e9ad353c6 Look for sym.main instead of main 'cause latter is not rebasing in PIEs 2019-12-14 16:44:57 +02:00
mandlebro
b0effdf94f Hides the ContinueUntilMain button if there is no flag called main 2019-12-14 16:44:57 +02:00
mandlebro
721870ac0e Fix emulation not working after a debugging session 2019-12-14 16:44:57 +02:00
mandlebro
f627b1306b Reenable debugging/attaching 2019-12-14 16:44:57 +02:00
Itay Cohen
7a34cf2024
Improve seek backward and outside of function in Decompiler widget (#1916)
* Improve seek backward and outside of function
* Improve seekToReference
2019-12-14 14:57:36 +02:00