IEEE


How NOT to solve the IEEE Day Badge Challenge

Recently, we were taking the IEEE Day Badge Challenge in https://ieee-collabratec.ieee.org/. We wanted to give another go on solving the clues, so instead of following the clues to open the encrypted and password-protected PDFs, we got the clue that the password is composed only of numeric digits and we used pdfcrack to open the files!

We installed pdfcrack using the following command:

sudo apt-get install pdfcrack;
$ sudo apt-get install pdfcrack
[sudo] password for bob: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  pdfcrack
0 upgraded, 1 newly installed, 0 to remove and 28 not upgraded.
Need to get 31,0 kB of archives.
After this operation, 90,1 kB of additional disk space will be used.
Get:1 http://cy.archive.ubuntu.com/ubuntu focal/universe amd64 pdfcrack amd64 0.18-2 [31,0 kB]
Fetched 31,0 kB in 1s (40,1 kB/s)
Selecting previously unselected package pdfcrack.
(Reading database ... 452721 files and directories currently installed.)
Preparing to unpack .../pdfcrack_0.18-2_amd64.deb ...
Unpacking pdfcrack (0.18-2) ...
Setting up pdfcrack (0.18-2) ...
Processing triggers for man-db (2.9.1-1) ...

To crack the files, we used the following commands that limited the input to the numeric digits and got the password back in seconds on a normal CPU:

pdfcrack -f IEEE+Day+2021+Clue++3.pdf -c 0123456789;
[email protected]:~$ pdfcrack -f IEEE+Day+2021+Clue++3.pdf -c 0123456789
PDF version 1.7
Security Handler: Standard
V: 2
R: 3
P: -1060
Length: 128
Encrypted Metadata: True
FileID: 79c15a021438224ba4df58b0e7fa9a20
U: 4990feee0d63f411cf4eba3c1346ff2100000000000000000000000000000000
O: cc5e6a95577573cac6f6683d4c7f02d6605fe42e5622feb6dc36636263ba838e
found user-password: '490000'

[email protected]:~$ pdfcrack -f IEEE+Day+2021+Clue++5.pdf -c 0123456789
PDF version 1.7
Security Handler: Standard
V: 2
R: 3
P: -1060
Length: 128
Encrypted Metadata: True
FileID: cf72bd9b3fb24145a6d2b578fa52c0e4
U: 8cd5ea45b59168ca10674bdd81f06f5800000000000000000000000000000000
O: 70301a6ff93ac7a91c28895180e8ad57a41388d2b7f3a813b83f4b3fd5274945
Average Speed: 49297.7 w/s. Current Word: '348478'
found user-password: '1470000'

Information on the version we used is below:

$ apt info pdfcrack
Package: pdfcrack
Version: 0.18-2
Priority: optional
Section: universe/utils
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Joao Eriberto Mota Filho <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 90,1 kB
Depends: libc6 (>= 2.14)
Suggests: pdf-viewer
Homepage: http://pdfcrack.sf.net
Download-Size: 31,0 kB
APT-Manual-Installed: yes
APT-Sources: http://cy.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
Description: PDF files password cracker
 PDFCrack is a simple tool for recovering passwords from pdf-documents.
 .
 It should be able to handle all pdfs that uses the standard security handler
 but the pdf-parsing routines are a bit of a quick hack so you might stumble
 across some pdfs where the parser needs to be fixed to handle.
 .
 The main PDFCrack features are:
 .
   - Supports the standard security handler (revision 2, 3 and 4) on all known
     PDF-versions.
   - Supports cracking both owner and userpasswords.
   - Both wordlists and bruteforcing the password are supported.
   - Simple permutations (currently only trying first character as Upper Case).
   - Save and load a running job.
   - Simple benchmarking.
   - Optimised search for owner-password when user-password is known.
 .
 This program can be used in forensics investigations or similar activities,
 to legal password crack.

IEEEXtreme 15.0 Call for Judges / Problem Authors

Are you fascinated by programming? We, the IEEEXtreme 15.0 Executive Committee, are opening the registrations for a select few judges and problem authors.

IEEEXtreme is a global challenge in which teams of IEEE student members compete in a 24-hour time span against each other to solve a set of programming problems authored by industry professionals and coding experts like yourself. Over the 15 years since it began, the competition has attracted over 70,000 competitors from over 2,500 schools in 90 countries around the world.

This is an opportunity where you can not only develop the coding challenges but also you can evaluate them while having the opportunity to associate with some of the top experts in the field. The judging staff of IEEEXtreme are all volunteers who strive to make the contest a fun and exciting experience for all.

Judges responsibilities may include one or more of the following:

