Сейчас на форуме: igorcauret, Rio (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Прошу помощи в исследовании простого CrackMe
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 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 документ, то мы увидим и частично код программы и сообщения о верном\неверном пароле и собственно сам пароль

Саму прожку естесс-но приаттачил к этому сообщению.


c3d4_02.04.2015_EXELAB.rU.tgz - BataCrackMe.exe



Ранг: 80.6 (постоянный), 194thx
Активность: 0.10.04
Статус: Участник

Создано: 02 апреля 2015 17:27 · Поправил: v00doo
· Личное сообщение · #2

BataDase, для всего есть свой инструмент:
Code:
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3.          if (this.textBox1.Text == "Pa$$w0rd")
  4.          {
  5.                  MessageBox.Show("Wow! You Crack it!");
  6.                  return;
  7.          }
  8.          MessageBox.Show("Wrong password!");
  9. }

https://exelab.ru/f/action=vthread&forum=3&topic=23387
https://exelab.ru/f/action=vthread&forum=1&topic=16650

И сразу на тему Strong Name погуглите.

| Сообщение посчитали полезным: BataDase

Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 02 апреля 2015 17:32
· Личное сообщение · #3

BataDase пишет:
Прошу помощи в наставлении на путь истинный в процессе исследования крэкми, который сам же и написал.

Ж-ж-железно!

BataDase пишет:
решил вооружиться С#(в составе Visual Studio Community)

BataDase пишет:
ни Оля ни W32Dasm не видят в проге никакого текста

С# и OllyDbg/W32Dasm немного не совместимые вещи, ибо байткод! Начните писать на С++, чтобы вьехать в суть реверсинга.



Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 апреля 2015 17:39
· Личное сообщение · #4

v00doo пишет:
BataDase, для всего есть свой инструмент:


С этим я полностью согласен, и про декомпиляторы конечно в курсе, более того для данного крэкми, как я писал в изначальном сообщении, можно поступить ещё проще кинув его в окно блокнота и увидев там пароль, но мне бы всё же хотелось "взломать" его с помощью дебаггера, в данном случае Olly дабы лучше понять работу именно с ним. Давайте предположим что декомпилятор нам ничего не дал... (как в случае с хорошими CrackMe)



Ранг: 80.6 (постоянный), 194thx
Активность: 0.10.04
Статус: Участник

Создано: 02 апреля 2015 17:47
· Личное сообщение · #5

BataDase, вам ELF_7719116 сказал все правильно:
ELF_7719116 пишет:
С# и OllyDbg/W32Dasm немного не совместимые вещи, ибо байткод! Начните писать на С++, чтобы вьехать в суть реверсинга.

А дальше сами уже разберетесь.



Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 апреля 2015 17:48 · Поправил: BataDase
· Личное сообщение · #6

ELF_7719116 пишет:
С# и OllyDbg/W32Dasm немного не совместимые вещи, ибо байткод!


Ок. Тобишь я почти угадал когда писал что старые методы не подходят для относительно новых языков.

Правильно ли я понял что в случае с программами на С# метод поиска пароля\обхода защиты путём дебаггинга абсолютно не подходит?
А если я напишу тоже самое но на Visual С++ (из состава той же студии), тогда смело можно использовать Olly?
Если это так, то что мы можем использовать для исследования программ на байткоде, декомпиляторы? Что-нибудь ещё?



Ранг: 80.6 (постоянный), 194thx
Активность: 0.10.04
Статус: Участник

Создано: 02 апреля 2015 17:56 · Поправил: v00doo
· Личное сообщение · #7

BataDase, никто вам не будет персонально рассказывать все, по ссылкам достаточно много информации, в том числе и про отладку NET приложений.
Байткод так или иначе исполняется фреймворком, если вам хочется потратить огромное количество времени, отлавливая опкоды, которые уже разобрали, то используйте Olly.
Если вы хотите покопаться в байткоде аппы, киньте свой exe в IDA.
v00doo пишет:
для всего есть свой инструмент

ELF_7719116 пишет:
Начните писать на С++, чтобы вьехать в суть реверсинга.

Суть меняться не будет в дальнейшем, разве что инструменты.



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.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.



Ранг: 46.8 (посетитель), 20thx
Активность: 0.040
Статус: Участник

Создано: 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 они будут работать как обычные приложения (обещают). Но все это для изучения технологии работы.

Что выбирать смотри по вкусу и вакансиям, деньги деньги дребеденьги.



Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

Создано: 03 апреля 2015 05:53 · Поправил: unknownproject
· Личное сообщение · #10

Если бы человек почитал справку к Olly, то знал бы, что ее автор никогда не собирался реализовывать поддержку шарпа.Шарповый код переводится декомпиляторами ( в т.ч. и штатным от Майкрософт) в исходный, поэтому многие юзают стороннюю обфускацию.
Вспомнился мне один случай.Чел попросил написать ему кракми на делфи.Минута, накидал ему кракми и скинул.Спустя час он мне пишет, что не смог решить.Я ему скидываю полностью код процедуры OnClick кнопки - никакого эффекта.Понятие "старые языки" вообще убило.Языки и среды развиваются, обрастая функционалом.Шарп - это 30ая почка языка си, как и прочие жавы с андроидами.Он вторичен.Пока есть многоплатформенность, линь и консоли, а они всегда будут, то си никогда не умрет, а шарп вполне, потому что для его работы еще нужно тянуть фреймворк необходимой версии, что весьма неудобно.

-----
TEST YOUR MIGHT




Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 апреля 2015 15:46 · Поправил: BataDase
· Личное сообщение · #11

Alinator3500 пишет:
Что выбирать смотри по вкусу и вакансиям, деньги деньги дребеденьги.


Ну тут дело не в дребеденьгах, работаю в сфере информационной безопасности, и по совместительству пишу вспомогательный софт на шарпе, а всё что связано с ассемблером, реверсингом это планируется как хобби.

Всем спасибо за разъяснения и материал, буду изучать.

И всё же ещё остался маленький вопросик, мне интересно если этот же крэкми написать в этой-же студии, но использую Visual C++ -> Win32Progect, то его можно будет успешно исследовать методами OllyDbg или тут как бы вся студия под .NET заточена?



Ранг: 42.2 (посетитель), 42thx
Активность: 0.040
Статус: Участник

Создано: 03 апреля 2015 16:02
· Личное сообщение · #12

BataDase пишет:
работаю в сфере информационной безопасности, и по совместительству пишу вспомогательный софт на шарпе,


BataDase пишет:
или тут как бы вся студия под .NET заточена?


0_o



Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

Создано: 03 апреля 2015 16:05 · Поправил: unknownproject
· Личное сообщение · #13

Ваш мегакодес не запускается на XP (характеристики показали, что поддержка дристы и выше), а ниже и подавно.Можете счесть это за троллинг, но я собирал свой трейнер, написанный на делфи, под 64 битной вин 7 и он, внезапно, работал на всех осях, начиная с Win98, которую официально даже игра, для которой он писался, поддерживала.Споры насчет того на чем кодить не имеют никакого смысла, так как майкрософт своих же программистов кастрирует в плане совместимости собираемого под старшими осями кода.

Теперь и на XP будет работать.

6493_03.04.2015_EXELAB.rU.tgz - BataCrackMe_.rar

-----
TEST YOUR MIGHT



 eXeL@B —› Вопросы новичков —› Прошу помощи в исследовании простого CrackMe
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати