Сейчас на форуме: tyns777, cppasm, dutyfree (+7 невидимых)

 eXeL@B —› Вопросы новичков —› CrackMe .Net
Посл.ответ Сообщение

Ранг: 7.5 (гость)
Активность: 0.030
Статус: Участник

Создано: 25 сентября 2017 02:05 · Поправил: skew
· Личное сообщение · #1

Добрый день. Возникла необходимость подобрать серийный номер, например к почте test@mail.ru. Программа написана на .net C#. Деобфусцировал ее частично, стало куда понятней названия переменных, но каким-то образом в ней остались нативные функции от C++, как декомпиляторы их получают я понять не могу. Попытка переписать весь функционал не увенчалась успехом, так как эти структуры вроде как на C#, а вроде как и на C++ восстановить не могу.
Все основное происходит в функции Check и событие button2_OnClick. Там создается структура в типе unsafe и с ней происходят манипуляции.
Буду благодарен если поможете разобраться. Спасибо

a01d_25.09.2017_EXELAB.rU.tgz - EasyCrackme-cleaned.exe



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 25 сентября 2017 11:28 · Поправил: Medsft
· Личное сообщение · #2

skew пишет:
Программа написана на .net C#
программа НЕ написана на C#. Если Вы с помощью dnSpy, или спектора меняете визуализацию это не значит что это язык на котором писал разработчик. 100% верно будет лишь то утверждение что это manadged код.

P.S. Я например считаю что разработчик написал ее на VC++.NET) и поверьте у меня больше шансов оказаться правым (хотябы глядя на структуры)))).



Ранг: 7.5 (гость)
Активность: 0.030
Статус: Участник

Создано: 25 сентября 2017 17:28
· Личное сообщение · #3

Medsft пишет:
и поверьте у меня больше шансов оказаться правым

Я даже спорить с вами не стану. У меня опыта в реверсинге не так много, поэтому и обратился за помощью



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 25 сентября 2017 17:43
· Личное сообщение · #4

skew пишет:
Я даже ...
и это хорошо.
Представьте себе что структура которая для Вас непонятна это просто байт аррей и указатель в памяти на нее.
В режиме отладчика (dnSpy) открываете "Locals" находите struct и затем отображение ее памяти и увидите что одна это (ваша почта) другая (введенный пароль) а дальше уже станет понятно по названиям методов ))) в третьей скорее всего ключ (в открытом виде).
Как вариант поправить jz ->jzn (один байт) в методе button2_OnClick и получить "Succesful" если Вас это устроит



Ранг: 7.5 (гость)
Активность: 0.030
Статус: Участник

Создано: 25 сентября 2017 23:26 · Поправил: skew
· Личное сообщение · #5

Нужно именно пароль достать, просто Success не устроит. Это для одного этапа тестирования задание и нужно отправить почту и сгенерированный пароль, который будет подходить

Добавлено спустя 3 часа 18 минут
Убил 3 часа, в результате понял,что под почту test@mail.ru генерируется байт-код cb69cd596f305fa5f24a998a817a160a
Вроде как до 32 байт округляет длину пароля.

По мере чекания генерируется какой-то 32-байтовый кэш
13.96.250.167.84.229.41.10.209.138.95.6.174.226.177.13.1.5.223.231.164.105.58.173.166.6.182.125.2.209.220.13
Для чего он я таки не понял.

Затем все чистится и сгенерированный в программе "валидный кэш" пытается сделать проверку не с кэшем, а с паролем, который я вводил. А генерирует он вот такой вот кэш
f6aa967ecbc9c7a4ce212d471c8c6859

В общем я совсем запутался ) Помогите чуточку, пожалуйста


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


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