DynamoRIO / DynamoRIO/dynamorio

simultaneous 32-bit and 64-bit library support for x64 DR controlling WOW64 app

Open
#49 6 comments 0 reactions 0 assignees View on GitHub
Migrated OpSys-Windows OpSys-x64 Priority-Low Type-Feature
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

_From [derek.br...@gmail.com](https://code.google.com/u/117968039472581148324/) on February 24, 2009 14:14:20_

Today 32-bit DR can control the 32-bit parts of a WOW64 app but to see all
of the code including the emulation layer we want 64-bit DR able to run the
whole mixed-mode app. Some of the capabilities here also apply to Linux
mixed-mod apps but those are much, much rarer.

here is my list of cases that will eventually be separately filed here:
- PR 240257: support 32-bit clients on WOW64? how mix 32 and 64 bit code?
like Pin, give stream to separate clients? or give 32-bit code to
64-bit client?
- PR 253431: [wow64] simultaneous 32-bit and 64-bit dll support in 64-bit DR
- PR 314367: re-enable x64 DR controlling WOW64 process once it works
- PR 272553: [x64] late injection must switch from kernel32 to ntdll for
wow64 children
- PR 271317: preserve cs changes from far ctis and iret
- PR 283895: [x64][correctness][performance] for x86 code use separate
x86 ibl tables and compacted or separate tls
- PR 283152: support high bit preservation across mode changes
- PR 284029: [x64] support syscalls in x86 mode
TODO: reg_spill_dcontext_offs(reg_id_t reg):
/\* Use REG_E?? instead of REG_X?? to eventually support 32-bit code
spills in
- mixed 64-bit/32-bit execution. */
- PR 269595: WOW64 context translation failing when at our own
post-syscall point
- PR 254193: [x64] inject into different-architecture child: x64 to
WOW64, WOW64 to x64
=> long-term we'll only support 64-bit-DR in WOW64 following (PR 253431)
- PR 253943: [x64] support sysenter
- PR 255555: [x64] 32-bit drinject options for launching 64-bit exe
how know if ilist is 32-bit: instr_get_x86_mode() on each instr, or
can assume if 1st then whole is same? shouldn't matter for most ops:
IR is rich enough and cross-platform enough

_Original issue: http://code.google.com/p/dynamorio/issues/detail?id=49_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.