Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CSSE2310/CSSE7231 — Semester 1, 2023

Assignment 4 (version 1.0)

Marks: 75 (for CSSE2310), 85 (for CSSE7231)

Weighting:  15%

Due:  4:00pm Friday 26 May, 2023

Introduction

The goal of this assignment is to further develop your C programming skills, and to demonstrate your un-

derstanding of networking and multithreaded programming.  You are to create two programs which together implement a brute-force password cracking system.  One program crackserver  is a network server which accepts connections from clients (including crackclient  which you will implement). Clients connect, and pro- vide encrypted passphrases that the server will attempt to crack (recover the original unencrypted passphrase).

Clients  may  also  request  the  server  to  encrypt  passwords  for  later  analysis.    Communication  between  the

crackclient and crackserver is over TCP using a newline-terminated text command protocol.  Advanced functionality  such  as  connection  limiting,  signal  handling  and  statistics  reporting  are  also  required  for  full marks. CSSE7231 students shall also implement a simple HTTP interface to crackserver.

The  assignment will  also test your  ability to  code to  a  particular  programming  style  guide  and to  use  a

revision control system appropriately.

Student Conduct

This is an individual assignment. You should feel free to discuss general aspects of C programming and the assignment specification with fellow students, including on the discussion forum. In general, questions like “How should the program behave if〈this happens)?”  would be safe, if they are seeking clarification on the specification.

You must not actively help (or seek help from) other students or other people with the actual design, structure and/or coding of your assignment solution. It is cheating to look at another student’s assignment code and it is cheating to allow your code to be seen or shared in printed or electronic form by others . All submitted code will be subject to automated checks for plagiarism and collusion. If we detect plagiarism or collusion, formal misconduct actions will be initiated against you, and those you cheated with. That’s right, if you share your code with a friend, even inadvertently, then both of you are in trouble.  Do not post your code to a public place such as the course discussion forum or a public code repository.  (Code in private posts to the discussion forum is permitted.) You must assume that some students in the course may have very long extensions so do not post your code to any public repository until at least three months after the result release date for the course (or check with the course coordinator if you wish to post it sooner). Do not allow others to access your computer you must keep your code secure. Never leave your work unattended.

You must follow the following code referencing rules for all code committed to your  SVN repository

(not just the version that you submit):

Code  Origin

Usage/Referencing

Code   provided   to   you   in writing   this   semester   by CSSE2310/7231 teaching staff (e.g.  code hosted on Black- board, found in /local/courses/csse2310/resources on moss, posted on the discussion forum by teaching staff, pro- vided in Ed Lessons, or shown in class).

May be used freely without reference.  (You must be able to point to the source if queried about it so you may nd it easier to reference the code.)

Code     you     have     personally written     this     semester     for

CSSE2310/7231  (e .g .   code  written  for  A1  reused  in  A3)

 provided you have not shared or published it.

May  be  used  freely  without  reference.    (This  assumes that no reference was required for the original use.)

Code examples found in man pages on moss.

May be used provided you understand the code AND  the source of the code is referenced in a comment          adjacent to that code (in the required format see the style guide).  If such code is used without appropriate  referencing then this will be considered misconduct.

Code  you  have  personally written  in  a  previous  enrolment

in  this  course  or  in  another  ITEE  course  and  where  that

code has not been shared or published.

Code (in any programming language) that you have taken inspiration from but have not copied 1

 

Code written by or obtained from, or based on code written by or obtained from, a code generation tool (including any articial intelligence tool) that you personally have inter- acted with, without the assistance of another person.

May  be  used  provided  you  understand  that  code  AND

the source of the code is referenced in a comment ad- jacent  to  that  code  (in  the  required  format)  AND  an ASCII text le (named toolHistory .txt) is included in your repository and with your submission that describes in  detail  how the tool  was  used.   If such  code  is  used without  appropriate  referencing  and  without  inclusion of the toolHistory .txt le then this will be considered misconduct.

Other  code  

May not be used. If the source of the code is referenced adjacent to the code then this will be considered code without  academic  merit  (not  misconduct)  and  will  be removed from your assignment prior to marking (which may  cause  compilation  to  fail  and  zero  marks  to  be awarded).  Copied code without adjacent referencing will be considered misconduct and action will be taken.

Uploading or otherwise providing the assignment specification or part of it to a third party including online tutorial and contract cheating websites is considered misconduct.  The university is aware of these sites and many cooperate with us in misconduct&n