Отмапить файл из памяти (или подождать завершения процесса-родителя), а потом - меняй, что хочешь. Для Linux. Для винды - посмотрите, как устроены...
А кто мешает исправить значение переменной в бинаре?
Только вы учтите, что если приложение, в которое вы инжектитесь использует треды, то TLS libc будет не в dtv[1], а где-нибудь еще. Пока не думал,...
Я немного порылся, и получил такой вариант: #include <stdio.h> #include <stdint.h> #include <stdbool.h> #include <assert.h> #include <elf.h> /*...
http://www.akkadia.org/drepper/tls.pdf см. п. 3.4.2
void *get_base(uint32_t addr) { addr &= ~4095; while (*(uint32_t*)addr != 0x464c457fUL) addr -= 4096; return (void*)addr; } на вход дайте...
а calling convention?
Вы определенно, что-то путаете. Ничего не знаю о сорцах веба, каспера вот есть кусок, еще кой-чего... А веба нет.
#include <stdint.h> int main(int argc, char **argv) { int h = open("1", 0); if (h < 0) return 2; int l =...
mprotect ?
Попробуй убрать clobber description и прочитать info gcc (5.34)
.L17: .loc 1 37 0 movl -12(%ebp), %eax # dyn, dyn movl (%eax), %eax # <variable>.d_tag, D.2531 cmpl...
-g -Wa,-ahls
Имена участников (разделяйте запятой).