sulea Posted May 22, 2011 Report Posted May 22, 2011 (edited) dificultate: usor (cu putin cap)download: putin mai intepator.rarpremii 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,37DE8A2C00401526 MOV EDX,10040152B MOV ECX,6500401530 MOV EAX,0A0000401535 NOP00401536 NOP00401537 NOP00401538 NOP00401539 NOP0040153A NOP0040153B NOP0040153C ADD ECX,20040153F ADD EAX,ECX00401541 ADD EDX,EAX00401543 CMP ECX,-3200401546 JNB putin_ma.004015E30040154C CMP EDX,0D200401552 JNZ SHORT putin_ma.00401574Primul 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,7FFFFB680040153A 8BD1 MOV EDX,ECXdeci in fisierul `.. se pune B9 68 FB FF 7F 8B D1 Edited June 6, 2011 by sulea Quote
kame Posted May 22, 2011 Report Posted May 22, 2011 (edited) Cum stim ca e buna parola? Edited May 22, 2011 by kame Quote
IceCrash Posted May 22, 2011 Report Posted May 22, 2011 mai degraba e concurs cine vede campul de pus parola, pe urma pui concurs cine afla parola Quote
flux Posted May 22, 2011 Report Posted May 22, 2011 (edited) rainden knows Edited May 22, 2011 by flux Quote
sulea Posted May 24, 2011 Author Report Posted May 24, 2011 pt ridicarea premiilor astept pm cu rezolvarile Quote
root_prime Posted May 24, 2011 Report Posted May 24, 2011 um, nu apar campurile de input din poza Quote
SilentPH Posted May 24, 2011 Report Posted May 24, 2011 In ce e facuta chestia asta ? ... E total aiurea ! Quote
cifratorul Posted May 25, 2011 Report Posted May 25, 2011 nu e aiurea deloc. iar campurile de input trebuie facute sa apara . Quote
cifratorul Posted May 25, 2011 Report Posted May 25, 2011 pai ai indiciul cu raiden...faci un pic de reverse pe executabil ...nu e asa greu. Quote
sandabot Posted May 25, 2011 Report Posted May 25, 2011 e facut in c++ ? anyway trebuia sa compresezi exe btw in ResHacker se vede totul (ma refer la campuri) Quote
cifratorul Posted May 25, 2011 Report Posted May 25, 2011 anyway btw daca totul e asa limpede inseamna ca ai gasit solutia nu? Quote
cifratorul Posted May 25, 2011 Report Posted May 25, 2011 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. Quote
sandabot Posted May 29, 2011 Report Posted May 29, 2011 (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 Edited May 29, 2011 by sandabot Quote