Сейчас на форуме: igorcauret, Rio (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Прошу помощи в исследовании простого CrackMe |
Посл.ответ | Сообщение |
|
Создано: 02 апреля 2015 17:05 · Поправил: BataDase · Личное сообщение · #1 Добрый день! Прошу помощи в наставлении на путь истинный в процессе исследования крэкми, который сам же и написал. Краткая предыстория: После успешного изучения здешних статей по исследованию знаменитых Fant0m CrackMe, а также программы BlueFace, решил вооружиться С#(в составе Visual Studio Community) который был "под боком" и быстренько сляпал окошко с кнопочкой, текстбоксом и баттоном, в событии ОнБатонКлик прописал единственное условие сравнение введённого пароля с правильным (заранее прописанным в исходниках). При правильном\неправильном пароле выдаётся соответствующий MessageBox, короче всё по стандарту. Загрузил всё это дело в OllyDbg 1.10 и решил посмотреть на предмет текстовых строк из мессадж боксов, но не тут то было, ни Оля ни W32Dasm не видят в проге никакого текста. Ок, поставил брэйкпоинт на MessageBoxW, он сработал, в окне справа от дампа памяти я увидел загруженный текст о неверном пароле, но в отличии от тех примеров которые я разбирал ранее где мы вываливались в модуль User32 и можно было посмотреть из какого места главной программы мы сюда попали (CALL to MessageBoxA from CRACKME1.004012A9), то тут выдаётся такая строчка (CALL to MessageBoxW from System_W.6AC9511E). Когда я перешёл в System_W.6AC9511E то не смог найти там что-либо "полезное", да и вообще не уверен тут ли искать... Отсюда родился вопрос про модули: почему когда мы загружаем в Олли например Fant0m crackme1, то изначально попадаем в [CPU - main thread, module CRACKME1], а когда я загружаю свою прожку, то попадаю в какой-то [CPU - main thread, module KERNELBA]. Вобщем всё это навело меня на мысль что может быть я вообще зря парюсь и методы изложенные в старых статьях исследовании классических крякми не работают для прог скомпиленых в современных .net студиях, а может я уже брежу ![]() Что больше всего радует, то если просто кинуть exe'шник в txt документ, то мы увидим и частично код программы и сообщения о верном\неверном пароле и собственно сам пароль ![]() Саму прожку естесс-но приаттачил к этому сообщению. ![]() ![]() |
|
Создано: 02 апреля 2015 17:27 · Поправил: v00doo · Личное сообщение · #2 BataDase, для всего есть свой инструмент: Code:
https://exelab.ru/f/action=vthread&forum=3&topic=23387 https://exelab.ru/f/action=vthread&forum=1&topic=16650 И сразу на тему Strong Name погуглите. ![]() |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 02 апреля 2015 17:32 · Личное сообщение · #3 BataDase пишет: Прошу помощи в наставлении на путь истинный в процессе исследования крэкми, который сам же и написал. Ж-ж-железно! ![]() BataDase пишет: решил вооружиться С#(в составе Visual Studio Community) BataDase пишет: ни Оля ни W32Dasm не видят в проге никакого текста С# и OllyDbg/W32Dasm немного не совместимые вещи, ибо байткод! Начните писать на С++, чтобы вьехать в суть реверсинга. ![]() |
|
Создано: 02 апреля 2015 17:39 · Личное сообщение · #4 v00doo пишет: BataDase, для всего есть свой инструмент: С этим я полностью согласен, и про декомпиляторы конечно в курсе, более того для данного крэкми, как я писал в изначальном сообщении, можно поступить ещё проще кинув его в окно блокнота и увидев там пароль, но мне бы всё же хотелось "взломать" его с помощью дебаггера, в данном случае Olly дабы лучше понять работу именно с ним. Давайте предположим что декомпилятор нам ничего не дал... (как в случае с хорошими CrackMe) ![]() |
|
Создано: 02 апреля 2015 17:47 · Личное сообщение · #5 |
|
Создано: 02 апреля 2015 17:48 · Поправил: BataDase · Личное сообщение · #6 ELF_7719116 пишет: С# и OllyDbg/W32Dasm немного не совместимые вещи, ибо байткод! Ок. Тобишь я почти угадал когда писал что старые методы не подходят для относительно новых языков. Правильно ли я понял что в случае с программами на С# метод поиска пароля\обхода защиты путём дебаггинга абсолютно не подходит? А если я напишу тоже самое но на Visual С++ (из состава той же студии), тогда смело можно использовать Olly? Если это так, то что мы можем использовать для исследования программ на байткоде, декомпиляторы? Что-нибудь ещё? ![]() |
|
Создано: 02 апреля 2015 17:56 · Поправил: v00doo · Личное сообщение · #7 BataDase, никто вам не будет персонально рассказывать все, по ссылкам достаточно много информации, в том числе и про отладку NET приложений. Байткод так или иначе исполняется фреймворком, если вам хочется потратить огромное количество времени, отлавливая опкоды, которые уже разобрали, то используйте Olly. Если вы хотите покопаться в байткоде аппы, киньте свой exe в IDA. v00doo пишет: для всего есть свой инструмент ELF_7719116 пишет: Начните писать на С++, чтобы вьехать в суть реверсинга. Суть меняться не будет в дальнейшем, разве что инструменты. ![]() |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 02 апреля 2015 17:57 · Личное сообщение · #8 BataDase https://ru.wikipedia.org/wiki/Байт-код https://ru.wikipedia.org/wiki/Common_Language_Runtime https://ru.wikipedia.org/wiki/Low_Level_Virtual_Machine BataDase пишет: Тобишь я почти угадал когда писал что старые методы не подходят для относительно новых языков Нет! Платформа .NET (он же С#, он же Visual Basic.NET...) это отдельная ветка развития языков программирования и непосредственно к ассемблеру она отношения не имеет. Грубо говоря, что-то посередине (вирутальаня машина) между ассемблером и высокоуровневым языком. Свои законы-свои инструменты, как сказал v00doo. ![]() |
|
Создано: 02 апреля 2015 20:57 · Личное сообщение · #9 BataDase хе хе. Я свой первый .Net PE тоже на OllyDbg смотрел, и даже смог найти пароль (на второй день) который xor`рился из строки в сорцах. Потом ткнули пальцем на спец. проги для этого, прям как и сейчас тебе. И это было 3 года назад. И да, не выкладывай сюда свой "крутой" крэкМи, последние все облажались. Net по умолчанию DEP + ASLR (Vista+). Если хочешь именно ASM, да тут C/C++ и Рихтер с его книгой про win32. Но коли нравится синтаксис C#, то знай, скоро будет NetNative (свои грабли) https://msdn.microsoft.com/ru-ru/vstudio/dotnetnative.aspx. И в Win10 они будут работать как обычные приложения (обещают). Но все это для изучения технологии работы. Что выбирать смотри по вкусу и вакансиям, деньги деньги дребеденьги. ![]() |
|
Создано: 03 апреля 2015 05:53 · Поправил: unknownproject · Личное сообщение · #10 Если бы человек почитал справку к Olly, то знал бы, что ее автор никогда не собирался реализовывать поддержку шарпа.Шарповый код переводится декомпиляторами ( в т.ч. и штатным от Майкрософт) в исходный, поэтому многие юзают стороннюю обфускацию. Вспомнился мне один случай.Чел попросил написать ему кракми на делфи.Минута, накидал ему кракми и скинул.Спустя час он мне пишет, что не смог решить.Я ему скидываю полностью код процедуры OnClick кнопки - никакого эффекта.Понятие "старые языки" вообще убило.Языки и среды развиваются, обрастая функционалом.Шарп - это 30ая почка языка си, как и прочие жавы с андроидами.Он вторичен.Пока есть многоплатформенность, линь и консоли, а они всегда будут, то си никогда не умрет, а шарп вполне, потому что для его работы еще нужно тянуть фреймворк необходимой версии, что весьма неудобно. ----- TEST YOUR MIGHT ![]() |
|
Создано: 03 апреля 2015 15:46 · Поправил: BataDase · Личное сообщение · #11 Alinator3500 пишет: Что выбирать смотри по вкусу и вакансиям, деньги деньги дребеденьги. Ну тут дело не в дребеденьгах, работаю в сфере информационной безопасности, и по совместительству пишу вспомогательный софт на шарпе, а всё что связано с ассемблером, реверсингом это планируется как хобби. Всем спасибо за разъяснения и материал, буду изучать. И всё же ещё остался маленький вопросик, мне интересно если этот же крэкми написать в этой-же студии, но использую Visual C++ -> Win32Progect, то его можно будет успешно исследовать методами OllyDbg или тут как бы вся студия под .NET заточена? ![]() |
|
Создано: 03 апреля 2015 16:02 · Личное сообщение · #12 |
|
Создано: 03 апреля 2015 16:05 · Поправил: unknownproject · Личное сообщение · #13 Ваш мегакодес не запускается на XP (характеристики показали, что поддержка дристы и выше), а ниже и подавно.Можете счесть это за троллинг, но я собирал свой трейнер, написанный на делфи, под 64 битной вин 7 и он, внезапно, работал на всех осях, начиная с Win98, которую официально даже игра, для которой он писался, поддерживала.Споры насчет того на чем кодить не имеют никакого смысла, так как майкрософт своих же программистов кастрирует в плане совместимости собираемого под старшими осями кода. Теперь и на XP будет работать. ![]() ----- TEST YOUR MIGHT ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Прошу помощи в исследовании простого CrackMe |