# руководство по взлому .NET программ

Тема в разделе "WASM.HEAP", создана пользователем kaspersky, 26 мар 2008.

  1. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    Статья по теме (by Daniel Pistelli, на итальянском)
    http://www.ntcore.com/Files/newcrack.htm

    PS. На сайте есть ещё кое что по реверсу дот-нета (англ/итал)
     
  2. rudik

    rudik Руденко Артём

    Публикаций:
    0
    Регистрация:
    6 дек 2006
    Сообщения:
    302
    Адрес:
    г. Харьков
    >> Зато ввели понятие "сборки", решыли проблему "ада dll",
    >с каких пор из дотнета нельзя вызывать DLL?
    Вызывать то можно, это собственно неуправляемый код. Я просто немного не об этом говорил. Ну например есть какаято библиотека версии 2.0.0 со своим набором функций. Потом програмисты чтото дописали, чтото убрали - получилась 2.0.2. На том коде, что убрали из библиотеки например работала програма х. После обновления dll она работать перестала. Это "ад dll", когда новая, не полностью совместимая со старой библиотекой, устанавливается в систему, удаляя старую.

    >> когда выделенная память превысит доступную физическую...
    >вообще-то намного раньше....
    Большие обьёмы памяти лучше всетаки оставить в ручном режыме:
    using(тут создали){тут используем}тут автоматический вызов "сборщика мусора"

    >> Отказ от указателей тоже смело
    >да никто от них не отказывался...
    >во всяком случае на уровне байт-кода, Си++.
    За С++ в .NET нада забыть(ИМХО).
    чем отличается:
    int a = 7;
    и
    int a = new int; a = 7;
    Первая переменная так званая "по значению", вторая - ссылочный тип.
    т.е в первом случае переменная а используется в стиле С++, т.е при запуске программы переменная создана и лежыт гдето в данных(например по адрессу 406004). Во втором а - обыкновеный покалеченый указатель. Он принимает адресс выделенного участка под переменную типа инт, + создается запись для сборщика мусора. В первом случае выделение памяти = 4 байта, во втором - 4 байта на указатель, 4 байта на выделение с кучи, минимум 8 байт для сборщика мусора, чтобы когда он запустится он ог проверить используется переменная а или нет. Естественно большой runtime, и тут лучше шагнуть назад в статику. Но такого с обьектами уже не проведеш, т.е рантайм будет всегда. Статически обьект создать нельзя. Осталась токо динамика.
    MyClass a;
    a.b = 7; // ошибка, а - указатель на не выделеную память

    MyClass a = new MyClass();
    a.b = 7; // a указывает на выделеную средой область памяти, ошыбки нет.
     
  3. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    > "Сборсчик мусора сам решит когда ему запустится",
    Им можно упровлять, или вообще отключить, или включать в ручную.

    > Отсюда следствие: деньги вложеные в .NET не вернулись,
    Ну почему. Ща токо все начинает набирать обороты.
    Студия например написана на net и офис новый.
    ДА mfc заброшен. Все силы на нет кинуты
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    kaspersky
    http://www.microsoft.com/SLPS/Default.aspx
    пробовал -- полет нормальный )
     
  5. slow_at_work

    slow_at_work New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    64
    нупочему, статьи такие есть.
     
  6. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    slow_at_work
    > нупочему, статьи такие есть.
    какие-то статьи есть, например, в туторалах на crackmes.de,
    но все как-то больше в разрозненном состоянии. ладно, мой
    туторал никому все равно не помешает, планирую собрать
    максимум инфы, минимум воды ;) полный цикл - дизасм,
    бит-хак, отладка. там, кстати, куча тонкостей дизасма.
    vs 2008 здорово отколняется от стандарта ;)

    censored
    спасибо большое! щас буду курить в этом направлении!!!
    с меня - пиво (виртуальное), ну а хакерская общественность
    получит еще один ман по взлому ;)

    SWR
    >> "Сборсчик мусора сам решит когда ему запустится",
    > Им можно упровлять, или вообще отключить, или включать в ручную.
    сильная сторона Си++ _отсуствие_ автоматической сборки мусора,
    еще никто не видел мусорщика, который бы не сосал, отключение же
    мусорщика в C# превращает его в черт знает что... тогда уж лучше
    на Си++ программить... надеюсь, ты в курсе, что многие выбирают
    Java как раз за то, что там есть сборка мусора и когда скорость
    некритична, а за утечки памяти - могут и побить, то Java - рулит ;)

    >> Отсюда следствие: деньги вложеные в .NET не вернулись,
    > Ну почему. Ща токо все начинает набирать обороты.
    хотелсь бы надеяться... я только-только раскачался,
    чтобы изучать .NET и будет обидно, если будет как с MFC

    > Студия например написана на net и офис новый.
    по поводу студии не скажу ничего (не юзаю, мне FAR + colorer ближе),
    офис используют 2k. там нету .NET'а, а про новый слышал много
    негативных отзывов... из программ, которые юзают .NET я навскидку
    могу вспомнить только януса (клиент для rsdn форумов, который
    я не использую из-за отсуствия .NET'а, не сильно от этого страдая).

    rudik
    > После обновления dll она работать перестала. Это "ад dll", когда новая,
    > не полностью совместимая со старой библиотекой, устанавливается
    > в систему, удаляя старую.
    хм. насколько я знаю .NET то у него бооольшие проблемы уже со своими же
    собственными библиотеками. так что ад dll никуда не делся... я даже некоторые
    примеры от самого мелкософта для vs 2005 на vs 2008 пытался откомпилить
    и получил фигу. типа не совместимы они, хоть ты тресни даже на уровне
    исходных кодов... ну и как дальше жить?!

    > За С++ в .NET нада забыть(ИМХО).
    возражения:
    1) в .NET'е есть куча вкусных библиотек, которых нет в Си++
    2) управляемый код в Си++ имеет свои плюсы (которых больше двух :derisive:

    по поводу указателей - на уровне байт-кода все не так уж и плохо.
    переменные по дефлоту лежат в стеке, объекты создаются в куче,
    и кстати большой шаг вперед у .NET'а - возможность создавать
    объекты на стеке (не в куче) не особо сильно извращась...
     
  7. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    slow_at_work
    > нупочему, статьи такие есть.
    какие-то статьи есть, например, в туторалах на crackmes.de,
    но все как-то больше в разрозненном состоянии. ладно, мой
    туторал никому все равно не помешает, планирую собрать
    максимум инфы, минимум воды ;) полный цикл - дизасм,
    бит-хак, отладка. там, кстати, куча тонкостей дизасма.
    vs 2008 здорово отколняется от стандарта ;)

    censored
    спасибо большое! щас буду курить в этом направлении!!!
    с меня - пиво (виртуальное), ну а хакерская общественность
    получит еще один ман по взлому ;)

    SWR
    >> "Сборсчик мусора сам решит когда ему запустится",
    > Им можно упровлять, или вообще отключить, или включать в ручную.
    сильная сторона Си++ _отсуствие_ автоматической сборки мусора,
    еще никто не видел мусорщика, который бы не сосал, отключение же
    мусорщика в C# превращает его в черт знает что... тогда уж лучше
    на Си++ программить... надеюсь, ты в курсе, что многие выбирают
    Java как раз за то, что там есть сборка мусора и когда скорость
    некритична, а за утечки памяти - могут и побить, то Java - рулит ;)

    >> Отсюда следствие: деньги вложеные в .NET не вернулись,
    > Ну почему. Ща токо все начинает набирать обороты.
    хотелсь бы надеяться... я только-только раскачался,
    чтобы изучать .NET и будет обидно, если будет как с MFC

    > Студия например написана на net и офис новый.
    по поводу студии не скажу ничего (не юзаю, мне FAR + colorer ближе),
    офис используют 2k. там нету .NET'а, а про новый слышал много
    негативных отзывов... из программ, которые юзают .NET я навскидку
    могу вспомнить только януса (клиент для rsdn форумов, который
    я не использую из-за отсуствия .NET'а, не сильно от этого страдая).

    rudik
    > После обновления dll она работать перестала. Это "ад dll", когда новая,
    > не полностью совместимая со старой библиотекой, устанавливается
    > в систему, удаляя старую.
    хм. насколько я знаю .NET то у него бооольшие проблемы уже со своими же
    собственными библиотеками. так что ад dll никуда не делся... я даже некоторые
    примеры от самого мелкософта для vs 2005 на vs 2008 пытался откомпилить
    и получил фигу. типа не совместимы они, хоть ты тресни даже на уровне
    исходных кодов... ну и как дальше жить?!

    > За С++ в .NET нада забыть(ИМХО).
    возражения:
    1) в .NET'е есть куча вкусных библиотек, которых нет в Си++
    2) управляемый код в Си++ имеет свои плюсы (которых больше двух :derisive:

    по поводу указателей - на уровне байт-кода все не так уж и плохо.
    переменные по дефлоту лежат в стеке, объекты создаются в куче,
    и кстати большой шаг вперед у .NET'а - возможность создавать
    объекты на стеке (не в куче) не особо сильно извращась...
     
  8. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Руководство такое будет полезным. А обсуждение его после прочтения и экспериментов еще полезнее.
     
  9. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    _basmp_
    руководство написал и отослал в хакер, так что через некоторое время выложу в сеть в общий доступ, ну а пока попутно перевожу его на eng для публикации на зарубеженых форумах (хотя это вообще-то не перевод, а самостоятельная статья ;), как переведу, кину ссылку, если кому интересно.

    блин, мне бы интересные крякми или малварь найти на .NET для иллюстрации. пока находится такой примитив что...
     
  10. bbuc

    bbuc New Member

    Публикаций:
    0
    Регистрация:
    19 май 2004
    Сообщения:
    20
    kaspersky:
    .NET Reactor -> _ttp://eziriz.com/
     
  11. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    С Reflector Можноо вообще почти оригинал исходников сднелать.
    Вчера OCR.Net Component декопельнул, выкинул всю проверку и скомпилировал обратно.
    Код почти оригенальный тока в некоторых местах не распознал циклы и встовил goto на метки.

    А компоненты сложно правильно обфускавить (или как там называется) без потери работоспособности.

    P.S. с помощью него можно внутрености NET библиотек изучать.