1
0
Fork 0
Commit Graph

1060 Commits

Author SHA1 Message Date
torusrxxx 79e335277e lazy load mnemonic data and save 3MB memory 2017-11-07 20:24:01 +01:00
torusrxxx 990bccfffc add mem.isstring() 2017-11-07 20:24:01 +01:00
torusrxxx e6297423f9 Add NTSTATUS fmt;show str in locals tab;fix div by 0 in data copy dlg. 2017-11-07 20:24:01 +01:00
Mack Stump d67031a089 DBG: remove \\n replacement in string formatting 2017-11-07 20:23:25 +01:00
Joel Höner 15b0e73ba0 DGB: fix disp+imm printing in “zydis” command 2017-11-07 20:22:15 +01:00
Duncan Ogilvie ae20041edb
DBG: proper workaround for 0x prefix in GUI
also closes #1792
2017-11-04 18:08:44 +01:00
Duncan Ogilvie 4870eebd87
DBG: correctly handle imports by ordinal
closes #1795
2017-11-04 16:34:52 +01:00
Duncan Ogilvie 9c639ddc5f
DBG: small improvements to winerror format function 2017-10-30 00:35:54 +01:00
Duncan Ogilvie 2f26a80b78
DBG+BRIDGE+GUI: deprecate DbgGetRegDump 2017-10-29 02:18:06 +02:00
torusrxxx ec0555dc0d
Added winerror format function and show help message for last error in reg view 2017-10-28 02:52:13 +02:00
Mattiwatti d5582c6a1f - DbgGetRegDumpEx(): copy lastStatus NTSTATUS name if requested struct size is >= sizeof(REGDUMP_V2)
- RegistersView: replace usages of REGDUMP with REGDUMP_V2 to access LastStatus register
2017-10-28 02:47:49 +02:00
Mattiwatti 8c9b11ecc9 Remove LastStatus from THREADALLINFO to preserve plugin compatibility 2017-10-28 02:47:49 +02:00
Mattiwatti 6f1b6b77bb dbg changes for TEB->LastStatusValue:
- Add LASTSTATUS struct
- Add LastStatus members to REGDUMP and THREADALLINFO
- Add ThreadGetLastStatus()/ThreadGetLastStatusTEB()
- Make "laststatus" a supported pseudo-register in isregister() / getregister() / setregister() similar to "lasterror"
- _dbg_getregdump(): copy the full name of the last NTSTATUS value
- ThreadGetList(): add the last status value to the thread list for each thread
- TraceRecordManager: account for the size change of REGDUMP to keep REGDUMPWORD the same size
2017-10-28 02:47:49 +02:00
Mattiwatti 8f0f83bdf3 ntdll.h: Update PEB and TEB structs for Windows 10 RS3, and correct offset of TEB->LastStatusValue on x86 2017-10-28 02:47:49 +02:00
Mattiwatti 787b86cd1f Add DbgGetRegDumpEx to bridge API
Public SDK changes:
- Add LASTSTATUS struct
- Add REGDUMP_V2 struct with LASTSTATUS member
- Add DbgGetRegDumpEx(REGDUMP* regdump, size_t size);

