How NOT to solve the IEEE Day Badge Challenge

Recently, we were taking the IEEE Day Badge Challenge in 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:
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 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]>
Installed-Size: 90,1 kB
Depends: libc6 (>= 2.14)
Suggests: pdf-viewer
Download-Size: 31,0 kB
APT-Manual-Installed: yes
APT-Sources: 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
   - 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:
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]

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


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.




George Michael


Everybody can program (An introduction using Python)


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.


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.

Why sponsor IEEEXtreme

IEEEXtreme is a global programming competition where IEEE students compete against each other in teams composed of up to 3 people. The competition has an unconventional timespan which lasts 24 hours and it usually starts on a Saturday of October at 00:00 (UTC +0) for everyone around the globe.

During that period the teams are asked to solve algorithmic challenges using their programming language of preference.
The competition platform supports more than 20 different programming languages, including all the popular ones.
This is making it easier for the majority of students to compete as all common programming languages taught at school are covered.

All students are able to join the IEEEXtreme as the challenges set contains challenges of all kinds of difficulty levels.
Up to now there always were challenges that can be solved by junior students and also there were mind boggling challenges for the advanced and experienced students.

Junior students, by joining early they get experience on how to handle the workload with their team members and perform efficient time management based on their skill set.
Participation in more competitions allows them to improve as a team for the years to come and greatly improve their ranking in the future.
We observe that there is retention of contestants as many compete in multiple competitions year after year.

A sponsor may request for a specific challenge to be addressed during the competition and/or set parameters to a challenge.

We hope to get your support in the biggest programming competition of IEEE which is composed of ~10.000 contestants and several hundreds of volunteers around the world!

To know more about the IEEEXtreme visit our site ( or hear it from the people that are creating the competition on the stream “IEEEXtreme Uncut: Behind the Scenes” (