Tgus CrackMe Write-Up

Joseph Alan
2 min readAug 1, 2023

--

Using IDA To Analyze And Reverse Engineer A Small Password Application To Crack It’s Password

Step — 1

Extract the binary using the password : crackmes.one

Step — 2

Run the program and enter a wrong password

Step 3 — Load the binary onto IDA to analyze it further

newobj instance void PasscodeChecker.Program::.ctor(): This line creates a new instance of the PasscodeChecker.Program class by calling its constructor (::.ctor()).

The Program class seems to be defined elsewhere in the code and might be the starting point of the actual application logic.

After further inspection password has been found —

  1. ldstr "aHardCrackmeCod": This loads a string onto the stack.
  2. call bool [mscorlib]System.String::op_Equality(string, string): This calls the static method op_Equality on the System.String class to check if the user-entered passcode is equal to the string . The result is a boolean value.
  3. stloc.1: This stores the result (boolean value) from the evaluation stack into the local variable.
  4. ldloc.1: This loads the boolean value from the local variable back onto the evaluation stack.
  5. brfalse.s loc_10B: If the user-entered passcode is not equal to the string, the execution jumps to loc_10B, which displays an "Incorrect Passcode" message.
  6. nop: Another "no-operation" instruction, which serves as a placeholder.
  7. ldstr "aCorrectPasscod": This loads a string literal "aCorrectPasscod" onto the evaluation stack.

Entering the strings loaded by IDA as the password — hard-crackme-code

Cracked!!!

Kindly Reach Out To Me At — josephalan17201972@gmail.com for any corrections.

--

--

Joseph Alan

Cloud Security Engineer | AWS Solutions Architect Professional | CompTIA Cysa+|AWS sysops admin with LAB | TryHackMe top 1%| HackTheBox Rank - Pro Hacker