title: Access (read/write) to virtual memory process from another application
body: <p>I have simple program:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int a = 5;
  
  int
  main(void)
  {
      while(1)
      {
          int i;
          sleep(1);
          printf("%p %i\n", &amp;a, a);
      }
      return 0;
  }
  </code></pre>
  
  <p>Output (Ubuntu x64):</p>
  
  <pre><code>0x601048 5
  0x601048 5
  0x601048 5
  0x601048 5
  </code></pre>
  
  <p>I was learning about pointers in C and I already know that you can use <code>memcpy</code> to write data wherever (almost) you want within virtual memory of process. But, is it possible to modify value of <code>int a</code>, placed at <code>0x601048</code> address, by using another application(which is of course using its own virtual memory)? How to do this? I'm interested in solutions only for C.</p>