iOS检查非默认开放端口

iOS检查非默认开放端口,ios,networking,jailbreak,ssh,Ios,Networking,Jailbreak,Ssh,尝试对非默认开放端口(即22/TCP SSH)实施JB检查: 但是connect()失败(result为-1),并且errno为1--EPERM 1不允许EPERM操作。试图执行操作 仅限于具有适当权限的进程或 文件或其他资源的所有者 查看connect()的手册,EPERM不是可能的返回错误之一。 因此,我能看到获取EPERM的唯一原因是沙箱,但是: 在越狱iPod(iOS 8.4)上运行 默认情况下,集装箱安全带配置文件允许出站网络连接 我想知道发生了什么事。请注意,我也尝试连接到无线接

尝试对非默认开放端口(即22/TCP SSH)实施JB检查:

但是
connect()
失败(
result
为-1),并且
errno
为1--
EPERM

1不允许EPERM操作。试图执行操作
仅限于具有适当权限的进程或 文件或其他资源的所有者

查看
connect()
的手册,
EPERM
不是可能的返回错误之一。

因此,我能看到获取
EPERM
的唯一原因是沙箱,但是:

  • 在越狱iPod(iOS 8.4)上运行
  • 默认情况下,集装箱安全带配置文件允许出站网络连接

  • 我想知道发生了什么事。请注意,我也尝试连接到无线接口,而不是环回。

    22是系统端口-范围从0到1023是众所周知的或系统端口。看起来沙盒不允许您连接到它们。据我所知,代码是在沙盒AppStore类应用程序中执行的?另外,如果它是沙箱违规,它可能会打印在控制台上。我确信如果我在22岁时尝试收听,情况会是这样,但我只是尝试连接。。。如果是这种情况,我们将无法连接到端口80,或443以及。。。(例如)我会检查控制台,看看有没有什么有用的东西!这是不同的-您试图通过环回接口连接到这些端口-这并不常见。正常连接从外部进行,因此不涉及沙箱。苹果限制这种连接是有道理的。好吧,我想我应该补充一点,我已经尝试连接到无线接口,而且据我所知,它仍然会通过环回接口。你们这边的IP地址仍然是127.0.0.1。因此,仍然可以检测您正在执行的操作22是一个系统端口-范围从0到1023是众所周知的或系统端口。看起来沙盒不允许您连接到它们。据我所知,代码是在沙盒AppStore类应用程序中执行的?另外,如果它是沙箱违规,它可能会打印在控制台上。我确信如果我在22岁时尝试收听,情况会是这样,但我只是尝试连接。。。如果是这种情况,我们将无法连接到端口80,或443以及。。。(例如)我会检查控制台,看看有没有什么有用的东西!这是不同的-您试图通过环回接口连接到这些端口-这并不常见。正常连接从外部进行,因此不涉及沙箱。苹果限制这种连接是有道理的。好吧,我想我应该补充一点,我已经尝试连接到无线接口,而且据我所知,它仍然会通过环回接口。你们这边的IP地址仍然是127.0.0.1。所以仍然有可能检测到你在做什么
    /**
     Checks for non-standard ports
     */
    inline int isPortOpen(short port)__attribute__((always_inline));
    -(BOOL)isPortOpen:(short) port
    {
        struct sockaddr_in addr;
        int sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
    
        memset(&addr, 0, sizeof(addr));
        addr.sin_family = AF_INET;
        addr.sin_port = htons(port);
    
        if(inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr)) {
            int result = connect(sock,(struct sockaddr *)&addr, sizeof(addr));
    
            // error :(
            int w00t = errno;
            NSLog(@"Error: %i",w00t);
    
            if(result == 0){
                NSLog(@"FAILED JB CHECK -- non-standard port open!");
                return YES;
            }
            close(sock);
        }
    
        NSLog(@"PASSED JB CHECK -- non-standard ports closed.");
        return NO;
    }