+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 20 of 22

Thread: Получение исходников с помощью .Net Reflector

  1. #1
    dahaka's Avatar

    Message Получение исходников с помощью .Net Reflector

    Хотел сегодня записать скринкаст, но быстро остыл, так что ловите очередную статью из цикла "Easy crack", цикла, который доказывает, что для взлома даже серьезных(на первый взгляд) программ не обязательно владеть отладчиком, как дирижер палочкой. Сегодня на повестке дня у нас получение исходных кодов "серьезной" программы. Конечно серьезной, ведь совсем недавно ее ценник находился в районе 300 мертвых енотов. Название ей - OSP(Odnoklassniki spamer). Пользуясь случаем передаю привет explo1t'y, который мало того, что не умеет поддерживать свой софт, так еще и говнокодит.

    Начнем. Нам уже известен ЯП, на ктором написана программа(автор сам его нам сказал), это C#. Пораскинув мозгами, собрав их обратно предполагаем, что автор не извращенец и использовал .Net. Для начала проверим с помощью DiE не запакована ли наша программа. Нет, значит мы спокойно можем скачивать .net reflector и пробовать декомпилировать с помощью него нашу программу.

    Для справки:
    .NET Reflector

    Материал из Википедии — свободной энциклопедии

    .NET Reflector — бесплатная утилита для Microsoft .NET, комбинирующая браузер классов, статический анализатор и декомпилятор, изначально написанная Lutz Roeder.

    Возможности

    Программа может использоваться для навигации, поиска и анализа содержимого .NET-компонентов, а также сборок и переводить двоичные данные в форму, пригодную для чтения человеком. Reflector позволяет производить декомпиляцию .NET-сборок на языки C#, Visual Basic .NET и MSIL. Reflector также включает дерево вызовов (англ. Call Tree), которое может использоваться для навигации вглубь IL-методов с целью определения, какие методы они вызывают. Программа отображает метаданные, ресурсы и XML-документацию. .NET Reflector может быть использован .NET-разработчиками для понимания внутренней работы библиотек кода, для наглядного отображения различий между двумя версиями сборки, и того, как различные части .NET-приложения взаимодействуют друг с другом.
    .NET Reflector может использоваться для нахождения мест, имеющих проблемы с производительностью и поиска багов. Он также может быть использован для поиска зависимостей сборки. Программа может быть использована для эффективной конвертации кода между C# и VB.NET.
    Скачиваем, запускаем, как обычно - File -> Open, видим следующее:





    Клик правой кнопкой мыши -> disassemble:





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





    Теперь остался один небольшой шаг, экспортируем проект для редактирования в удобной для нас среде. Правый клик на OSP -> Export, выбираем путь для сохранения нашего проекта и открываем его. Я использовал Microsoft Visual C# Express(распространяется бесплатно), но если вы по каким-то причинам не можете или не хотите ее скачивать, то предлагаю вам альтернативный вариант - Sharp Develop.




    Все готово, теперь нам осталось подредактировать код, исправить ошибки, которые выдаст студия при запуске(а она их выдаст) и наслаждаться проделанной нами работой.


    Update1: KSDR скинул интересный crackme, который идеально подходить для закрепления материала. Скачать с нашего сервера.



    Всегда ваш, dahaka. И помните - все не так сложно, как вам кажется.
    © r0 Crew
    Last edited by dahaka; 01-08-2010 at 14:51.

  2. 5 пользователя(ей) сказали cпасибо:
    Scorpius (21-10-2010) coldfire (07-12-2010) korsader (01-08-2010) root (31-07-2010) ximera (01-08-2010)
  3. #2
    korsader's Avatar

    Default Re: Получение исходников с помощью .Net Reflector

    Как сохранить изменения внесенные в программу с помощью reflexil? Что то у меня ник как не сохраняет.
    Спасибо.

  4. #3
    dahaka's Avatar

    Default Re: Получение исходников с помощью .Net Reflector

    [KSDR], рефлектор не меняет программу, нужно экспортировать проект, например, в visual studio, в ней отредактировать, а уже потом пытаться собрать программу.

  5. Пользователь сказал cпасибо:
    korsader (01-08-2010)
  6. #4
    korsader's Avatar

    Default Re: Получение исходников с помощью .Net Reflector

    Раньше можно было. Буду по старинке через IDA+HEX редактор.

  7. #5

    Default Re: Получение исходников с помощью .Net Reflector

    Специально регнулся, чтобы спросить, а если код в обусфакции, то что делать?

  8. #6
    dahaka's Avatar

    Default Re: Получение исходников с помощью .Net Reflector

    Если код обфусцирован, то скомпилировать код не получится, это точно. Тут придется работать руками через Reflector с плагином Reflexil, также можно добавить к этому списку Simple Assembly Explorer. А дальше уже стоит плясать в зависимости от обфускатора. Большинство из них создают пустые классы и методы, кодируют строки. В Simple Assembly Explorer есть функция деобфускации строк, которая часто помогает. Чтобы мы могли дать более развернутый ответ, неплохо было бы увидеть саму программую

  9. 2 пользователя(ей) сказали cпасибо:
    Dark Koder (05-02-2016) SeNaP (18-09-2010)
  10. #7

    Default Re: Получение исходников с помощью .Net Reflector

    Quote Originally Posted by dahaka View Post
    Если код обфусцирован, то скомпилировать код не получится, это точно. Тут придется работать руками через Reflector с плагином Reflexil, также можно добавить к этому списку Simple Assembly Explorer. А дальше уже стоит плясать в зависимости от обфускатора. Большинство из них создают пустые классы и методы, кодируют строки. В Simple Assembly Explorer есть функция деобфускации строк, которая часто помогает. Чтобы мы могли дать более развернутый ответ, неплохо было бы увидеть саму программую
    http://adobeundress.ru/undress.exe, вот она

  11. #8
    dahaka's Avatar

    Default Re: Получение исходников с помощью .Net Reflector

    SeNaP, надеюсь, вы в курсе, что она из себя представляет?

  12. #9

    Default Re: Получение исходников с помощью .Net Reflector

    Quote Originally Posted by dahaka View Post
    SeNaP, надеюсь, вы в курсе, что она из себя представляет?
    Конечно в курсе, вот я и хотел её поковырять

  13. #10
    dahaka's Avatar

    Default Re: Получение исходников с помощью .Net Reflector

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

  14. Пользователь сказал cпасибо:
    SeNaP (18-09-2010)
  15. #11

    Default Re: Получение исходников с помощью .Net Reflector

    Quote Originally Posted by dahaka View Post
    Ну что я могу сказать, мельком пробежался по внутренностям программы, ибо для более детального анализа этой программы под рукой нет виртуалки, обфускатор с первого взгляда определить не удалось, но встроенный деобфускатор SAE должен помочь. Ну а дальше анализируем так же, как и любую другую программу.
    Спасибо огромное

  16. #12

    Default Re: Получение исходников с помощью .Net Reflector

    Доброго времени суток. Такой вопрос есть. Пользуясь возможностями нет рефлектора получил исходный код одной небольшой программы-бота, но главная форма в студии почему-то не отображается и ее исходный код не читаем. Это из-за обфуксации, или может я что-то не так делаю? Какой совет можете дать? Заранее спасибо.

  17. #13
    REU's Avatar

    Default Re: Получение исходников с помощью .Net Reflector

    Бггг. Второй скрин доставляет.

    Ты вообще с программированием хоть каким-то знаком?

    А для чего было замазывать BenderSkyM ?
    Last edited by REU; 04-02-2016 at 22:12.
    радар - говно

  18. #14

    Default Re: Получение исходников с помощью .Net Reflector

    Это из-за обфускации, и что-то не так деланья. Деобфусцируем, благо инструменты есть, и делаем что-нибудь так. А зачем неймспейсы замазывать?

  19. #15
    ximera's Avatar

    Default Re: Получение исходников с помощью .Net Reflector

    Прям анекдот про ошибку в коде вспомнил. Обфускация при помощи лени разбирающего)))
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

  20. #16

    Default Re: Получение исходников с помощью .Net Reflector

    Знаком весьма слабо, потому и написал, в надежде что меня развернут носом в нужном направлении, помогут словом или делом.
    А что именно не так деланья? Про обфуксацию/деобфуксацию пошел читать.
    Ну а про неймспейсы можете не спрашивать, тут свои тараканы.

  21. #17

    Default Re: Получение исходников с помощью .Net Reflector

    Ну так надо ж сначала деобфусцировать.. А еще раньше посмотреть, чем обфусцировано. Потому и вышло наперекосяк. Поэтому все остальное деланье дальше смысла не имеет

  22. #18

    Default Re: Получение исходников с помощью .Net Reflector

    Quote Originally Posted by Nick Sm View Post
    Ну так надо ж сначала деобфусцировать.. А еще раньше посмотреть, чем обфусцировано. Потому и вышло наперекосяк. Поэтому все остальное деланье дальше смысла не имеет
    Деобфусцируется исполняемый файл? И как можно выяснить, чем проводилась обфускация? Может есть какие-то полезные ссылки по данному вопросу, где я могу подробнее прочитать об этом?

  23. #19
    A.P.$lasH's Avatar

    Default Re: Получение исходников с помощью .Net Reflector

    Quote Originally Posted by madness.ua View Post
    И как можно выяснить, чем проводилась обфускация? Может есть какие-то полезные ссылки по данному вопросу, где я могу подробнее прочитать об этом?

  24. 2 пользователя(ей) сказали cпасибо:
    Dark Koder (05-02-2016) madness.ua (10-02-2016)
  25. #20

    Default Re: Получение исходников с помощью .Net Reflector

    Quote Originally Posted by A.P.$lasH View Post
    Спасибо. Буду вникать. Может что-нибудь и получится.

+ Reply to Thread

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:39
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org