inode client.exe是啥程序?是否我电脑的内外网隔离程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了inode client.exe是啥程序?是否我电脑的内外网隔离程序?相关的知识,希望对你有一定的参考价值。

参考技术A inode client.exe (trojan.dropper.50704)是一款木马程序。木马程序是指潜伏在电脑中,受外部用户控制以窃取本机信息或者控制权的程序。

木马程序的公有特性是通过网络或者系统漏洞进入用户的系统并隐藏,然后向黑客泄露用户的信息,而黑客工具则有一个可视的界面,能对用户的电脑进行远程控制。木马程序、黑客工具往往是成对出现的,即木马程序负责侵入用户的电脑,而黑客工具则会通过该木马程序来进行控制。其中以灰鸽子最为出名。 建议用杀软直接杀掉本回答被提问者采纳

是否有任何快速的方法来检查 ext2/3/4 空闲 inode(在未安装的磁盘上)?和/或为啥它们不都具有相同的“坏类型”状态

【中文标题】是否有任何快速的方法来检查 ext2/3/4 空闲 inode(在未安装的磁盘上)?和/或为啥它们不都具有相同的“坏类型”状态【英文标题】:Is there any fast way to examine ext2/3/4 free inodes (on an unmounted disk) ? and/or why do they not all have the same "bad type" status是否有任何快速的方法来检查 ext2/3/4 空闲 inode(在未安装的磁盘上)?和/或为什么它们不都具有相同的“坏类型”状态 【发布时间】:2021-09-20 06:51:03 【问题描述】:

使用 debugfs 检查空闲 inode(列表来自 dumpe2fs),我观察到它们中的大多数都有bad type 状态,除了少数是regular。我想检查一下它们有多少以及它们中的哪些具有不同的状态。

因此,我制作了一个小型 python/pexpect 程序,它启动 debugfs 并以交互方式发送 stat <inode> 请求,要求所有这些空闲 inode 查找哪些或它们具有其他 bad type 状态。

但是,我的程序似乎需要大约 2 年的时间才能获得所有要求的信息。我可以使用什么更快的方法来获取这些 inode 内容?

或者,我很高兴获得有关免费 inode 为何具有regular 状态的信息

【问题讨论】:

fsck之类的程序打开原始磁盘设备,直接读取inode数据。 是的,debugfs 也是这样做的,但是fsck 没有报告我正在寻找的内容,并且使用debugfs 一次在 inode 上阅读它太慢了。 这就是为什么我建议您编写一个直接读取磁盘设备的程序,就像他们一样。 嗯,确实,作为最后的选择,我可以尝试修补 debugfs 以一次性转储所有空闲 inode... 这是另一种选择。 SO 不是设计讨论论坛。您需要发布您编写的实际代码的问题。 【参考方案1】:

由于我没有得到任何简单的解决方案,我最终通过在debugfs/debugfs.c 中添加一个基于do_stat 的新函数do_rstat 来修补调试文件。有点像这样:

void do_rstat(int argc, char *argv[])

        ext3_ino_t      ifrom, ito, inode;
        struct ext3_inode * inode_buf;
        errcode_t r;

        if (argc<4) 
                fprintf(stderr, "do_rstat: needs an inodes range (3 arguments).\n");
                return;
        

        if (check_fs_open(argv[1]))
                return;

        if (string_to_inode_range(argv[2], argv[2], &ifrom, &ito) & 0x2) 
                fprintf(stderr, "do_rstat: invalid inodes range.\n");
                return;
        

        inode_buf = (struct ext3_inode *)
                        malloc(EXT3_INODE_SIZE(current_fs->super));
        if (!inode_buf) 
                fprintf(stderr, "do_rstat: can't allocate buffer\n");
                return;
        

        for (inode = ifrom; inode<ito; inode++) 
                r = debugfs_read_inode_full(inode, inode_buf, argv[1],
                                                EXT3_INODE_SIZE(current_fs->super));
                if (r) 
                        FILE    *out;
                        out = open_pager();
                        fprintf(out, "%13ud ERROR %ld\n\n", inode, r);
                        close_pager(out);
                 else
                        dump_inode(inode, inode_buf);
        

        free(inode_buf);
        return;

(但是,我不会在这里详细说明它,因为它完全符合我的需求,但我还替换了 dump_inode(inode, inode_buf); 调用以在具有固定宽度字段的一行上获取输出,以消除对模式匹配的需要在调用程序中)。为了做到这一点,我从 dump_inodedump_inode_internal 函数中启发了自己。

我还需要在debugfs/util.c中添加两个函数

/*
 * This routine is used whenever a command needs to turn an <ino> string
 * into an inode.
 */
ext2_ino_t string_to_inode_number(char *str)

        ext2_ino_t      ino;
        int             len = strlen(str);
        char            *end;

        if ((len<2) || (str[0] != '<') || (str[len-1] != '>')) return 0;
        ino=strtoul(str+1, &end, 0);
        if (*end!='>') return -1;
        return ino;

               
/*
 * This routine is used whenever a command needs to turn 2 <ino> strings
 * into an inodes range ( [ino1, ino2[ ).
 */
int string_to_inode_range(char *str1, char *str2, ext2_ino_t *ino1, ext2_ino_t *ino2)

        int invalid = 0;
        ext2_ino_t inox;

        *ino1 = string_to_inode_number(str1);
        *ino2 = string_to_inode_number(str2);
        if (*ino2 == -1) 
                *ino2 = current_fs->super->s_inodes_count+1;
                invalid |= 0x1;
        
        if (*ino1 >= *ino2) 
                inox = *ino1;
                *ino1 = *ino2;
                *ino2 = inox;
                invalid |= 0x2;
        
        if (*ino1 <= 0) 
                *ino1 = 1;
                invalid |= 0x4;
        
        if (*ino2 > current_fs->super->s_inodes_count+1) 
                *ino2 = current_fs->super->s_inodes_count+1;
                invalid |= 0x8;
        
        return invalid;

我需要将他们的原型添加到debugfs/debugfs.h

extern ext2_ino_t string_to_inode_number(char *str);
extern int string_to_inode_range(char *str1, char *str2, ext2_ino_t *ino1, ext2_ino_t *ino2);

我还在debug_commands.ct 中添加了新命令的条目:

request do_rstat, "Show inodes information ",
        show_inodes_info, rstat;

当我调用它时,我需要确保输出是通过管道传输的(如在 | cat 中),以停用烦人的寻呼机。

例如:

> debugfs -cD -R 'rstat <100> <200>' /dev/sdXXX | cat

(别忘了 /dev/sdXXX 一定不能挂载)

【讨论】:

以上是关于inode client.exe是啥程序?是否我电脑的内外网隔离程序?的主要内容,如果未能解决你的问题,请参考以下文章

inode是啥

问:说说inode到底是啥?

linux上的inode编号是啥

Inode是啥意思

inode 列 (proc/net/tcp(6)) 中的值是啥意思?

Linux中的inode到底是啥