Develop at least 1 original and innovative problem. You may see examples of the format of the IEEEXtreme problems here: https://csacademy.com/ieeextreme-practice/
Review and evaluate the problems proposed by another judge and provide feedback;
Provide independent solutions to other proposed problems using any of the competition programming languages;
Be online during the day of the competition for 1-2 hours based on their availability in order to address the contestants’ questions related to the authored challenge.

While not everyone who submits a nomination will be selected, we will carefully review all nominations and thank you in advance for your time to express your interest! We look forward to welcoming you aboard to the IEEEXtreme community!

Please apply using this form on or before 2021/09/19.

More delineations can be acquired from: [email protected]l.com


Programming Course Series [01 – Introductory course to python]

Computer programming is important today because so much of our world is automated. Humans need to be able to control the interaction between people and machines. Since computers and machines are able to do things so efficiently and accurately, we use computer programming to harness that computing power.

This is the first of hopefully many programming courses that can introduce technically inclined people to Python programming.


  Date and Time

Location

Information on our VPN service (instructions for iOS devices) will be provided to the registrants that cannot join us along with instructions on our BigBlueButton platform.

Hosts

Registration


  Speakers

George Michael

Topic:

Everybody can write a computer program (An introduction using Python)


Agenda

Introduction to programming and reasons to write programs?

These are the course-wide materials as well as Introductions’ first section where we discuss what writing programs mean. In the third part of the class, we will finish the Introduction and have the quiz and first task.

Installing and Using Python

We’re going to set up stuff so that you can write Python programs.

Introduction to programming and reasons to write programs? (continued)

We try to cover the “big picture” of programming so that you get a “table of contents” from what to expect to learn. Don’t worry if, the first time you hear it, not everything makes perfect sense. This part is very broad.

Variables and Expressions

We will explain how a program uses the memory of the machine to store, retrieve and process information in this section.

Conditional Code

We will move from sequential code in this section that simply runs one line of code after another to conditional code where some steps are skipped. It is a very basic idea – but it is how “choices” are made by computer software.

Functions

We are going to learn about what functions are and how we can use them. Functions will be an essential way for us to make sense of our code, as we move into more and more complicated programs.

Loops and Iteration

Our four fundamental programming patterns are completed by loops and iteration. Loops are the way we say Python over and over to do something. Loops are the manner in which we create programs that remain with a problem until the problem is solved.


Programming Course Series [beta]

Computer programming is important today because so much of our world is automated. Humans need to be able to control the interaction between people and machines. Since computers and machines are able to do things so efficiently and accurately, we use computer programming to harness that computing power.

This is the first of hopefully many programming courses that can introduce technically inclined people to Python programming.

Date and Time

Location

Information on our VPN service (instructions for iOS devices) will be provided to the registrants that cannot join us along with instructions on our BigBlueButton platform.

Hosts

Registration

 Speakers

George Michael

Topic:

Everybody can program (An introduction using Python)


Agenda

Introduction to programming and reasons to write programs?

These are the course-wide materials as well as Introductions’s first section where we discuss what writing programs mean. In the third part of the class, we will finish the Introduction and have the quiz and first task.

Installing and Using Python

We’re going to set up stuff so that you can write Python programs.

Introduction to programming and reasons to write programs? (continued)

We try to cover the “big picture” of programming so that you get a “table of contents” from what to expect to learn. Don’t worry if, the first time you hear it, not everything makes perfect sense. This part is very broad.

Variables and Expressions

We will explain how a program uses the memory of the machine to store, retrieve and process information in this section.

Conditional Code

We will move from sequential code in this section that simply runs one line of code after another to conditional code where some steps are skipped. It is a very basic idea – but it is how “choices” are made by computer software.

Functions

We are going to learn about what functions are and how we can use them. Functions will be an essential way for us to make sense of our code, as we move into more and more complicated programs.

Loops and Iteration

Our four fundamental programming patterns are completed by loops and iteration. Loops are the way we say Python over and over to do something. Loops are the manner in which we create programs that remain with a problem until the problem is solved.


IEEEXtreme: What Did The Penalty Bracket Mean?

The penalty (per challenge), is the time in minutes between the initial release of a challenge and the time at which a team submitted their best answer to that challenge.

For example, the challenge named “Crafting Wooden Tables” was released on the 5th hour of the 14.0 IEEEXtreme competition (05:00 UTC +0).

If a team had their best solution to this challenge submitted at 19:59 (UTC +0), which gives us almost a 15 hour delay, then the penalty for that challenge would be 899 point (14 hours * 60 minutes + 59 minutes = 899 minutes since the release of the challenge.)

Each teams’ total penalty is the sum of all individual penalties.