Internal changes:
- Change typedef of _dbg_getregdump to add a size parameter
- Make DbgGetRegDump() pass sizeof(REGDUMP) to _dbg_getregdump to preserve existing behaviour. DbgGetRegDumpEx() forwards the size that was passed to it
2017-10-27 00:02:39 +02:00
torusrxxx 0fbb1aa056 Don't add autocomments on "mov edi,edi"(#1775) 2017-10-26 00:43:54 +02:00
Duncan Ogilvie 0762182973
DBG: implement DLL breakpoints directly in x64dbg 2017-10-25 21:58:01 +02:00
Torusrxxx 466d5e9173 Update cmd-misc.cpp 2017-10-25 11:21:44 +00:00
Torusrxxx db5c3e23af Update cmd-misc.cpp 2017-10-25 11:16:01 +00:00
Duncan Ogilvie ecbea6d9d8
GUI: fix Sonar issues 2017-10-22 17:07:45 +02:00
torusrxxx 9a2cb20682 enhancement to run until return 2017-10-18 22:49:06 +02:00
Torusrxxx 390bf4c5ca Trace recording (#1736)
* run trace file format
* record opcode
* Successfully recorded sample run trace
* fixed order of thread id and opcode
* use capstone in run trace
* Revised format;Stop tracing when stop debug;Changed ext name
* trace browser(draft)
* Lower bound
* Lower bound
* implemented more funcitons in trace file reader
* Initial trace browser
* trace browser works for single-page traces
* fixed page fault
* Multi-selection, fixed page faults
* copy disassembly
* resize columns
* address label;follow in disassembly
* highlight
* history,comment,breakpoint in trace view
* stricter validation to prevent buffer overflow
* MAX_MEMORY_OPERANDS=32
* fixing bug in memory access count
* Temporary info menu to view registers & memory
* assumed to fix thread id bug
* live update trace view
* Fixed a bug with registers recording (similar to thread id bug)
* Search for constant in trace file
* Fixed bugs with memory operands recording
* File header for trace file; Auto update trace viewer
* fix x64dbg_translations.pro
* Default filename for trace; Start trace from trace view
* Switch to Qt JSON
* Copy selection, file offset and RVA; recent files
* Properly implement MRU menu
* shortcut for tracing
* Fix file names with comma
* added interaction with tab closing
* change default directory for trace file
* fix minor issue
2017-10-16 20:00:26 +02:00
Torusrxxx 9959278863 Properly exit x64dbg 2017-10-15 16:18:48 +02:00
Duncan Ogilvie f6590e6465
DBG: fixed a typo 2017-10-14 17:31:11 +02:00
Duncan Ogilvie d6ca58efd1
DBG: fixed another problem with Zydis 2017-10-14 15:42:02 +02:00
Duncan Ogilvie 6f7af9b8da
DBG: fixed various small issues with Zydis
ping @athre0z
2017-10-14 00:32:34 +02:00
Duncan Ogilvie c9e17df1c0
DBG+LAUNCHER: correctly handle mixed mode executables
fixes #1758
2017-10-13 23:38:53 +02:00
torusrxxx 8cf9f63bac Fixing #1752 2017-10-13 19:43:33 +02:00
Joel Höner c5c3358c52 Add range checks for operand access (fixes #1750) (#1751)
* DBG: added range checks to operand access
- previously, some instructions could trigger the `DebugBreak` path in `Zydis::operator[]`
* GUI: removed redundant semicolon
2017-10-10 21:01:59 +02:00
Joel Höner 5b1cf81f55 zydis_wrapper: Fixed x32 build 2017-10-09 10:02:13 +02:00
Joel Höner 3fca5c9191 Ported & renamed `cbInstrCapstone` 2017-10-09 10:02:13 +02:00
Joel Höner af0ff55df3 zydis_wrapper: Better compliance with style-guide
- Removed underscores
- Removed redundant “zy” prefix
- Executed `AStyleWhore` (sorreh, I use git on my macOS host, can’t put it into pre-commit-hook)
2017-10-09 10:02:13 +02:00
Joel Höner ca9401fdb7 Moved “zydis_wrapper” into root repo
- Instead, we directly use Zydis as a submodule now
2017-10-09 10:02:13 +02:00
Joel Höner 4c841d85c6 Renamed `Capstone` -> `Zydis`
- Prevents name clashes with actual capstone disassembler implementation
2017-10-09 10:02:13 +02:00
Joel Höner 5338a0a85b Replace Capstone with Zydis
- While at it, added branch info logic to disassembler class
  - Thus reduce direct checks by mnemonic in GUI and analysis code
- Replaced direct disassembler struct access with disassembler class calls where trivially possible
- Removed workarounds for empty segment registers
- Temp. disabled `cbInstrCapstone` command
- Temp. disabled flag stuff in `QBeaEngine`
2017-10-09 10:02:13 +02:00
Duncan Ogilvie 103866eafe
DBG+EXE+GUI: fixed some more sonar warnings 2017-10-08 20:19:32 +02:00
Duncan Ogilvie 57235b2f24
DBG+EXE+LAUNCHER+BRIDGE: remove _CRT_SECURE_NO_WARNINGS 2017-10-08 16:16:20 +02:00
Duncan Ogilvie d121cd9dc2
DBG+LAUNCHER: fix exception handling in GetPeArch.h
Thanks to digitalboy for the report!
2017-10-05 17:08:34 +02:00
Duncan Ogilvie ba6e6dea63
DBG: full unicode support in ResolveShortcut 2017-09-30 14:30:40 +02:00
Duncan Ogilvie 1143621eb1
DBG: make sure the debugger is signaled as initialized before loading plugins
Fixes #1734
2017-09-30 13:01:24 +02:00
Duncan Ogilvie fcda76a470
DBG: fixed LibrarianEnableBreakpoint 2017-09-30 12:52:07 +02:00
roL 7627fce15c Tripleslash for scriptapi_misc functions 2017-09-11 15:00:30 +02:00
mrexodia ef6bf04fb0
DBG: find the plugin name for the currently-loading plugin name (thanks to testuser!) 2017-09-07 23:04:48 +02:00
mrexodia 2d7c929c64
DBG: fixed a deadlock while unloading plugins
closes #1710
2017-09-06 03:50:46 +02:00
mrexodia 7c93a0ef48
DBG: QueryWorkingSetEx with GetProcAddress (restored XP support) 2017-09-04 22:57:49 +02:00
mrexodia 9cc8e779e9
DBG: some small improvements to plugin functions and added idle detection for time wasted 2017-09-04 22:57:48 +02:00
mrexodia 082bcc0937
Merge remote-tracking branch 'origin/PLMDebug' into development 2017-09-01 22:54:53 +02:00
mrexodia 037504643b
DBG+GUI: option to query the working set before attempting to read a memory page
workaround for http://www.triplefault.io/2017/08/detecting-debuggers-by-abusing-bad.html
2017-09-01 22:53:50 +02:00
mrexodia 4104c0a004
GUI: formatting + fixed a warning 2017-09-01 18:52:06 +02:00
torusrxxx fa92a9c474 Add Xref for switch cases; Follow switch cases in CPU. 2017-09-01 13:58:33 +02:00
torusrxxx bf43f7eb97 graph for switch statements 2017-09-01 13:58:33 +02:00
Torusrxxx 690b048c7f breakpoint, memory and threads view support multi-select (#1697)
* breakpoint, memory and threads view support multi-select

* fixed

* use older breakpointsview

* fixed

* revert deps change

* command in reference view

* to-do

* fixed deps
2017-09-01 13:57:41 +02:00
Rajarshi Vaidya aka gmastergreatee 2b4a9bc9dc Fixes #1699 Arch-Indep-Registers (#1700)
* Arch-Indep-Registers Fix 1

* Run format.bat
2017-08-31 20:55:11 +02:00
mrexodia 80210eb9b0
LAUNCHER+DBG: add support for PID attaching + PLMDebug in the command line
closes #1698
2017-08-28 11:41:37 +02:00
mrexodia d678ad1e82
DBG: fixed a warning on x64 about the cookie 2017-08-26 15:54:52 +02:00
mrexodia 88fec2a1d3
DBG: correctly remove librarian breakpoints on exit + remove hwbp on detach 2017-08-25 13:18:13 +02:00
mrexodia fa2784792c
DBG+GUI: query the process cookie on startup (#489 #1418 #1412) 2017-08-25 13:17:14 +02:00
mrexodia da77f37c4f
DBG: moved tracing code out of debugger.cpp 2017-08-25 13:14:46 +02:00
mrexodia 010a3bbf7e
DBG: better behaviour for "exhandlers" on XP 2017-08-25 13:02:37 +02:00
mrexodia 652c61f7f7
DBG+BRIDGE+GUI: warn when trying to render a graph with more than 5000 nodes
(closes #1321)
2017-08-21 15:13:02 +02:00
mrexodia 1c4607e25b
DBG: change ReadBaseRelocationTable to read the relocation directory from disk instead of memory 2017-08-21 00:44:21 +02:00
mrexodia 838b03e9d9
DBG: add ModEnum to remove various bottlenecks with module loading 2017-08-21 00:41:04 +02:00
mrexodia 2bd32aee32
DBG: fixed typo in pluginreload command 2017-08-18 00:08:37 +02:00
mrexodia ca296699b0
DBG: added plugreload command 2017-08-17 23:54:43 +02:00
Georgeto 8c797ef42d Fix "requires a narrowing conversion" error when compiling with vs2015 (#1687) 2017-08-17 13:06:58 +02:00
mrexodia a404f63960
DBG: fixed Script::Flags implementation 2017-08-14 16:24:29 +02:00
Georgeto 6587cbc564 underline relocated bytes in disassembly view (#1683)
* DBG: add relocation info to module

* GUI: underline relocated bytes

* DBG: remove unnecessary wrapper function

* DBG: store relocations in sorted vector instead of set

* GUI: warn about patches in relocation regions (closes #263)
2017-08-14 00:17:47 +02:00
mrexodia a64bdef223
DBG+GUI: minor fixes 2017-08-13 18:10:59 +02:00
mrexodia f484108fd7
DBG: added MemBpSize function 2017-08-13 17:17:37 +02:00
mrexodia 1b27b951ee
DBG+BRIDGE: added more detail in the BRIDGEBP structure (in the padding so backwards-compatible) 2017-08-13 17:17:15 +02:00
mrexodia b876d3b9f0
DBG: add memory breakpoint size (unimplemented) to breakpoint database 2017-08-13 16:27:55 +02:00
mrexodia 9fcfb5b39e
DBG: various improvements to the breakpoint api 2017-08-13 16:26:46 +02:00
mrexodia 5e9db68c71
DBG: improved performance of valapifromstring 2017-08-13 16:25:38 +02:00
mrexodia 86b623b691
DBG: add module base to label list 2017-08-13 16:24:40 +02:00
mrexodia 0cd8078256
DBG: added EnumExceptions 2017-08-13 16:23:59 +02:00
mrexodia b79f1bd35b
DBG+GUI: implemented _plugin_menuremove and _plugin_menuentryremove 2017-08-10 20:25:18 +02:00
mrexodia d69e9726b1
DBG+GUI: properly implemented _plugin_menuclear 2017-08-10 20:00:33 +02:00
mrexodia 9b314ef740
DBG: separate menu entries from the menus 2017-08-10 19:07:20 +02:00
mrexodia a951d060bb
Revert "DBG: allow duplicate hEntry for _plugin_menuaddentry"
This reverts commit 42b9b0f9dc.
2017-08-10 18:50:27 +02:00
mrexodia 42b9b0f9dc
DBG: allow duplicate hEntry for _plugin_menuaddentry 2017-08-10 18:27:55 +02:00
mrexodia e9cfedd722
DBG: fixed an invalid handle exception 2017-08-10 06:03:04 +02:00
mrexodia dbc6ceb3db
DBG: fixed warning on x64 2017-08-09 03:13:04 +02:00
mrexodia 2ff93e479a
DBG: set temporary labels for visited types 2017-08-09 02:41:00 +02:00
mrexodia 5a34b54fb2
DBG: show label of memory address in auto comments 2017-08-09 02:40:32 +02:00
mrexodia f97439c9f5
DBG: introduce temp labels 2017-08-09 02:32:28 +02:00
mrexodia 5cb7917630
DBG+BRIDGE+GUI: added menu preparation plugin event 2017-08-08 01:39:04 +02:00
mrexodia caae4a9d6a
DBG: fixed a bug in _plugin_menuclear (now it no longer deletes the menu itself) 2017-08-08 01:17:25 +02:00
mrexodia 7ab339fa3b
DBG: various small improvements 2017-08-07 19:41:32 +02:00
mrexodia 6f38e2b0f5
GUI: AA_EnableHighDpiScaling 2017-08-03 16:49:49 +02:00
mrexodia 9cdd399dde
DBG: added CFLAGS support in _scriptapi_register.h (thanks to krzywix) 2017-08-01 23:59:12 +02:00
mrexodia 43458b0881
DBG: also set pDebuggedBase and check hash on attach (fixes #1674) 2017-08-01 22:33:54 +02:00
pointerrrr b758ea6e9d DBG: The log now indicates the name of the breakpoint set (closes #1613) (#1662) 2017-07-27 22:53:09 +02:00
Torusrxxx 754ef54968 can use rtu (#1660) 2017-07-27 18:24:01 +02:00
mrexodia db9f8c845b
DBG: remove explicit size for memset in command line 2017-07-25 13:39:23 +02:00
genuine_ 18979ef6e9 Fixed some unsafe code (#1647)
* Fix underflow of commandLine variable. (memset)

* Fix for integer inconsistencies

* fix for possible overflow at line 1841 of debugger.cpp. Offending code:

sprintf_s(command, "bp %p,\"DllMain (%s)\",ss", entry, modname);
2017-07-25 12:54:41 +02:00
mrexodia 73a8a93cbe
DBG+LAUNCHER: fix #1635 (.NET files are now processed correctly) 2017-07-08 18:29:13 +02:00
mrexodia 4631fbfc0f
DBG: fixed various cppcheck warnings 2017-07-06 16:15:57 +02:00
Maksim Derbasov 66c006d703 Small code improvement (#1637)
* Check index before array access

* fix for va_list leaks

* mismatch in new-delete pair
2017-07-04 17:26:01 +02:00
mrexodia 6a4510ce3a
DBG: bpgoto now no longer refreshes the GUI if not breaking 2017-07-03 10:43:52 +02:00
mrexodia a2e245299a
DBG: gracefully break a trace when pausing 2017-06-30 14:41:44 +02:00