Всем привет, опять хочу кое-что протестировать.
Задача: найти пароль
Если смогли решить, то оцените пожалуйста, и если несложно кратенько как решали.
Анти-дебага, анти-вма и прочего нет, но там есть кое-что другое.
Как написал мужик выше , пароль : 'h'
Логика :
Первым делом введенный пароль ксорится с настоящим паролем ( xmm0 - ваш пароль , xmm1 настоящий пароль ), если пароль правильный ксор 2х одинаковых чисел будет равен 0, потом результат ксора записывается в статическую переменную по адресу 0x7FF793F43080 ( я ее пометил как number ) , прыгаем на r12.
Из всего кода после джампа важна только инструкция "MOV QWORD PTR DS:[0x00007FF793F43040], 0x1", доходим до прыжка, видим что по адресу 0x7FF793F41144 в xmm1 закидывается r11 ( в который перед этим закидывается наш const_pass в котором находится число 1 ), прыгаем опять в джамп.
Попадаем сюда -
тут к регистру xmm0 , прибавляется xmm1 ( в котором находится 1 ) , потом результат закидывается в number , прыгаем пару раз на джампы до тех пор пока по адресу 0х7FF793F417CD не увидим "CMP RBX, 0x1" , это и есть проверка на пароль .
В итоге суть логики в том , вы вводите пароль , он ксорится с 'h' ( 0x68 ) и в xmm0 регистре остается результат ( если пароль правильный - 0, в другом случае значение будет не 0 ) и после этого к регистру прибавляется 1, и сравнивается.