1616, 5/81 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   ÇØÅ·ÀßÇϰí½Í´Ù
   http://¾øÀ½
   screenshot.png (190.8 KB), Download : 6     [¿À¸¥ÂÊ ¹öư ´­·¯ ´Ù¿î ¹Þ±â]
   ½Ã½ºÅÛ ÄÝ ÃßÀû È®ÀåÆÇ

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=8597 [º¹»ç]



#include <sys/ptrace.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/user.h>
#include <unistd.h>
#include <stdio.h>

// ½Ã½ºÅÛ ÄÝ ¹øÈ£¿Í À̸§ ¸ÅÇÎ
const char *syscall_names[] = {
    "read", "write", "open", "close", "stat", "fstat", "lstat", "poll",
    "lseek", "mmap", "mprotect", "munmap", "brk", "rt_sigaction", "rt_sigprocmask",
    "ioctl", "pread64", "pwrite64", "readv", "writev", "access", "pipe", "select",
    // ÇÊ¿ä½Ã Ãß°¡
};

void print_syscall_name(long syscall_no) {
    if (syscall_no >= 0 && syscall_no < sizeof(syscall_names) / sizeof(syscall_names[0])) {
        printf("½Ã½ºÅÛ ÄÝ: %s (%ld)\n", syscall_names[syscall_no], syscall_no);
    } else {
        printf("¾Ë ¼ö ¾ø´Â ½Ã½ºÅÛ ÄÝ (%ld)\n", syscall_no);
    }
}

int main() {
    pid_t child;
    pid_t pid, ppid, pgid, sid;
    struct user_regs_struct regs;
    int status;

    pid = getpid();
    ppid = getppid();
    pgid = getpgid(0);
    sid = getsid(0);

    printf("ºÎ¸ð ÇÁ·Î¼¼½º Á¤º¸:\n");
    printf("PID: %d\n", pid);
    printf("PPID: %d\n", ppid);
    printf("PGID: %d\n", pgid);
    printf("SID: %d\n", sid);

    child = fork();
    if (child == 0) {
        ptrace(PTRACE_TRACEME, 0, NULL, NULL);
        execl("/bin/ls", "ls", NULL);
    } else {
        wait(&status);
        printf("\n½Ã½ºÅÛ ÄÝ ÃßÀû ½ÃÀÛ:\n");
        while (!WIFEXITED(status)) {
            // ½Ã½ºÅÛ ÄÝ Á÷Àü ÀÎÅͼÁÆ®
            ptrace(PTRACE_SYSCALL, child, NULL, NULL);
            wait(&status);

            if (WIFSTOPPED(status)) {
                // ·¹Áö½ºÅÍ »óÅ Àбâ
                ptrace(PTRACE_GETREGS, child, NULL, ®s);
                print_syscall_name(regs.orig_rax);
            }

            // ½Ã½ºÅÛ ÄÝ Á÷ÈÄ ÀÎÅͼÁÆ®
            ptrace(PTRACE_SYSCALL, child, NULL, NULL);
            wait(&status);
        }
        printf("½Ã½ºÅÛ ÄÝ ÃßÀû Á¾·á.\n");
    }
    return 0;
}

  Hit : 1044     Date : 2025/01/19 05:49



    
