in
Level Goal:
Your goal is to connect to port 5842 on vortex.labs.pulltheplug.org and read in 4 unsigned integers.
Add these integers together and send back the results to get a username and password for level 1.

Note: that vortex is on an x86 machine (meaning, a little endian architecture)

Helpful Reading Material

C Programming Introduction
network Programming Tutorial

"telnet <address> 5842"

you'll see strange charters, and wait your input
if you enter key, you will recieve a message alike buzzzz, false 

so, we make source program 4characters for input, output sum of these 4characters, and you will recived a account and password for level 1 

Other Linux 2.6.x kernel-2008-10-28-02-15-15.png


// caution : ip address enter digit 22.xx.xx.xx     not www.opop.com
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>

void error(char *message);

int main(int argc,char *argv[])
{
    int sock;
    unsigned int num, i, sum=0;
    struct sockaddr_in serv_addr;
    char passwd[40];
    int str_len;

    if(argc != 3 )
    {
        printf("Usage:%s <iP> <Port> \n",argv[0]);
        exit(1);
    }
    sock=socket(AF_INET,SOCK_STREAM,0);
    if(sock == -1)
        error("socket() error");

    memset(&serv_addr,0,sizeof(serv_addr));
    serv_addr.sin_family=AF_INET;
    serv_addr.sin_addr.s_addr=inet_addr(argv[1]);
    serv_addr.sin_port=htons(atoi(argv[2]));
   
//    printf("destination : IP [%s], Port [%s]\n",argv[1],argv[2]);
    if(connect(sock,(struct sockaddr*)&serv_addr,sizeof(serv_addr)) == -1)
        error("connect() error");

    for(i=0;i<4;i++)
    {
        if(read(sock,(unsigned int*)&num,sizeof(unsigned int)) == -1)
            error("read() error");
        sum=sum+num;
        printf("i=%x\n",num);
    }
    if(write(sock,(unsigned int*)&sum,sizeof(unsigned int)) == -1)
        error("write() error");
    str_len = read(sock,passwd,sizeof(passwd)-1);
    if(str_len == -1)
        error("read() error");
    passwd[str_len]='\0';
    printf("result: %s\n",passwd);
    return 0;
}

void error(char *message)
{
    fputs(message,stderr);
    fputc('\n',stderr);
    exit(1);
}