QuestionQuestion

Good evening,

Solomon Lane’s The Apostles, A network of Rogue Operatives continue to wreak havoc across the globe. The Apostles are working to acquire functioning plutonium to create Nuclear Weapons from another Criminal network. The CIA has uncovered an account that is being used to finance the Apostles. This account is locked using a six vault key system where each number is randomly generated. Because the system locks itself after only a few tries, brute force is out of the question.

Fortunately the IMF (Impossible Mission Force) has aquired a header file being used to write the encryption Key that the apostles are using in their online system. Meaning that if we can crack their vault system with our simulated system then we will be able to use the same source code and inject into their system successfully acquiring their key. This file is called vault.h.

The technical team at the IMF tells me that the key is made up of 6 classes using different security systems. For many of these classes they have made the value containing the key in a private variable called key of type num (very big integer). Our experts are only able to easily access vault0; however we believe an individual with your expertise in C++ can find ways using pointers to access the num key variable in each of the vault classes.

Your mission is to prevent the Apostles from acquiring Plutonium by writing a program that will hack the key system being used by them. As always, should any of your pointers be left dangling or leaking memory, the Secretary will disavow any knowledge of your actions. This paper will self-destruct in five seconds. Good luck

Notes:

-The method to solve vault6 could technically be used for the other ones but I do not want you to do that. As the point is for you to practice pointer arithmetic
-Your program must run using g++ compiler in sally without segmentation faults. You are NOT allowed to use the –fpermissive flag when compiling.
-Document your code clearly and write some couts of memory addresses as you work your way around the classes finding the address location.

For Example here are some of my cout statements when working with vault4:
V4 Key PreHax: 49091630
V4 Key PreHax Address: 0x7ffe309fbcf8 V4 Key PostHax Address: 0x7ffe309fbd28 V4 Key PostHax: 790971560

-If the members are “read-only” put an appropriate const tag.
-Make sure you name your program file in accordance with the syllabus stipulations
-Test your program by running it a few times with different values to make sure the output is correct for all cases My sample outputs are not enough to fully test your program. Come up with your own!
-Make sure your output is EXACTLY formatted like the samples or you will lose points. This includes spacing, line feeds, and even upper/lower casing of words.
-Comment your source code appropriately.

Solution PreviewSolution Preview

These solutions may offer step-by-step problem-solving explanations or good writing examples that include modern styles of formatting and construction of bibliographies out of text citations and references. Students may use these solutions for personal skill-building and practice. Unethical use is strictly forbidden.

int main(){
#ifndef DEBUG
srand (time(NULL)); // For Rand to seed correctly
#endif
//Create Key
key_gen k;

//Create Variables to store hax0red numbers.
num h0=0, h1=0, h2=0, h3=0, h4=0, h5=0, h6=0;

//Check if Haxed:
k.iskey(h0, h1, h2, h3, h4, h5, h6);

cout << "\n**Beginning Hack**\n" << endl;

//Test if lockout works
for(int i=0; i<15;i++)
;// k.iskey(h0, h1, h2, h3, h4, h5, h6);

//Debug
cout << "Initial Hacked:" << endl;
cout << h0 << " " << h1 << " " << h2 << " ";
cout << h3 << " " << h4 << " " << h5 << " " << h6 << endl;

//Your Code Here:

//VAULT 0: Easy one they didn't even try...
       // the key is public so we could access it easily
       h0 = k.v0->key;

//VAULT 1: Should be easy too
      
       // the address of the key is referenced to
       // tho pointer named maintenance when
       // maintenanceMode() is called         
       k.v1.maintenanceMode();
       // we read the value at the address of the maintenance
       // that address is the address of the key
       h1 = *(k.v1.maintenance);...

By purchasing this solution you'll be able to access the following files:
SolutionVault.h and Solution.cpp.

50% discount

Hours
Minutes
Seconds
$25.00 $12.50
for this solution

PayPal, G Pay, ApplePay, Amazon Pay, and all major credit cards accepted.

Find A Tutor

View available C-Family Programming Tutors

Get College Homework Help.

Are you sure you don't want to upload any files?

Fast tutor response requires as much info as possible.

Decision:
Upload a file
Continue without uploading

SUBMIT YOUR HOMEWORK
We couldn't find that subject.
Please select the best match from the list below.

We'll send you an email right away. If it's not in your inbox, check your spam folder.

  • 1
  • 2
  • 3
Live Chats