Skip to content

Commit fcbffdd

Browse files
committed
Merge branch 'development' into graph_ogfd_new
Conflicts: .gitmodules src/bridge/bridgemain.cpp src/bridge/bridgemain.h src/dbg/controlflowanalysis.h src/dbg/debugger.cpp src/gui/Src/BasicView/Disassembly.cpp src/gui/Src/BasicView/SearchListView.cpp src/gui/Src/Bridge/Bridge.cpp src/gui/Src/Bridge/Bridge.h src/gui/Src/Gui/CPUDisassembly.cpp src/gui/Src/Gui/MainWindow.cpp src/gui/resource.qrc src/gui/x64dbg.pro
2 parents 1c3a980 + 677a5a5 commit fcbffdd

File tree

295 files changed

+25545
-13289
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

295 files changed

+25545
-13289
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ ui_*
4444
help/x64*dbg.chm
4545
help/output/
4646
bin/x64*dbg.chm
47+
bin/win32.*
4748

4849
# Debugger files to ignore
4950
CppCheckResults.xml
@@ -55,10 +56,13 @@ src/gui/build
5556
src/gui/Makefile*
5657
tools/
5758
RCa*
59+
RDa*
60+
RDb*
5861
src/build-*/
5962

6063
# Exceptions
6164
!/hooks/AStyleWhore.exe
6265
!/hooks/AStyle.dll
6366
!/bin/x64dbg_shell_remove.reg
6467
!*.lib
68+
pin.log

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
[submodule "src/capstone_wrapper"]
2+
path = src/capstone_wrapper
3+
url = https://github.com/x64dbg/capstone_wrapper.git
14
[submodule "src/ogdf"]
25
path = src/ogdf
36
url = https://github.com/x64dbg/ogdf.git

README.md

Lines changed: 47 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,29 @@
11
# x64dbg
22