indra ¸ÚÁø ±ÛÀ̳׿ä.
ptrace()¸¦ Àß ´Ù·ê ¼ö ÀÖ°í ½Ã½ºÅÛ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù¸é ¸¹Àº °ÍµéÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿ÀÆæ½ÃºêÂÊ¿¡¼­´Â ¿©ÀüÈ÷ Àß »ç¿ëµÇ°í ÀÖÁö¸¸ º¸¾ÈÀ̳ª ¸ð´ÏÅ͸µÃø¸é¿¡¼­´Â ½Ã½ºÅÛ ¾ÈÁ¤¼ºÀ» À§ÇØ ptrace() ¸¦ Á÷Á¢ »ç¿ëÇÏ´Â °Í º¸´Ù eBPF ÂÊ ¿µ¿ªÀ¸·Î °¡ÁöÄ¡±â ÇÑÁö ²Ï µÈ °Í °°³×¿ä.
Àß º¸¾Ò½À´Ï´Ù.
2025/01/31  
ÇØÅ·ÀßÇϰí½Í´Ù indra // ¸ÚÁø ±ÛÀ̶ó´Â ĪÂù¿¡ °¨»çÀÇ ¸»¾¸µå¸³´Ï´Ù.
½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö ÂÊÀº ÇØºÃÀÚ Win32 API¶û Posix-C¹Û¿¡ °øºÎÇÑ °Ô ¾ø¾î¼­¿ä.
°´Ã¼ÁöÇâ ¾ð¾îµµ °³³ä¸¸ ¾Ë »Ó, Á¶±Ý ¹Û¿¡ ¸ð¸£°í...
ºÎÁ·ÇÑ Á¡ÀÌ ¸¹Áö¸¸ ±àÁ¤ÀûÀ¸·Î ºÁÁּż­ °¨»çÇÕ´Ï´Ù. ;-)
2025/02/06  
1536   ½½·¡¸Ó°¡ ³×Æ®¿öÅ©¸¦ ¸¶ºñ½ÃÄ×´ø ¹æ¹ý[8]     dkdkfjgh
06/22 9543
1535   ½º´ÏÇΠ    phan_tom2
10/01 8415
1534   ½ºÅ©¸³Æ®¾Ë·ÁÁֽǺÐ~2     lcd7132
05/03 6826
1533   ½ºÅ©¸³Æ®¾Ë·ÁÁֽǺÐ~1     lcd7132
05/03 6879
1532   ½ºÅ©¸³Æ®¾Ë·ÁÁֽǺÐ~     lcd7132
05/03 6855
1531   ½ºÅ©¸³Æ® ¾Ë·ÁÁֽǺÐ~2     lcd7132
04/29 6813
1530   ½ºÅ©¸³Æ® ¾Ë·ÁÁֽǺÐ~1     lcd7132
04/29 6539
1529   ½ºÅ©¸³Æ® ¾Ë·ÁÁֽǺÐ~     lcd7132
04/29 6834
1528   ½ºÅ©¸³Æ® À߸¸µå½Ã´ÂºÐ~     lcd7132
04/26 6864
1527   ½ºÇǾîÇǽÌ(³×À̹öÁö½Ä¹é°ú)-½Ã»ç»ó½Ä»çÀü, ¹Ú¹®°¢[1]     melody05
02/11 10779
1526   ½ºÇÁÇΰø°Ý[2][2]     Nuker
01/02 9456
1525   ½ºÇÁÇΰø°Ý [1][6]     Nuker
12/28 10247
1524   ½©ÄÚµå ¸ðÀ½     ÇØÅ·ÀßÇϰí½Í´Ù
01/15 2863
1523   ½Å±âÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î[3]     koreal33t
09/06 5713
1522   ½ÅÇü Áß±¹¹ß ³×ÀÌÆ®¿Â ÇØÅ· ºÐ¼®[12]     Ǫ¸¥ÇÏ´Ã
02/12 14937
1521   ½Éº¼¸¯ ¸µÅ©°É±â~¡Ù¤»[1]     ±«µµjs
07/25 11804
1520   ½ÇÁ¦ ħÅõ¸¦ À§ÇÑ ÇØÅ·À» ¹è¿ì·Á¸é....[5]     choboKing
12/16 11148
1519   ½Ã½ºÅÛ ¸®¼Ò½º 99%¿¡ µµÀüÇÏÀÚ!![18]     DarkSlayer
09/10 18581
  ½Ã½ºÅÛ ÄÝ ÃßÀû È®ÀåÆÇ[2]     ÇØÅ·ÀßÇϰí½Í´Ù
01/19 1043
1517   ½Ã½ºÅÛ ÇØÅ· °øºÎ¹æ¹ýÀÌ ±Ã±ÝÇÕ´Ï´Ù.[1]     39ghwjd
09/12 7787
[1][2][3][4] 5 [6][7][8][9][10]..[81]

Copyright 1999-2025 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org