document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <unistd.h>  
  2. #include <sys/mman.h>
  3. #include <stdio.h>
  4.  
  5. #define DATA_SIZE 1024
  6.  
  7. lock_memory(char   *addr, size_t  size) {
  8.    
  9.     unsigned long    page_offset, page_size;
  10.  
  11.     page_size = sysconf(_SC_PAGE_SIZE);
  12.     page_offset = (unsigned long) addr % page_size;
  13.  
  14.     addr -= page_offset;  /* Adjust addr to page boundary */
  15.     size += page_offset;  /* Adjust size with page_offset */
  16.  
  17.     return ( mlock(addr, size) );  /* Lock the memory */
  18. }
  19.  
  20. unlock_memory(char   *addr, size_t  size){
  21.  
  22.     unsigned long    page_offset, page_size;
  23.  
  24.     page_size = sysconf(_SC_PAGE_SIZE);
  25.     page_offset = (unsigned long) addr % page_size;
  26.  
  27.     addr -= page_offset;  /* Adjust addr to page boundary */
  28.     size += page_offset;  /* Adjust size with page_offset */
  29.  
  30.     return ( munlock(addr, size) );  /* Unlock the memory */
  31. }
  32.  
  33. main() {
  34.  
  35.     char data[DATA_SIZE];
  36.     int ret;
  37.    
  38.     if ( lock_memory(data, DATA_SIZE) == -1 ) { perror("lock_memory"); }
  39.    
  40.     #Una vez tenemos garantizado que la memoria ira a la RAM metemos datos
  41.        
  42.     ret = sprintf(data, "UnPasswordMegaSecreto");
  43.        
  44.     printf ("Mi password mega secreto %s\\n", data) ;
  45.    
  46.  
  47.     if ( unlock_memory(data, DATA_SIZE) == -1 )
  48.     perror("unlock_memory");
  49. }
');