DynamoRIO / DynamoRIO/dynamorio
CRASH (security-win32.datasegment.exe) modification of ds register
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 31
Description
With version 6.2.0-2 of DynamoRio
The latest build does not solve the problem
On Windows 7, with a 32 bit application, security-win32.datasegment.exe, doing a simple modification of ds register
I run it with (no client)
C:\rio\bin32\drrun.exe -debug -- security-win32.datasegment.exe
The expected output is a line with "end of test, count = 0".
Instead we get a crash with
SYSLOG_CRITICAL: Application security-win32.datasegment.exe (2180). DynamoRIO internal crash at PC 0x735edad9. Please report this at http://dynamorio.org/issues/. Program aborted.
The problem seems to come from modifying the ds register with an invalid value (like 0).
```
push ds
xor eax, eax
mov ds, eax
push ds
pop eax
cmp eax, 0
jnz lds_end
nop
lds_end:
pop ds
ret
```
We get an exception from dynamorio
PC 0x735edad9 tried to read address 0xffffffff
Does dynamoRIO rely on ds having a valid value ?
Contributor guide
Assessment
This issue has not been assessed yet.