Jump to content
sulea

din nou parole?

Recommended Posts

Posted (edited)

dificultate: usor (cu putin cap)

download: putin mai intepator.rar

premii surpriza celor care rezolva challengeul. multe premii :)

primul care trece de challenge este cifratorul. felicitari!

rezolvarea data de cifratorul:

Pasul 1: - afisarea campului de parola si a butonului "incearca". Cine nu a jucat MK si nu isi aduce aminte ca teleportarea lui Raiden era JOS-SUS si "avionul" era spate spate fata se uita un pic prin executabil si vede ca se apeleaza GetAsyncKeyState pentru VK_DOWN si VK_UP. Deci sageata jos - sageata sus afiseaza campurile dorite.

Pasul 2: Ce se intampla cand introducem o parola?

Dupa GetDlgItemText apare la un moment dat o secventa de 7 NOPuri apoi niste teste si afisarea mesajului de succes. Cum modificam aceste NOPuri (fara patch manual)? In procedura de fereastra pe WM_INITDIALOG (0x110) se incearca citirea unui fisier existent, daca exista se citesc 7 bytes si se scriu chiar unde sunt NOPurile. Fisierul are numele `.. (tilda punctu punct). Deci avem 7 bytes in care trebuie sa executam ceva ce ajuta la trecerea testului.

Pasul 3: Challenge-ul propriuzis : Gasirea instructiunilor necesare si care sa incapa in 7 bytes.

Secventa arata initial asa:

00401521 MOV EBX,37DE8A2C

00401526 MOV EDX,1

0040152B MOV ECX,65

00401530 MOV EAX,0A00

00401535 NOP

00401536 NOP

00401537 NOP

00401538 NOP

00401539 NOP

0040153A NOP

0040153B NOP

0040153C ADD ECX,2

0040153F ADD EAX,ECX

00401541 ADD EDX,EAX

00401543 CMP ECX,-32

00401546 JNB putin_ma.004015E3

0040154C CMP EDX,0D2

00401552 JNZ SHORT putin_ma.00401574

Primul test de care trebuie sa trecem este ca ECX sa fie mai mic de -32. De acest test trecem usor cu o valoare mare ce are pe bitul cel mai semnificativ, bitul de semn, valoarea 1. Problema e ca in EDX trebuie sa avem in final 0d2, iar edx e o suma ce include si pe ecx. Asa ca trebuie sa avem grija sa adunam numere mari in edx sa faca overflow si sa ajunga la 0d2. Iar operatia de a pune un word intr-un registru ocupa 5 bytes si noi avem doar 7. Dupa tot felu de teste complicate fara succes, rezolvarea e relativ simpla. In loc de NOPuri se pune:

00401535 B9 68FBFF7F MOV ECX,7FFFFB68

0040153A 8BD1 MOV EDX,ECX

deci in fisierul `.. se pune B9 68 FB FF 7F 8B D1

Edited by sulea
Posted

Daca ati urmari provocarile lui sulea veti vedea ca de fiecare data va propune un exercitiu diferit (si amuzant). Si eu am trecut prima oara repede peste acest test dar apoi cand am inteles in ce consta dificultatea si ce se vrea de fapt mi-a placut mai mult. Apreciez faptul ca @sulea incearca sa foloseasca si sa combine diverse elemente in micile lui programele.

Posted (edited)

frumos am reusit sa fac vizibil tot dar mai departe nu stiu ce sa fac ...... , ce este cu HBK ala de jos? , de ce butonul "Muzicuta" nu e numit in resurse , si am mai vazut un alt bitmap cu un om cu palarie verde si costum dar fara fata , ce inseamna "R.b.v.Etten in 2001 for ED" ?

Daca m-am apropiat cu ceva sa-mi ziceti :D

Edited by sandabot

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...