DynamoRIO / DynamoRIO/dynamorio

CRASH (security-win32.datasegment.exe) modification of ds register

Open
#2,485 1 comment 0 reactions 0 assignees View on GitHub
Bug-DRCrash OpSys-Windows OpSys-x86
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

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.