ReadProcessMemory + address from ollydbg
H. S. Teoh via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Jun 30 17:26:20 PDT 2017
On Sat, Jul 01, 2017 at 02:23:36AM +0200, ag0aep6g via Digitalmars-d-learn wrote:
> On 07/01/2017 01:41 AM, bauss wrote:
[...]
> > stringSize, &bytesRead)) {
> > return defaultValue;
> > }
> >
> > auto s = cast(string)data[0 .. stringSize];
> >
> > return s ? s : defaultValue;
>
> Here's an error that produces garbage.
>
> `data` is a fixed-sized array, so the values are on the stack. That
> means `s` points to the stack. You can't return a pointer to the
> stack. It becomes invalid when the function returns. You can put it on
> the heap instead: `auto s = data[0 .. stringSize].idup;`.
[...]
The compiler is supposed to catch errors like these with -dip1000.
Recently there was a DIP1000-related fix checked in that fixed some of
the problems with -dip1000 (specifically, a linker error I was running
into), so you may want to consider compiling with -dip1000 if you're
running the latest compiler.
T
--
Klein bottle for rent ... inquire within. -- Stephen Mulraney
More information about the Digitalmars-d-learn
mailing list