3+
[![BountySource](https://www.bountysource.com/badge/team?team_id=18188&style=raised)](https://www.bountysource.com/teams/x64dbg?utm_source=x64dbg&utm_medium=shield&utm_campaign=raised) [![Telegram](http://i.imgur.com/merFyCf.png)](https://telegram.me/joinchat/BzwLaQcORqjkM1k9YbTNmg) [![Join the chat at Gitter](https://badges.gitter.im/x64dbg/x64dbg.svg)](https://gitter.im/x64dbg/x64dbg?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Jenkins](http://jenkins.x64dbg.com/job/vs13/badge/icon)](http://jenkins.x64dbg.com) [![Stories in Ready](https://badge.waffle.io/x64dbg/x64dbg.png?label=ready&title=Ready)](http://waffle.io/x64dbg/x64dbg)
4+
5+
6+
37
## Note
8+
49
Please run `install.bat` before you start committing code, this ensures your code is auto-formatted to the *x64dbg* [standards](https://github.com/x64dbg/x64dbg/wiki/Coding-Guidelines).
510

611
## Compiling
12+
713
For a complete guide on compiling *x64dbg* read [this](https://github.com/x64dbg/x64dbg/wiki/Compiling the whole project).
814

915
## Downloads
10-
Releases of *x64dbg* can be found [here](http://download.x64dbg.com).
11-
Snapshots of *x64dbg* can be found [here](http://snapshots.x64dbg.com).
16+
17+
Releases of *x64dbg* can be found [here](http://releases.x64dbg.com).
18+
1219
Jenkins build server can be found [here](http://jenkins.x64dbg.com).
1320

1421
## Overview
22+
1523
*x64dbg* is an open-source x32/x64 debugger for Windows.
1624

1725
## Features
26+
1827
- Open-source
1928
- Intuitive and familiar, yet new user interface
2029
- C-like expression parser
@@ -43,10 +52,12 @@ Jenkins build server can be found [here](http://jenkins.x64dbg.com).
4352
- Analysis
4453

4554
## License
55+
4656
*x64dbg* is licensed under GPLv3, which means you can freely distribute and/or modify the source of *x64dbg*, as long as you share your changes with us. The only exception is that plugins you write do not have to comply with the GPLv3 license. They do not have to be open-source and they can be commercial and/or private. The only exception to this is when your plugin uses code copied from *x64dbg*. In that case you would still have to share the changes to *x64dbg* with us.
4757

4858
## Credits
49-
- Debugger core by [TitanEngine Community Edition](https://bitbucket.org/mrexodia/titanengine-update)
59+
60+
- Debugger core by [TitanEngine Community Edition](https://bitbucket.org/titanengineupdate/titanengine-update)
5061
- Disassembly powered by [Capstone](http://capstone-engine.org)
5162
- Assembly powered by [XEDParse](https://bitbucket.org/mrexodia/xedparse)
5263
- Import reconstruction powered by [Scylla](https://github.com/NtQuery/Scylla)
@@ -56,20 +67,49 @@ Jenkins build server can be found [here](http://jenkins.x64dbg.com).
5667
- Interface icons by [Fugue](http://p.yusukekamiyamane.com)
5768
- Website by [tr4ceflow](http://tr4ceflow.com)
5869

59-
## Special Thanks (in no particular order)
70+
## Special Thanks
71+
72+
- All the donators!
73+
- Everybody adding issues!
74+
- People I forgot to add to this list
6075
- [EXETools community](http://forum.exetools.com)
6176
- [Tuts4You community](http://forum.tuts4you.com)
77+
- [ReSharper](https://www.jetbrains.com/resharper)
78+
- [Coverity](http://www.coverity.com)
6279
- acidflash
6380
- cyberbob
81+
- cypher
6482
- Teddy Rogers
6583
- TEAM DVT
6684
- DMichael
6785
- Artic
6886
- ahmadmansoor
87+
- _pusher_
88+
- firelegend
6989

70-
## Developers (in order of joining)
71-
- [Mr. eXoDia](http://mrexodia.cf)
90+
## Developers
91+
92+
- [mrexodia](http://mrexodia.cf)
7293
- Sigma
7394
- [tr4ceflow](http://blog.tr4ceflow.com)
7495
- [Dreg](http://www.fr33project.org)
75-
- Nukem
96+
- [Nukem](https://github.com/Nukem9)
97+
- [Herz3h](https://github.com/Herz3h)
98+
99+
## Contributers
100+
101+
- [torusrxxx](https://github.com/torusrxxx)
102+
- [blaquee](https://github.com/blaquee)
103+
- [wk-952](https://github.com/wk-952)
104+
- [RaMMicHaeL](http://rammichael.com)
105+
- [lovrolu](https://github.com/lovrolu)
106+
- [fileoffset](https://github.com/fileoffset)
107+
- [SmilingWolf](https://github.com/SmilingWolf)
108+
- [ApertureSecurity](https://github.com/ApertureSecurity)
109+
- [mrgreywater](https://github.com/mrgreywater)
110+
- [Dither](https://github.com/Dither)
111+
- [zerosum0x0](https://github.com/zerosum0x0)
112+
- [RadicalRaccoon](https://github.com/RadicalRaccoon)
113+
- [fetzerms](https://github.com/RadicalRaccoon)
114+
- [muratsu](https://github.com/RadicalRaccoon)
115+
- [ForNeVeR](https://github.com/RadicalRaccoon)

bin/mnemdb.json

Lines changed: 5310 additions & 0 deletions
Large diffs are not rendered by default.

help/Calculations.htm

Lines changed: 49 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
77
<style>
88
html,body {
9-
/* Default Font */
10-
font-family: Courier New;
11-
font-size: 11pt;
9+
/* Default Font */
10+
font-family: Courier New;
11+
font-size: 11pt;
1212
}
1313
</style>
1414

@@ -19,34 +19,52 @@
1919
operations, just type an expression in the
2020
command window and the result will be displayed in the console. Apart from
2121
calculations, it allows quick&nbsp;variable changes using a C-like syntax.</P>
22-
<P><STRONG>Operators</STRONG><BR> You can use the
23-
following operators in your expression. They are processed in the following order:</P>
24-
<P><U>0:negative</U>
25-
: Negative numbers can be prefixed by a
26-
'-' sign.</P>
27-
<P><U>1:</U><U>brackets</U>: '(' and ')' Brackets are
28-
resolved first, there is no need for a terminating bracket, unless you want to
29-
use one.</P>
30-
<P><U>2:not</U>: '~' The not operator can be used before a
31-
number of a variable, like in C.</P>
32-
<P><U>3:muliplication/devision</U>: '*' = regular
33-
multiplication (signed/unsigned), '`' = get the higher part of the
34-
multiplication, '/' = regular devision (signed/unsigned, devide by zero=error)
35-
and '%' = get the modulo (remainder) of the devision.</P>
36-
<P><U>4:addition/substraction</U>: '+' and '-'</P>
37-
<P><U>5:shift</U>: '&lt;' = shift left (shl for unsigned,
38-
sal for signed), '&gt;' = shift right (shr for unsigned, sar for signed).</P>
39-
<P><U>6:and</U>: '&amp;' Just the regular AND operation like
40-
in C.</P>
41-
<P><U>7:xor</U>: '^' Just the regular XOR operation like in
42-
C.</P>
43-
<P><U>8:or</U>: '|' Just the regular OR operation like in
44-
C.</P>
45-
<P><STRONG>Quick-Assigning<BR></STRONG>Changing memory, a
22+
<P><STRONG>Operators</STRONG><BR> You can use the following operators in your expression.
23+
They are processed in the following order (<A
24+
href="http://en.cppreference.com/w/c/language/operator_precedence"
25+
target=_blank>source</A>):</P>
26+
<P><U>1:parentheses/brackets</U>: <EM>(1+2)</EM>, [1+6] have
27+
priority over other operations.</P>
28+
<P><U>2:unary minus/binary not/logical not</U>: <EM>-1</EM> (negative 1), <EM>~1</EM> (binary not of 1), <EM>!0</EM>
29+
(logical not of 0).</P>
30+
<P><U>
31+
3:multiplication/division</U>:
32+
<EM>2*3</EM> (regular multiplication), <EM>2`3</EM> (gets high part of the
33+
multiplication),&nbsp;6/3 (regular division), <EM>5%3</EM> (modulo/remainder of
34+
the division).</P>
35+
<P><U>4:addition/subtraction</U>:
36+
<EM>1+3</EM> (addition), <EM>5-2</EM>
37+
(subtraction).</P>
38+
<P><U>5:left/right
39+
shift</U>:&nbsp;<EM>1&lt;&lt;2</EM> (shift left, shl for unsigned, sal for
40+
signed), <EM>10&gt;&gt;1</EM> (shift right, shl
41+
for&nbsp;unsigned, sal for signed). </P>
42+
<P><U>6:smaller (equal)/bigger (equal)</U>: 4&lt;10, 3&gt;6,
43+
<EM>1&lt;=2</EM>, <EM>6&gt;=7</EM> (resolves to 1 if true,
44+
0 if false).</P>
45+
<P><U>7:equal/not equal</U>: <EM>1==1</EM>, <EM>2!=6</EM>
46+
(resolves to 1 if true, 0 if
47+
false).</P>
48+
<P><U>8:binary and</U>: <EM>12&amp;2</EM>
49+
(regular binary
50+
and).</P>
51+
<P><U>9:binary xor</U>: <EM>2^1</EM>
52+
(regular binary
53+
xor).</P>
54+
<P><U>10:binary or</U>: <EM>2|8</EM>
55+
(regular binary
56+
or).</P>
57+
<P><U>11:logical and</U>: <EM>0&amp;&amp;3</EM>
58+
(resolves to 1 if true, 0 if
59+
false).</P>
60+
<P><U>12:logical or</U>: <EM>0||3</EM>
61+
(resolves to 1 if true, 0 if
62+
false).</P>
63+
<P><STRONG><U>Quick-Assigning<BR></U></STRONG>Changing memory, a
4664
variable, register or&nbsp;flag can be easily done using a C-like
4765
syntax:</P>
48-
<P><U>a?=b</U>: '?' can be any mathematical operation. 'a'
49-
can be any register, flag, variable or memory location. 'b' can be anything that is recognized as a mathmatical
50-
input.</P>
51-
<P><U>a++/a--</U>: 'a' can be any register, flag, variable or memory
66+
<P>a?= b: '?' can be any non-logical operator.
67+
'a' can be any register, flag, variable or memory location. 'b' can be anything that is recognized as an
68+
expression.</P>
69+
<P>a++/a--: 'a' can be any register, flag, variable or memory
5270
location.</P></body>

help/InitDebug_initdbg_init.htm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
(if present), set a breakpoint at the process entry point&nbsp;and
2121
break at the system breakpoint before giving back control to the
2222
user.</P>
23-
<P><U>arguments</U><BR>&nbsp; arg1 : Path to the executable file to debug. If no full path is given, the GetCurrentDirectory API will be
23+
<P><U>arguments</U><BR> &nbsp; arg1: Path to the executable file to debug. If no full path is given, the GetCurrentDirectory API will be
2424
called to retrieve a full path. Use quotation marks to include spaces in your path.
2525

2626

help/Input.htm

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,25 @@
2525
x64).</P>
2626
<P class=rvps3><U> registers</U>: All
2727
registers (of all sizes) can be used as variables.</P>
28-
<P class=rvps3><U>memory locations</U>: You can read from a memory location by using one of the
29-
following expressions:<BR>[addr]&nbsp;&nbsp;&nbsp; - read a
28+
<P class=rvps3><U>memory locations</U>:
29+
You can read/write from/to a memory location by using one of the
30+
following expressions:<BR>[addr]&nbsp;&nbsp;&nbsp;&nbsp; - read a
3031
DWORD/QWORD, depending on the
31-
architecture.<BR><EM>n</EM>:[addr]&nbsp;&nbsp;- read <EM>n</EM> bytes
32-
from.<BR><STRONG>REMARKS</STRONG>:<BR>- <EM>n</EM> is the amount of bytes to read, this can be anything
33-
smaller than 4 on x32 and smaller than 8 on x64 when specified, otherwise
34-
35-
36-
37-
38-
there will be an error.</P>
39-
<P class=rvps3><U>flags</U>: Debug
40-
flags (interpreted as integer) can be used as input. Flags are prefixed with a
41-
'!' following the flag name. Valid flags are: !cf, !pf, !af, !zf, !sf, !tf, !if,
42-
!df, !of, !rf, !vm, !ac, !vif, !vip and !id.</P>
32+
architecture.<BR><EM>n</EM>:[addr]&nbsp;&nbsp; - read <EM>n</EM> bytes from.<BR><EM>seg</EM>:[addr] -
33+
read a DWORD/QWORD from&nbsp;a
34+
segment.<BR><STRONG>REMARKS</STRONG>:<BR>- <EM>n</EM> is the amount of bytes to read, this can be anything
35+
smaller than 4 on x32 and smaller than 8 on x64 when specified, otherwise there
36+
will be an error.<BR>- <EM>seg</EM>
37+
can be gs, es, cs, fs, ds, ss. Only fs and gs have an effect.</P>
38+
<P class=rvps3><U>flags</U>: Debug flags
39+
(interpreted as integer) can be used as input. Flags are prefixed with an '_'
40+
followed by the flag name. Valid flags are: _cf, _pf, _af, _zf, _sf, _tf, _if,
41+
_df, _of, _rf, _vm, _ac, _vif, _vip and _id.</P>
4342
<P class=rvps3><U>numbers</U>: All
4443
numbers are interpreted as hex by default. If you want to be sure, you can use
4544
the "x" prefix or the "0x" prefix. Decimal numbers can be used by prefixing the
4645
number with a "." (.123=7B).</P>
47-
<P class=rvps3><U>basic calculations</U>: See "Calculations" for more information.</P>
46+
<P class=rvps3><U> expressions</U>: See "Expressions" for more information.</P>
4847
<P class=rvps3><U>Module Data</U>:</P>
4948
<OL>
5049
<LI>

help/Jxx_IFxx.htm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
other)&nbsp;command(s):</P>
2121
<UL>
2222
<LI>
23-
<DIV>uncondentional branch &nbsp; -
23+
<DIV>unconditional branch &nbsp;&nbsp; -
2424
<U>jmp/goto</U></DIV>
2525
<DIV></DIV>
2626
<LI>

help/cmp.htm

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
</head>
1616

1717
<body>
18-
<P><STRONG>cmp<BR></STRONG>This command compares two expressions. Notice that
19-
when you want to check for values being bigger or smaller, the comparison
20-
arg1&gt;arg2 is made. If this evaluates to true, the $_BS_FLAG is set to 1,
21-
meaning the value is internally bigger. So you test if arg1 is bigger/smaller than
18+
<P><STRONG>cmp<BR></STRONG> This command compares two expressions. Notice
19+
that when you want to check for values being bigger or smaller, the
20+
comparison arg1&gt;arg2 is made. If this evaluates to true, the $_BS_FLAG is set to
21+
1, meaning the value is bigger. So you test if arg1 is bigger/smaller than
2222
arg2.</P>
2323
<P><U>arguments<BR></U>&nbsp;arg1: First expression to compare.
2424
</P>

help/functionclear.htm

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2+
<html>
3+
<head>
4+
<title>functionclear</title>
5+
<meta name="GENERATOR" content="WinCHM">
6+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7+
<style>
8+
html,body {
9+
/* Default Font */
10+
font-family: Courier New;
11+
font-size: 11pt;
12+
}
13+
</style>
14+
15+
</head>
16+
17+
<body>
18+
<P>
19+
<STRONG>
20+
functionclear
21+
<BR>
22+
23+
</STRONG>Delete all functions in all modules.
24+
</P>
25+
<P >
26+
<U >
27+
arguments</U>
28+
29+
<BR>
30+
This command has no arguments.</P>
31+
<P><U>result<BR></U> This command does not
32+
set any result variables.</P></body>
33+
</html>

help/log.htm

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@
1919
<P><U>arguments</U><BR>[arg1]: Format string (see down for
2020
more information). When not specified, a newline will be logged.</P>
2121
<P>[argN]: Data for the format string.</P>
22-
<P><U>format string</U><BR>A format string like "Info 1:
23-
{0}, Info 2: {1}\n Info 3:{2}". In place of {n} the n-th argument after the
24-
format string is inserted. You can specify how to format the inserted data by
25-
prepending a format type: "{s0}" logs a string. Other types are: "d" (log as
26-
signed decimal), "u" (log as unsigned decimal), "p" (log as 0x????????), "s"
27-
(log the string at the address specified).<BR>You can print a "{" by escaping it
22+
<P><U>format string</U><BR>
23+
A format string like "Info 1: {0}, Info 2: {1}\n Info 3:{2}". In
24+
place of {n} the n-th argument after the format string is inserted. You can
25+
specify how to format the inserted data by prepending a format type: "{s:0}" logs
26+
a string. Other types are: "d" (log as signed decimal), "u" (log
27+
as unsigned decimal), "p" (log as ????????).<BR>You can print a "{" by escaping it
2828
like "{{". Same for "{". "\n" inserts a newline.</P>
2929
<P><U>result</U><BR>This command does not set any result
3030
variables.</P></body>

help/test.htm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
<P class=rvps3><U>arguments </U><BR>&nbsp; arg1: Value to test.</P>
2121
<P class=rvps3>&nbsp; arg2: Tester.</P>
2222
<P class=rvps3><U>result<BR></U>This command&nbsp;sets the internal variables $_EZ_FLAG
23-
and $_BS_FLAG. $_EZ_FLAG is set to 1 when arg1&amp;arg2= = 0. $_BS_FLAG is
23+
and $_BS_FLAG. $_EZ_FLAG is set to 1 when arg1 &amp; arg2 == 0. $_BS_FLAG is
2424
always set to 0.</P></body>
2525
</html>

help/x64_dbg.wcp

1.39 KB
Binary file not shown.

maketranslatetemplate.bat

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@echo off
2+
echo Run this to update translation templates after the source is modified. Be sure to set Qt path in setenv.bat
3+
4+
call setenv.bat x64
5+
"lupdate.exe" src/gui/x64dbg.pro

release.bat

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ mkdir %RELEASEDIR%\pluginsdk\XEDParse
7070
mkdir %RELEASEDIR%\pluginsdk\yara
7171
mkdir %RELEASEDIR%\pluginsdk\yara\yara
7272

73-
xcopy src\dbg\capstone %RELEASEDIR%\pluginsdk\capstone /S /Y
73+
xcopy src\capstone_wrapper\capstone %RELEASEDIR%\pluginsdk\capstone /S /Y
7474
xcopy src\dbg\dbghelp %RELEASEDIR%\pluginsdk\dbghelp /S /Y
7575
xcopy src\dbg\DeviceNameResolver %RELEASEDIR%\pluginsdk\DeviceNameResolver /S /Y
7676
xcopy src\dbg\jansson %RELEASEDIR%\pluginsdk\jansson /S /Y
@@ -113,10 +113,13 @@ copy bin\x64\x64dbg.lib %RELEASEDIR%\pluginsdk\x64dbg.lib
113113
echo release
114114

115115
mkdir %RELEASEDIR%\release
116+
mkdir %RELEASEDIR%\release\translations
116117
mkdir %RELEASEDIR%\release\x32
117118
mkdir %RELEASEDIR%\release\x64
118119

119120
copy bin\x96dbg.exe %RELEASEDIR%\release\x96dbg.exe
121+
copy bin\mnemdb.json %RELEASEDIR%\release\mnemdb.json
122+
xcopy src\gui\Translations\*.qm %RELEASEDIR%\release\translations /S /Y
120123
copy bin\x32\x32bridge.dll %RELEASEDIR%\release\x32\x32bridge.dll
121124
copy bin\x32\x32bridge.pdb %RELEASEDIR%\release\x32\x32bridge.pdb
122125
copy bin\x32\x32dbg.dll %RELEASEDIR%\release\x32\x32dbg.dll

src/bridge/Utf8Ini.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ class Utf8Ini
272272
break;
273273
case '\t':
274274
escaped += "\\t";
275+
break;
275276
default:
276277
escaped += ch;
277278
}

0 commit comments

Comments
 (0)