Execute Instructions From The Heap

后端 未结 4 1259
失恋的感觉
失恋的感觉 2020-12-11 09:53

Can I allocate a block on the heap, set its bytes to values that correspond to a function call and its parameters, then use the function call and dereference operators to ex

4条回答
  •  天涯浪人
    2020-12-11 10:34

    Yes. How else could Dynamic loading and Linking work? Remembering that some (most?) Operating Systems, and some (most?) Linkers are also written in C/C++. For example,

    #include 
    void* initializer = dlsym(sdl_library,"SDL_Init");
    if (initializer == NULL) {
        // report error ...
    } else {
        // cast initializer to its proper type and use
    }
    

    Also, I believe that a JIT (e.g. GNU lightning and others) in general performs those operations.

提交回复
热议问题