J
John
Hi all,
Maybe someone could help me clearing out some confusion.
If I compile the following lines of code and break the execution with
a debugger just after the call to a(), but before the call to b(), i
would expect the calls to jump to memory locations in usermode address
space, however, from the assembly listing below, I see call
instructions to addresses way up in the address space.
Can anyone explain this?
Thanx!
John.
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Bob.f();
}
}
static class Bob
{
public static void a() { Console.WriteLine("a"); }
public static void b() { Console.WriteLine("b"); }
public static void c() { Console.WriteLine("b"); }
public static void f() { a(); b(); c(); }
}
}
00000000 sub rsp,28h
00000004 nop
00000005 mov rax,7FF001D1D60h
0000000f mov eax,dword ptr [rax]
00000011 test eax,eax
00000013 je 000000000000001A
00000015 call FFFFFFFFF305F4B0
0000001a nop
0000001b call FFFFFFFFFFEC9378
00000020 nop
00000021 call FFFFFFFFFFEC9380
00000026 nop
00000027 call FFFFFFFFFFEC9388
0000002c nop
0000002d jmp 000000000000002F
0000002f add rsp,28h
00000033 rep ret
Maybe someone could help me clearing out some confusion.
If I compile the following lines of code and break the execution with
a debugger just after the call to a(), but before the call to b(), i
would expect the calls to jump to memory locations in usermode address
space, however, from the assembly listing below, I see call
instructions to addresses way up in the address space.
Can anyone explain this?
Thanx!
John.
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Bob.f();
}
}
static class Bob
{
public static void a() { Console.WriteLine("a"); }
public static void b() { Console.WriteLine("b"); }
public static void c() { Console.WriteLine("b"); }
public static void f() { a(); b(); c(); }
}
}
00000000 sub rsp,28h
00000004 nop
00000005 mov rax,7FF001D1D60h
0000000f mov eax,dword ptr [rax]
00000011 test eax,eax
00000013 je 000000000000001A
00000015 call FFFFFFFFF305F4B0
0000001a nop
0000001b call FFFFFFFFFFEC9378
00000020 nop
00000021 call FFFFFFFFFFEC9380
00000026 nop
00000027 call FFFFFFFFFFEC9388
0000002c nop
0000002d jmp 000000000000002F
0000002f add rsp,28h
00000033 rep ret