Taiwan Опубликовано 23 марта, 2017 Поделиться Опубликовано 23 марта, 2017 (изменено) Это мой самый, первый в жизни проект на "VS C++" да и вообще на ".Net". Что-то впечатлений 0 - походу зря, я заразился от "partoftheworlD" и "Garik66 с его С++ом" Скрытый текст Условия задачи: ¤ Нельзя патчить байты. ¤ Нельзя дампить проект. ¤ Нельзя пользоваться MSM-ом. Необходимо: Ввести правильный пароль и узнать цвет лампочки на панели "Статус" при успешном входе. После выполнение задачи, отписать в теме: Правильный пароль + цвет лампочки и по возможности - описать действия выполненной задачи. Проект пакован! так как , после компиляции проекта, решил пропустить его через IDA. От увиденного у меня волосы чуть не выпали, хоть бери и копируй все, создавай новый проект в "VS", 90% можно сказать исходника, может я рукож.... не настроил компилятор проекта, не знаю. Одно слово: "Первый проект" Unlock_Me_By_Taiwan VirusTotal MetaDefender Условия задачи: те же, что и в первой версии. - (srg91 ) Необходимо: Ввести правильный пароль. Примечание: На этот раз, проект не пакован, не чем! - (правильно введенный пароль не закрывает программу.) Unlock Me [v2] By Taiwan VirusTotal MetaDefender Изменено 25 марта, 2017 пользователем Taiwan 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ШАРИК Опубликовано 23 марта, 2017 Поделиться Опубликовано 23 марта, 2017 хе. MFC не вывозит ... Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 23 марта, 2017 Поделиться Опубликовано 23 марта, 2017 (изменено) Молодец, запаковал так, что не от чего оттолкнутся. Единственная возможно реальная строка про виртуальную машину с тонной мусора.А сам после паковки смог открыть или даже пытаться не стоит? Все функции которые используются берутся с помощью RtlInitString, типа как GetProcAddress, только опасней. Изменено 23 марта, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
srg91 Опубликовано 23 марта, 2017 Поделиться Опубликовано 23 марта, 2017 Упс, сначала читай - потом делай. Сдампил, посмотрел код, после этого внимательно прочитал задание ) Эх )) Ссылка на комментарий Поделиться на другие сайты Поделиться
Taiwan Опубликовано 23 марта, 2017 Автор Поделиться Опубликовано 23 марта, 2017 2 часа назад, ШАРИК сказал: хе. MFC не вывозит ... Это ты о чем, точнее к чему? 2 часа назад, partoftheworlD сказал: А сам после паковки смог открыть или даже пытаться не стоит? Смог, если бы я не запаковал - ты бы выложил не только пароль ну и почти весь исходник) 41 минуты назад, srg91 сказал: Упс, сначала читай - потом делай. Сдампил, посмотрел код, после этого внимательно прочитал задание ) Эх )) Бывает)) пароль и цвет лампочки после успешной авторизации - можешь в теме выложить. Ссылка на комментарий Поделиться на другие сайты Поделиться
srg91 Опубликовано 23 марта, 2017 Поделиться Опубликовано 23 марта, 2017 Just now, Taiwan said: Бывает)) пароль и цвет лампочки после успешной авторизации - можешь в теме выложить. Ну, раз задание с не дампить - подождем решения ) Могу скинуть в личку. Ссылка на комментарий Поделиться на другие сайты Поделиться
Taiwan Опубликовано 23 марта, 2017 Автор Поделиться Опубликовано 23 марта, 2017 1 минуту назад, srg91 сказал: Ну, раз задание с не дампить - подождем решения ) Могу скинуть в личку. Оставь, подождем еще))) Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 24 марта, 2017 Поделиться Опубликовано 24 марта, 2017 (изменено) 12 часа назад, Taiwan сказал: Оставь, подождем еще))) Всю ночь проковырял unlockme, так и не нашел от чего можно оттолкнуться, распаковал посмотрел как все утроено, опять пробовал в запакованном виде и не смог ничего сделать. Чувствую себя тупым. Изменено 24 марта, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Taiwan Опубликовано 24 марта, 2017 Автор Поделиться Опубликовано 24 марта, 2017 13 часа назад, srg91 сказал: Ну, раз задание с не дампить - подождем решения ) Могу скинуть в личку. 49 минуты назад, partoftheworlD сказал: Всю ночь проковырял unlockme, так и не нашел от чего можно оттолкнуться, распаковал посмотрел как все утроено, опять пробовал в запакованном виде и не смог ничего сделать. Чувствую себя тупым. Можете выкладывать - что нарыли) Ссылка на комментарий Поделиться на другие сайты Поделиться
ШАРИК Опубликовано 24 марта, 2017 Поделиться Опубликовано 24 марта, 2017 14 часа назад, Taiwan сказал: Это ты о чем, точнее к чему? К тому , что ты используешь в своём проекте библиотеку MFC , и она не вывозит ... Ссылка на комментарий Поделиться на другие сайты Поделиться
Taiwan Опубликовано 24 марта, 2017 Автор Поделиться Опубликовано 24 марта, 2017 12 минуты назад, ШАРИК сказал: К тому , что ты используешь в своём проекте библиотеку MFC , и она не вывозит ... На сколько я помню, я создавал проект на основе CLI а не, на MFC. Ты наверно, что-то путаешь))) Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 24 марта, 2017 Поделиться Опубликовано 24 марта, 2017 (изменено) 4 часа назад, Taiwan сказал: Можете выкладывать - что нарыли) Все же допер, в общем я и правда тупой, после подключение отладчика и долгих танцев с бубном получилось изменить процессор на Microsoft Visual Studio .Net c MetaPC, а после тон мусора будут строки "Taiwan(*.?)GameHackLab" и "Lang-/-s+1'_M1_Ты_Молодца)))*" в юникоде который надо включить ПМК -> setup - -> setup sting window. Проверка типа, если настоящий пароль == введенному, то установить 1 флагу лампочки и если состояние лампочки не равно 1, то рисовать картинку номер 1, а если равно 1, то картинку номер 2. Вот только не понимаю как передается пароль и откуда, у меня отладчик начал выпендриваться после смены процессора. По статичному коду, ясно что там используется что-то типа поиска и использования объекта ссылка которого находится на стеке вычислений с передачей this->TextBox2 после ввода. Было сложно, но мне понравилось, спасибо за интересный Unlockme, плюс понял что в реверсе приложений с использованием .net форм я дно. Небольшой псевдокод написал ну как работает эта функция по моему восприятию. Скрытый текст void PressButton(this) { auto lamp_flag = 0 setText(this->input_login, Taiwan(*.?)GameHackLab); GetText(this->input_password); if(!strcmp(this->input_passoword, "Lang-/-s+1'_M1_Ты_Молодца)))*'")) { lamp_flag = 1; if(lamp_flag == 1) { DrawPic(lamp_1.png); } else { DrawPic(lamp_2.png); } } } UPD Не стал проверять найденные строки как пароль, просто думал, что строка про молодца, это будет сообщение об успешном выполнении. Изменено 24 марта, 2017 пользователем partoftheworlD 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
Taiwan Опубликовано 24 марта, 2017 Автор Поделиться Опубликовано 24 марта, 2017 (изменено) 57 минут назад, partoftheworlD сказал: Было сложно, но мне понравилось, спасибо за интересный Unlockme, плюс понял что в реверсе приложений с использованием .net форм я дно. По сути, тут сложного не чего нет - так как ".Net" формы, ломаются на много проще! чем та же форма на KTV. По сему "Net" приложения спасают только пакеры, и то....... Если бы, я вчера не разочаровался в чистом билде Net приложения, я его не паковал не чем.... Что это, за VS 2017 да и другие версии - после которых 90% исходника можно вытащить с помощью всяких дебагеров, По этому, после вчерашней попытки начать изучение C++ завершилось после того как скомпилировал первый свой софт. Скрытый текст private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { if (a->Text == "Taiwan(*.?)GameHackLab" , b->Text == "Lang-/-s+1'_M1_Ты_Молодца)))*'") // Сравниваем веденные данные в TexBox-ах { c->Enabled = true; // Если все норм, включаем 3-тию Picture которая находится за формой - (специально сделал один Jump для DISM - то есть для запутывание) } if (c->Enabled == true) // Если Picture включена, делаем следущее. { pictureBox2->Enabled = true; // Опять же для Jump в DISM pictureBox2->Visible = true; // тут включаем видимость лампочки которая загорается после успешного входа. } else // Исключение { pictureBox2->Enabled = false; pictureBox2->Visible = false; } } Не пакованный проект в IDA: Скрытый текст Пакованный: Вот исходя из этого ты должен был отталкиваться. Скрытый текст Изменено 24 марта, 2017 пользователем Taiwan Ссылка на комментарий Поделиться на другие сайты Поделиться
srg91 Опубликовано 24 марта, 2017 Поделиться Опубликовано 24 марта, 2017 (изменено) 5 hours ago, Taiwan said: Можете выкладывать - что нарыли) ну тут и так уже всё рассказали, я просто дампнул процесс через PETools и открыл через ILSpy => cкопировал строку с результатом и проверил. После этого прочитал, что дампить нельзя )) Собственно, если код не обфусцирован - то после ILSpy всё как на ладони. Да и после обфусцирования тоже - Knock-knock более менее ломается даже так: Spoiler Изменено 24 марта, 2017 пользователем srg91 Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 24 марта, 2017 Поделиться Опубликовано 24 марта, 2017 (изменено) 26 минуты назад, Taiwan сказал: Что это, за VS 2017 да и другие версии - после которых 90% исходника можно вытащить с помощью всяких дебагеров Ну если ты запускал в IDA она нашла и подгрузила pdb файл с отладочной информацией по этому у тебя все подписано было, плюс с настройками комплилятора можно поиграться. Вот ида подгружает pdb А вот без него Изменено 24 марта, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Taiwan Опубликовано 24 марта, 2017 Автор Поделиться Опубликовано 24 марта, 2017 2 минуты назад, partoftheworlD сказал: Ну если ты запускал в IDA есть вероятность, что она нашла и подгрузила pdb файл с отладочной информацией по этому у тебя все подписано было, плюс с настройками комплилятора можно поиграться. Не, "pdb" не подгружает, только что проверил. Скорее всего в настройках проекта что-то,вообщем как сидел я на Delphi - 7 лет, так и дальше буду сидеть. Манал я этот VS Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 24 марта, 2017 Поделиться Опубликовано 24 марта, 2017 (изменено) 6 минут назад, Taiwan сказал: Не, "pdb" не подгружает, только что проверил. Скорее всего в настройках проекта что-то,вообщем как сидел я на Delphi - 7 лет, так и дальше буду сидеть. Манал я этот VS Я просто удаляю *,pdb из папки в которую компилировалась релиз версия программы. Изменено 24 марта, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Taiwan Опубликовано 24 марта, 2017 Автор Поделиться Опубликовано 24 марта, 2017 2 минуты назад, partoftheworlD сказал: Я просто удаляю *,pdb из папки в которую компилировалась релиз версия программы. Только что, удалил. Ничего не изменилось((( Да по весу в 114 кб. понять можно что - он VS ничего не шифрует. Если бы VS хоть как-то шифровал, вес программы был бы больше. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 24 марта, 2017 Поделиться Опубликовано 24 марта, 2017 41 минуты назад, Taiwan сказал: вообщем как сидел я на Delphi - 7 лет, так и дальше буду сидеть. Манал я этот VS Да на любом языке можно подобные вещи делать. Вот к примеру со мной Хипхо поделился очень красивой вещью с первого взгляда и не скажешь, что она на дельфи забабахана. _pztrain.exe Ссылка на комментарий Поделиться на другие сайты Поделиться
Taiwan Опубликовано 24 марта, 2017 Автор Поделиться Опубликовано 24 марта, 2017 2 минуты назад, LIRW сказал: Да на любом языке можно подобные вещи делать. Вот к примеру со мной Хипхо поделился очень красивой вещью с первого взгляда и не скажешь, что она на дельфи забабахана. _pztrain.exe Чистый Win API ))) Последний раз, я писал - даже не помню когда Ссылка на комментарий Поделиться на другие сайты Поделиться
ШАРИК Опубликовано 24 марта, 2017 Поделиться Опубликовано 24 марта, 2017 1 час назад, Taiwan сказал: вообщем как сидел я на Delphi - 7 лет, так и дальше буду сидеть. Манал я этот VS Есть c++ builder ))) там тоже vcl Ссылка на комментарий Поделиться на другие сайты Поделиться
Taiwan Опубликовано 24 марта, 2017 Автор Поделиться Опубликовано 24 марта, 2017 46 минуты назад, ШАРИК сказал: Есть c++ builder ))) там тоже vcl Причем тут "C++ Builder" и "VCL библиотеки" ?, для начала научись, читать тело "Темы" и сообщение всех участников - оставивших в данной теме. Только потом отвечай или советуй. (Не прими, как за наезд или что-то подобное). Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 25 марта, 2017 Поделиться Опубликовано 25 марта, 2017 Юху новое задание Ссылка на комментарий Поделиться на другие сайты Поделиться
srg91 Опубликовано 25 марта, 2017 Поделиться Опубликовано 25 марта, 2017 (изменено) Второе задание - готово. Не открывал не IDA, ничем. Использовал небольшой, как со вторым TrainMe и датой ) Под спойлером напишу как взламывал. Spoiler Ну, так как мы знаем, что Taiwan пишет на нашем любимом Delphi и ничего не запаковано - значит мы вооружены Первым путем попробовал сделал так - нашел операцию сравнения - в Delphi это отдельный call. Чтобы выяснить как он выглядит просто компилим минимальный проект с if A = B then и смотрим что внутри этого call. Найдя эту функцию в Unlock Me ставим бряк и аккуратно отфильтровываем все использования этой функции. Я умудрился профукать её вызов в проверке, поэтому пошел по другому. Я нашел компоненты на форме через поиск TLabel в памяти, увидел что используется IdEncoderXXE. Это стандартный Indy компонент, а значит можно предположить что использован IdEncodeXXE.Encode Собственно, ищем его так же как и функцию сравнения и ставим бряк. Таким образом и попадаем на OnClick кнопки. А дальше видим, что вызывается та же функция сравнения, где в случае не выполнения условия Edit.Text == IdEncodeXXE.Encode(0xA0) приложение завершает работу. Ну и в аргументах функции сравнения видим наш пароль Пароль (шифранул в base64, чтобы не спойлерить): LWMrKys= Изменено 25 марта, 2017 пользователем srg91 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения