Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.49 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. void set_stack_limit(size_t mb) {
  3.     size_t bytes = mb * 1024 * 1024;
  4.     void* old_rsp = NULL;
  5.     asm volatile ("mov %%esp, %0;" : "=r" ( old_rsp ));
  6.     void* fake_stack = (void*)((char*)std::calloc(bytes,1)+bytes-1);
  7.     asm volatile ("mov %0, %%esp" : : "r" (fake_stack));
  8.     asm volatile ("mov %0, %%esp" : : "r" (old_rsp));
  9. }
  10. int main() {
  11.     set_stack_limit(511);
  12.     std::array<char, 300 * 1024 * 1024> arr;
  13.     std::cout << arr[5];
  14.     return 0;
  15. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement