Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static char mapfile[ ] = "/boot/System.map-";
- static char query[ ] = "sys_call_table";
- char *GetFile() {
- static char *filename;
- int fns;
- struct utsname info_s;
- if (uname(&info_s)>=0){
- fns=strlen(mapfile)+strlen(info_s.release);
- filename=(char *)malloc(fns);
- sprintf(filename,"%s%s",mapfile,info_s.release);
- } else return NULL;
- return filename;
- }
- unsigned long position(char *file) {
- FILE *fp;
- char buf[100];
- unsigned long *sctable;
- fp = fopen(file,"r");
- if (!fp) return 0;
- for(;;) {
- if(NULL == fgets(buf,99,fp)) break;
- if(strstr(buf,query)) {
- sctable=(unsigned long*)strtoul(strtok(buf," "),NULL,16);
- break;
- }
- }
- fclose(fp);
- return sctable;
- }
- int main() {
- char *filename=NULL;
- unsigned long sctaddr;
- filename=GetFile();
- sctaddr=position(filename);
- printf("[*] Syscall Table hosted at: %x\n",sctaddr);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement