Andrei Vlad LUTAS
1d43b7b1ba
Improved stack string detection heuristic: only consider registers which have been modified during emulation; registers which were provided as "input" can be ignored, as they most likely contain addresses or other data relevant to the emulated code. We are only interested in string dynamically built during our emulation.
2020-08-11 09:26:48 +03:00
Andrei Kisari
f399cdc246
Merge pull request #18 from bitdefender/clarifying_comments
...
Clarifying comments to the decode API arguments.
2020-08-06 12:39:25 +03:00
Andrei Vlad LUTAS
356ed63916
Clarifying comments to the decode API arguments.
2020-08-06 12:31:08 +03:00
vlutas
8f08850e56
Merge pull request #17 from akisari/master
...
Updated the 'argparse' header.
2020-08-06 10:44:26 +03:00
Andrei KISARI
a78814c19c
Updated the 'argparse' header.
2020-08-06 10:14:12 +03:00
Anichitei Ionel-Cristinel
7f782b0f22
Merge pull request #16 from akisari/master
...
Modified the python-disassembler-wraper.
2020-08-05 15:51:02 +03:00
Andrei KISARI
3d8401be4c
Added a check for the latest version of the library which is compatible with pybddisasm.
2020-08-05 14:01:32 +03:00
Andrei KISARI
90c020a114
Updated the README file.
2020-08-04 15:45:16 +03:00
Andrei KISARI
c6a741b711
Added the paths to bddisasm library : default install path (Linux) and local build path (Linux/Windows)
2020-08-04 15:30:12 +03:00
Andrei KISARI
175b059b27
Changed the version of the pybddisasm package.
2020-08-04 14:14:34 +03:00
Andrei KISARI
4dc2fe4a8a
Fixed pybddisasm build.
2020-08-04 14:13:16 +03:00
Andrei KISARI
ee235fa5de
Modified the python-disassembler-wraper to be able to be installed using pip.
2020-08-04 13:57:03 +03:00
vlutas
ad128fd72a
Merge pull request #13 from ianichitei/master
...
Use GitHub actions C/C++ workflow
2020-07-31 20:16:29 +03:00
Anichitei Ionel-Cristinel
a496ab16e5
Rename c-cpp.yml to ci.yml
...
It currently does more than just the C/C++ build
2020-07-31 18:21:31 +03:00
Anichitei Ionel-Cristinel
d06fe6cf56
Don't build bdshemu_fuzzer
...
It currently expects AFL to be installed on the build machine. I should change that.
2020-07-31 18:18:59 +03:00
Anichitei Ionel-Cristinel
f734bc600b
Try to build bdshemu_fuzz
...
We build it with gcc just to ensure that is stays up to date when bddisasm or bdshemu are changed
2020-07-31 18:16:41 +03:00
Anichitei Ionel-Cristinel
053e105fd2
Skip the build in certain situations
2020-07-31 18:12:55 +03:00
Anichitei Ionel-Cristinel
c0e7a43db3
Disable disasmtool build
...
I can't figure out why it can not find the dependency it needs
2020-07-31 18:08:24 +03:00
Anichitei Ionel-Cristinel
4d077a75eb
Try to fix disasmtool build
2020-07-31 18:05:45 +03:00
Anichitei Ionel-Cristinel
079fbb8802
Rebuild disasmtool Windows
2020-07-31 18:02:30 +03:00
Anichitei Ionel-Cristinel
6e8937a71b
Fix jobnames
2020-07-31 17:59:54 +03:00
Anichitei Ionel-Cristinel
8c92cccdbb
Run the Windows build as well
2020-07-31 17:58:48 +03:00
Anichitei Ionel-Cristinel
1184a314a1
Install setuptools before building pydis
2020-07-31 17:29:10 +03:00
Anichitei Ionel-Cristinel
374dd532e6
Try to build pydis
2020-07-31 17:25:43 +03:00
Anichitei Ionel-Cristinel
15629ff302
Clone rapidjson into a dedicated directory
2020-07-31 17:17:46 +03:00
Anichitei Ionel-Cristinel
21d20ba584
Try to build disasmtool_lix
...
This should clone Tencent/rapidjson, build it, install it, and then build disasmtool_lix
2020-07-31 17:15:50 +03:00
Anichitei Ionel-Cristinel
af8a0cc52f
.github/workflows: Add CI workflow
...
This should build bddisasm and bdshemu
2020-07-31 16:50:27 +03:00
Ionel-Cristinel ANICHITEI
c1e796625a
bdshemu_fuzz: Fix build
2020-07-30 12:31:39 +03:00
Andrei Vlad LUTAS
ed564dba32
Specifically flag multi-byte NOP operands as not-accessed.
...
New capability - bddisasm can now be instructed whether to decode some instructions as NOPs are as MPX/CET/CLDEMOTE. This is the case for instructions that are mapped onto the wide NOP space: in that case, an encoding might be NOP if the feature is off, but might be something else (even #UD) if the feature is on.
Added NdDecodeWithContext API - this becomes the base decode API; it received the input information filled in a ND_CONTEXT structure, whih has to be initialized only once, and can be reused across calls. The NdInitContext function must be used to initialize the context, as it ensures backwards compatibility by filling new options with default values.
Improvements to the README file.
2020-07-30 11:07:14 +03:00
Andrei Vlad LUTAS
4328dc4efa
Changed REG_xxx to NDR_xxx in docs too.
2020-07-29 11:26:07 +03:00
Andrei Vlad LUTAS
144baa5140
Renamed REG_* fields to NDR_*, so that we don't conflict with _GNU_SOURCES.
2020-07-29 11:05:27 +03:00
vlutas
02b7177b99
Merge pull request #10 from cbsirb/master
...
Small enhancements to the disamtool_lix
2020-07-28 17:04:22 +03:00
Cristian-Bogdan SIRB
2868b2afde
disasmtool_lix: Added the --extended parameter which shows the instructions info
2020-07-28 16:14:28 +03:00
Cristian-Bogdan SIRB
75702e9f0d
disasmtool_lix: Align the address part to the biggest one
...
This way, it will always be aligned when dumping instructions:
0 50 PUSH rax
...
10 50 PUSH rax
...
100 50 PUSH rax
2020-07-28 16:05:53 +03:00
Andrei Kisari
5e14a6f25c
Merge pull request #9 from cbsirb/master
...
Fix the disasmtool_lix build
2020-07-28 15:48:37 +03:00
Cristian-Bogdan SIRB
daa0d403a1
Fix the disasmtool_lix build
...
The build wasn't checking properly for the compiler (was checking for C, but
this is a CPP project).
Also added a few more compiler options for GCC 9 and Clang 10.
2020-07-28 15:15:53 +03:00
Ionel-Cristinel ANICHITEI
b0b7a67c8e
Add braces around the ND_INSTRUCTION.Operands initializer
2020-07-27 17:15:12 +03:00
Ionel-Cristinel ANICHITEI
a20db3ce54
Fix constants.h include path
2020-07-27 17:04:04 +03:00
Ionel-Cristinel ANICHITEI
11f1f548ff
Regenerate autogenerated files
2020-07-27 16:52:26 +03:00
Ionel-Cristinel ANICHITEI
049ecc0ab7
Don't use reserved identifiers for include guards
...
This fixes #5
2020-07-27 16:51:16 +03:00
Andrei KISARI
0d5d2a9625
Fixed include path.
2020-07-27 11:51:02 +03:00
Andrei KISARI
9d98a67c70
Added the 'nd_memset' implementation for pydis.
2020-07-27 11:43:41 +03:00
Andrei Vlad LUTAS
d622f56211
Added SERIAL flag to the SERIALIZE instruction.
...
CLWB memory operand is subject to load access checks, while CLDEMOTE does not access memory at all (similar to PREFETCH).
2020-07-25 20:32:06 +03:00
Andrei Vlad LUTAS
4b2f2aee66
Added dedicated Prefetch operand access type.
...
Internally, store the access type sepparately than the flags.
Dump conditional operand accesses with exi option too.
2020-07-25 17:16:35 +03:00
Andrei Vlad LUTAS
d11fe85599
Improved linear address computation in bdshemu.
2020-07-24 23:11:36 +03:00
Andrei Vlad LUTAS
6c248cc4c1
Handle Ignore ER bit in instruction attributes.
2020-07-23 18:05:19 +03:00
Andrei Vlad LUTAS
7ddf7e448a
Apply address size override to gla computation.
2020-07-23 16:19:08 +03:00
Ionel-Cristinel ANICHITEI
087ffbcf95
disasmtool_lix: Add missing instructions to ins_class_to_str
2020-07-23 15:54:05 +03:00
Andrei Vlad LUTAS
cfb0f97897
Truncate the output of a relative addressing if 0x67 prefix is used.
2020-07-23 15:31:05 +03:00
Andrei Vlad LUTAS
752bc626c4
Fixed RET with immediate - the immediate is not sign-extended.
...
Fixed VEX decoding in 32 bit mode - vex.vvvv bit 3 is simply ignored.
Fixed several FMA instructions decoding (L/W flag should be ignored).
Print the 64 bit immediate value in disassembly, instead of the raw immediate (note that the operand always contains the sign-extended, full immediate).
XBEGIN always uses 32/64 bit RIP size (0x66 does not affect its size).
Decode WBINVD even if it's preceded by 0x66/0xF2 prefixes.
Several mnemonic fixes (FXSAVE64, FXRSTOR64, PUSHA/PUSHAD...).
Properly decode VPERMIL2* instructions.
Fixed SSE register decoding when it is encoded in immediate.
Decode SCATTER instructions even though they use the VSIB index as source.
Some disp8 fixes (t1s -> t1s8/t1s16).
SYSCALL/SYSRET are decoded and executed in 32 bit compat modem, even though SDM states they are invalid.
RDPID uses 32/64 bit reg size, never 16.
Various other minor tweaks & fixes.
Re-generated the test files, and added some more, new tests.
2020-07-23 14:08:01 +03:00